我正在使用three.js
如何控制渲染顺序?假设我有三个平面几何图形,并且想要以特定顺序渲染它们,而不管它们的空间位置如何。
谢谢
我正在使用three.js
如何控制渲染顺序?假设我有三个平面几何图形,并且想要以特定顺序渲染它们,而不管它们的空间位置如何。
谢谢
你可以设置
renderer.sortObjects = false;
并且对象将按照它们添加到场景中的顺序进行渲染。
或者,您可以保留默认值,并sortObjects
为true
每个对象指定 的值object.renderOrder
。
有关更多详细信息,请参阅Threejs 中的透明对象
您可以做的另一件事是使用此处描述的方法:如何使用 Threejs 更改对象的 zOrder?
三.js r.71
对于 threejs r70 及更高版本,已删除 renderDepth。
在我的情况下,使用 object.renderDepth 有效。我有一个玻璃盒,里面有透明的气泡。气泡在某些角度消失了。
因此,将它们的 renderDepth 设置为较高的数字并使用场景中的其他元素深度解决了该问题。将 dat.gui 控件连接到 renderDepth 属性可以很容易地调整使场景工作所需的深度。
所以,在我的 fishScene 中,我有砾石、坦克和气泡。我用 dat.gui 控件连接了砾石网格,几秒钟后,我就获得了所需的深度。
this.gui.add(this.fishScene.gravel, "renderDepth", 0, 200);
我有一堆对象,它们是从随机位置 x 和 y 的 for 循环中克隆出来的……和 obj.z ++,所以它们会排成一行……包括 obj.renderOrder ++;在循环中解决了我的问题。