附录A 5. Direct3D显示场境

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

caimouse

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值