`
yuanjinxiu
  • 浏览: 663580 次
文章分类
社区版块
存档分类
最新评论

附录A 5. Direct3D显示场境

 
阅读更多
·附录A 5. Direct3D显示场境 (蔡军生 版权所有)
在Direct3D里怎么显示场境呢?或者说怎么样显示一帧的画面?带着这个问题,我们来看看Direct3D显示过程。由于任何的动画,都是基于电影的播放原理。就是由于人眼具有图像视觉延迟性,当看到一帧图画时,并不能立即就从大脑里消失。如果一秒钟内至少保持24帧图画播放,就会看到的图画是连续的动画。因此,Direct3D里只要有显示一帧图画的能力就行了。
Direct3D里用函数IDirect3DDevice9::Present来显示一帧动画。要显示这一帧动画,有很多工作要做,先要计算好图像位置、着色、贴图、背景等等,然后把数据放到后备缓冲区(back buffer)里,接着用上面的函数来把后备缓冲区换成前面缓冲区(front buffer),就可以显示一帧动画出来。Direct3D里每个显示设备都有一个后备缓冲区切换列表(swap chain),它用来保存后备缓冲区,当然可以添加很多后备缓冲区到里面,关键看程序需要和显存大小或者系统内存大小。Direct3D就是通过不断从后备缓冲区切换列表里取得后备缓冲区,显示到前面缓冲区里,就可以让显卡显示动画在显示器上。把已经显示的前面缓冲区,又放回到后备缓冲区切换列表里,让应用程序可以不断地拷贝显示数据到后备缓冲区切换列表的后备缓冲区里面。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics