2013-03-20 100 views

回答

28

您可以設置

renderer.sortObjects = false; 

和目的將它們添加到場景中的順序渲染。

或者,你可以離開sortObjectstrue,默認值,並指定每個對象的object.renderOrder的值。

有關更多詳細信息,請參閱Transparent objects in Threejs

你可以做的另一件事是使用下面介紹的方法:How to change the zOrder of object with Threejs?

three.js所r.71

+0

謝謝你,我用你的renderDepth建議做了一些實驗,結果很奏效! – 2013-03-20 04:05:56

0

使用object.renderDepth在我的情況下工作。我有一個透明的玻璃錶殼和氣泡。氣泡在某些角度迷路了。

因此,將他們的renderDepth設置爲很高的數字並且與場景中的其他元素深度一起玩時修復了這個問題。將一個dat.gui控件連接到renderDepth屬性,可以很容易地調整需要在什麼深度才能使場景工作。

因此,在我的fishScene,我有碎石,坦克和泡沫。我用一個dat.gui控制器連接礫石網格,並在幾秒鐘內獲得了我所需要的深度。

this.gui.add(this.fishScene.gravel, "renderDepth", 0, 200); 
2

for threejs r70 and higher is renderDepth removed。

+0

對此有什麼解決方法?我不喜歡有多個重疊的場景。 – mbehnaam 2016-04-28 04:55:14

0

我有一堆對象,它是從隨機位置x和y ...以及obj.z ++中的for循環克隆的,所以它們會排隊在一起......包括obj.renderOrder ++;在循環解決了我的問題。