模板测试 和 深度测试

mac2025-10-24  4

模板测试:如果开启了模板测试,Gpu首先读取(使用读取掩码)模板缓冲区中该片元的屏幕坐标位置的模板值,然后将该值和片元的模板参考值进行比较,这个比较函数可以由开发者指定的,例如小于等于舍弃该片元,或者大于等于舍弃该片元。 如果这个片元没有通过测试,该片元就会被舍弃。 不管一个片元有没有通过模板测试,我们都可以修改模板缓冲区中该片元对应的屏幕坐标位置的模板值,这个操作也是由开发者指定的。 模板测试通常用于限制渲染区域,或者渲染阴影,轮廓渲染等。

深度测试

       如果开启了深度测试,Gpu会把该片元的深度值和已经存在于深度缓冲中的深度值进行比较。这个比较函数也是可由开发者设置的,例如小于时舍弃该片元,或者大于时舍弃该片元。通常这个比较函数是小于等于,即如果这个片元的深度大于等于当前深度缓冲区中的值,那么就舍弃它。这是因为我们总想只显示出离摄像机最近的物体,而那些被其他物体遮挡的就不需要出现在屏幕上。和模板测试不同的是,如果一个片元没有通过深度测试,它就没有权利更改深度缓冲区的值。如果一个片元通过了测试,那么开发者可以指定是否要用这个片元的深度值覆盖所有的深度值。  

最新回复(0)