2017-02-13 89 views
0

我正在用Three.js創建一個星系,我試圖設置一切在現實的規模。因此,位置和大小的值可能變得非常大。WebGL/Three.js值的邊界

所以這些值我在處理,在0到1 * 10^20範圍內。然而,我注意到值>〜1 * 10^6和<〜1 * 10^-5會導致問題,例如visibility,光線投射和其他東西。

那麼是否有限制值可以是大值還是小值?或者是與別的東西有關的問題,可以通過使用技巧來避免。

+0

Can maybe [math.js](http://mathjs.org/)可以幫忙嗎? –

回答

2

一定要看看這個example

因爲大的值,你應該使用對數深度緩衝。

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

初始化你的渲染器,當你搗鼓應該很好地工作

我不知道光線投射,但它應該不會造成問題。特別是如果你通過gpu來做,結果應該等於渲染圖像

+0

很久以前,其實有很多人看過這個例子,但是沒有想過。 非常感謝,這將解決很多問題! –