面剔除和深度测试

面剔除和深度测试之间的区别。
一般面剔除是应用于一些闭合物体(比方说立方体),由于视角的缘故,我们最多能同时看到一个物体的三个面,其他三个看不到,那么此时,我们就可以将另外三个看不到的面剔除掉。这就是面剔除,它节省了很多系统开销。
深度测试的话不仅用于单个物体(的两个相对面),也用于物体于物体之间。
面剔除总是会将back face丢弃(对于单个物体来说),而深度测试不会,只要Z-Value合理,它就都会渲染。一个明显的例子就是进入木箱内部看,开启了面剔除的木箱内部是空的,而深度测试照常渲染。

至于开启了面剔除的木箱子为什么内部是空的:默认情况下,我们将背向面(方向是顺时针)剔除,进入了木箱子内部之后,视角前面的箱子面贴图是背向面,而当我们转个视角,发现也是背向面(因为视角改变了,原本在外面看来的正向面变成了背向面,而原本的背向面依旧是背向面)。也就是说,其实你摄像机看不到的那个面其实是有渲染的,然而你看不到。

posted @ 2019-10-31 11:44  jckcoenf  阅读(419)  评论(0编辑  收藏  举报