2017-02-13 6 views
0

私はThree.jsで銀河を作成しています。私はすべてを現実的なスケールで設定しようとしています。したがって、位置とサイズの値は非常に大きくなる可能性があります。WebGL/Three.jsの値の境界

私が扱っているそれらの値は0〜1 * 10^20までです。 しかし、値が〜1 * 10^6、<〜1 * 10^-5という問題が発生していることがわかりました。例えばvisibility、レイキャスティングなど。

どのように大きな値または小さな値を設定できるか制限がありますか?または、他の何かに関連する問題であり、トリックを使用することによって回避することができます。

+0

多分[math.js](http://mathjs.org/)助けてもいいですか? –

答えて

2

があるため、大きな値のこのexample

を見てください、あなたは対数深度バッファを使用する必要があります。あなたのフィドルが完全

を動作するはず

var renderer = new THREE.WebGLRenderer({logarithmicDepthBuffer: true }); 

であなたのレンダラを初期化するとき

私はレイキャスティングについて知らないが、それは問題ないはずです。具体的にはgpuで実行すると結果はレンダリングされた画像と同じになるはずです

+0

実際、この例は長い時間前に見られましたが、これ以上考えられませんでした。 ありがとう、それは多くの問題を解決します! –