据我了解,通过在 OpenGL ES 中设置深度函数,可以控制重叠几何图形在 3D 场景中的渲染方式。我用gl.depthFunc(gl.LEQUAL)
(webgl)在我的代码中。
然而,当两组多边形重合且颜色不同时,生成的表面将是两种颜色的任意混合图案(随着相机位置的变化而变化,从而导致闪烁)。看看这张图片:
我怎样才能解决这个问题?我尝试了不同的 heightFunc 值,但没有一个能解决这个问题。我希望重合的多边形具有单色,无论是哪种颜色。
这就是所谓的深度战斗,并且与以相同深度渲染的两个对象有关,但舍入误差(和深度缓冲区精度)偶尔会将一个对象弹出到另一个对象前面。一种可用的解决方案是使用 glPolygonOffset 函数:
http://www.khronos.org/opengles/sdk/docs/man/xhtml/glPolygonOffset.xml
您可以在本页底部看到它的使用示例:
http://www.glprogramming.com/red/chapter06.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)