Optimization three.js:如何控制渲染顺序

Optimization three.js:如何控制渲染顺序,optimization,3d,rendering,three.js,Optimization,3d,Rendering,Three.js,我正在使用three.js 如何控制渲染顺序?假设我有三个平面几何体,并且希望以特定的顺序渲染它们,而不管它们的空间位置如何 谢谢您可以设置 renderer.sortObjects = false; 对象将按照它们添加到场景中的顺序进行渲染 或者,您可以将sortObjects保留为默认值true,并为每个对象指定object.renderOrder的值 有关详细信息,请参见 您可以做的另一件事是使用此处描述的方法: three.js r.71使用object.renderDepth在我的案

我正在使用three.js

如何控制渲染顺序?假设我有三个平面几何体,并且希望以特定的顺序渲染它们,而不管它们的空间位置如何

谢谢

您可以设置

renderer.sortObjects = false;
对象将按照它们添加到场景中的顺序进行渲染

或者,您可以将
sortObjects
保留为默认值
true
,并为每个对象指定
object.renderOrder
的值

有关详细信息,请参见

您可以做的另一件事是使用此处描述的方法:


three.js r.71

使用object.renderDepth在我的案例中有效。我有一个玻璃盒子,里面有透明的气泡。泡沫在某些角度消失了

因此,将它们的renderDepth设置为一个较大的数值,并在场景中播放其他元素的深度,解决了这个问题。将dat.gui控件连接到renderDepth属性可以非常轻松地调整场景工作所需的深度

所以,在我的钓鱼场景中,我有砾石、水池和气泡。我用dat.gui控件连接砾石网格,几秒钟后,我就得到了所需的深度

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

对于3JS r70和更高版本,renderDepth被删除。

我有一堆对象,它们是从随机位置x和y的for循环中克隆出来的。。。和obj.z++,这样他们就可以排成一行了。。包括obj.renderOrder++;在循环中解决了我的问题。

谢谢,伙计,我用你的渲染深度建议做了一些实验,效果很好!解决办法是什么?我不喜欢有多个重叠的场景。