使用带有Three.js的renderDepth在顶部渲染对象

Blu*_*Ion 2 javascript three.js

我正在尝试在其他对象之上渲染对象。

在小提琴中,将绿色圆环结渲染在红色框和地板的顶部。

我一直在尝试mesh.renderDepth = 0, 1, 1000,什么都没改变。

材质已如下创建:

  material = new THREE.MeshBasicMaterial( { color: 0x00ff00, transparent: true, opacity: 0.5 } );
Run Code Online (Sandbox Code Playgroud)

如何使用renderDepth实现此目的?我还有其他设置吗?

使用depthTestto true可以工作,但是不能接受,因为凹形网格(如圆环)会遇到多边形重叠的问题,尤其是在不透明的情况下。

虽然我没有设法在运行两个场景的情况下获得其他解决方案,但令我感到震惊的是,与仅使用一个场景相比,它具有更多的开销和灵活性,renderDepth

可以正常使用的JSFiddle:http//jsfiddle.net/QHssJ/

谢谢您的帮助

Joh*_*ack 5

这篇文章有点老了,但是对于那些绊脚石的人来说,请确保具有自定义renderDepth的对象的材质将depthWrite设置为false:

 material.depthWrite = false
Run Code Online (Sandbox Code Playgroud)

这是发布的小提琴的更新:http : //jsfiddle.net/QHssJ/20/

  • `Object3D.renderDepth`已被删除。您可以使用`Object3D.renderOrder`。three.js r.71 (3认同)