模板测试

来源:互联网 发布:java 分布式日志框架 编辑:程序博客网 时间:2024/05/21 15:47

模板测试

       计算机通过图形卡控制显示器,而图形卡控制着显示器屏幕上每一点的颜色。图形卡控制屏幕的方法是在图形卡的显存中分配一个区域,区域中每一个单元中存储的颜色值和屏幕中相对应点的颜色一一对应,也就是说如果程序修改了显存区域中一个单元中存储的颜色值,也就修改了和这个单元相对应的屏幕点的颜色。这个显存区域一般叫屏幕显示区。
       有时,需要为屏幕显示区的每个单元设置一些标记,在渲染时根据这些标记进行不同的处理,记录这些标记的显存单元集合称作模板缓存区。例如分辨率为1024×768像素的显示器模式,屏幕显示区的单元数应为1024×768,由于屏幕每个像素点都应有一个标记,所以模板缓存区单元数也应为1024×768。模板缓存区的一个单元可以是1位、4位或8位二进制数。
       模板缓存区的一个单元和深度缓存区的一个单元总是共用一个32位二进制数,例如,其中24位为深度缓存区单元,8位为模板缓存区单元。显卡不同,模板缓存区单元和深度缓存区单元在32位二进制数中各允许占用的位数也不同。可以用如下方法查看本计算机使用的显卡中,模板缓存区单元和深度缓存区单元各允许占用多少位数,依序选择“开始”|“程序”|“Microsoft DirectX 9.0 SDK Update|DirectX Utilitites|DirectX Caps Viewer”菜单项,然后打开“DirectX Caps Viewer”窗口,即可看到本机显卡所支持的所有深度/模板缓存区单元模式。例如,模式D24S8表示一个32位二进制数中深度缓存区单元24位,模板缓存区单元8位,模式D24X8表示深度缓存区单元24位,其余8位不使用。
       使用渲染函数渲染3D模型的最后一步是,将投影变换得到的且将在屏幕显示的3D模型的每个像素点的颜色值写入屏幕显示区相应的单元。如果允许模版测试,就在每次写入一个像素点颜色值前,使用设定的模版比较函数进行测试,即对该像素点对应的模板缓冲单元的值和模板参考值进行比较,只有在该点模板函数比较成功时,渲染函数才执行写入。当然,最终是否写入,还要取决于深度测试,否则将保留该像素点在屏幕显示区相应单元原来的颜色值。最后还要根据比较结果,对该模板缓冲单元的值做指定的处理。
原创粉丝点击