首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络游戏 >

DX中深度缓存和投影变换的有关问题

2013-04-05 
DX中深度缓存和投影变换的问题在绘制过程中,如果Clear函数把后台缓存的深度值设为1,而在透视投影时把近裁

DX中深度缓存和投影变换的问题
在绘制过程中,如果Clear函数把后台缓存的深度值设为1,而在透视投影时把近裁截面得距离也设为1,远裁截面的距离设为1000,那绘制的对象的深度值d在(1,1000)中,如果把深度测试函数设为D3DCMP_LESS,岂不是对象的深度值永远大于后台缓存的深度值,后台缓存的深度值就不能更新了?
[解决办法]
clear设置的1,  和设置裁减面的1, 完全是2个不同的概念

clear设置1,只把深度缓存清理一遍,缓存当中所有点的初始值都设置为了1 
裁减的near和far面,定义出的是世界坐标系下的可视区域,投影矩阵把这个区域内的点变换到投影空间, 这个变换后的z才用来和clear里面设置的数值作比较的

投影后的z范围, 不总是0到1的
比如,把0到0.1 设置成前景,  0.1-0.9设置成中景, 0.9到1设置成背景



热点排行