标签: three.js
我正在处理Three.js场景,该场景渲染了一些静态放置并带有纹理的四边形,当我四处移动相机时,我的一些四边形正在闪烁。过去,当两个四边形以相同的x,y,z坐标存在时,我已经看到了这一点(我相信人们将其称为z战斗)。
在两个四边形根本不相交的情况下,我不确定是什么原因导致这种现象的发生:
有人知道什么可能导致此行为,或如何纠正此行为?对于其他人可以在这个问题上提出的任何建议,我将不胜感激。
P.S。我的场景目前有2000行JS,但是如果确实有必要,我可以花必要的时间来演示该问题。
答案 0 :(得分:5)
这很可能是渲染器的DepthBuffer的精度问题。例如,如果使用.near平面为0.0001和.far平面为1000000初始化PerspectiveCamera,则当对象彼此靠近甚至不接触时,您可能会发生z角碰撞。为了避免这种情况,您可以尝试使用较小的近距离范围,以使深度精度不会“散布得太细”,例如0.1-100:
.near
.far
PerspectiveCamera
var camera = new THREE.PerspectiveCamera( 45, width / height, 0.1, 100 );