2013-03-20 71 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 ++;在循环解决了我的问题。