私は現在、three.jsを使用して非常に長い距離と非常に短い距離で作業するプロジェクトに取り組んでいます
シーンの小さい側で問題が発生しています。「シーン」が激しく揺れ始めます。
最初はZバッファに問題があると思っていたので、新しい領域に入るたびにカメラの近距離と遠距離のプロパティを変更する小さなスニペットを作成しました。これは私が以前持っていた「きらめき」の問題を助けました、しかしシーンはまだ小さな距離で劇的に動きます。
これが発生する条件の1つは次のとおりです
camera.near = .0133333
camera.far = 12
positionToObjects = 6
これは、z解像度が約.0001であることを意味するはずです。これは十分に良いと思いますが、発生する揺れはこれよりはるかに大きいです。
オブジェクト自体は、「グローバル」位置で-200000〜200000の範囲ですが、シーン自体は位置を変更しません
私が考えていたもう一つのことは、私が使っていたカメラコントロールで、次のように(省略されて)います。
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 );
ただし、カメラが動いていないとき(小数点以下第8位まで)でも、シーンは激しく揺れています
それがシーンにこれをさせるとは思えない理由はありますか?
他にご提供できる情報がありましたらお知らせください。よろしくお願いいたします。