我目前正在从事一个项目,该项目涉及在对象大小范围为 10 到 1000000 的场景中工作。我一直有一个问题,当我在这些尺寸的大范围内时,物体开始“闪烁”这只发生在物体相交时,然后随着相机远离物体它变得越来越“暴力” .
我在这里上传了问题的图片:http: //imgur.com/SOeemng
虽然我不知道是什么原因造成的,但我对可能导致它的原因有一些可能的想法:
首先,是不是我的工作尺寸对于three.js / webgl来说太大了
第二种可能性我认为可能是一个问题是使用我制作的相机控件,如下所示:
if(mouseIsDown == true){
if(this.movementSpeed < this.maxSpeed){
this.movementSpeed += this.acceleration
}else{
this.movementSpeed = this.maxSpeed
}
}else{
if(this.movementSpeed > this.minSpeed){
this.movementSpeed = this.movementSpeed/this.deceleration
}else{
this.movementSpeed = this.minSpeed
}
}
其中 this.minSpeed = 0,this.movementSpeed 用于像这样移动相机:
var actualSpeed = delta * this.movementSpeed;
this.object.translateZ( -actualSpeed * forwardOrAuto );
this.object.translateX( actualSpeed * sideSpeed );
this.object.translateY( actualSpeed * upSpeed );
我不认为这会是问题,但由于移动速度实际上永远不会等于零,这可能是个问题。即使移动速度为 10^-20 或 -30 时,仍然会发生闪烁。
如果这很重要,我也在 r.55 上。