OpenGL 中使用背面剔除和深度缓冲区有什么区别?
背面剔除是指 OpenGL 确定哪些面背对观看者,因此不可见。想象一个立方体。无论你如何旋转立方体,三个面始终是不可见的。找出这些面是哪些面,将它们从要绘制的多边形列表中删除,这样您就将绘制列表减半了。
深度缓冲相当简单。对于绘制的每个多边形的每个像素,将其 z 值与 z 缓冲区进行比较。如果它小于 z 缓冲区中的值,则将 z 缓冲区值设置为新的 z 缓冲区值。如果不是,则丢弃该像素。深度缓冲提供了非常好的结果,但可能相当慢,因为每个像素都需要查找值。
实际上,这两种方法没有任何相似之处,并且经常同时使用。给定一个立方体,您可以首先使用剔除切出一半的多边形,然后使用 z 缓冲绘制它们。
剔除可以减少渲染的多边形,但它不是排序算法。这就是 Z 缓冲。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)