Three.js - 在另一个之上的几何

Lep*_*osy 8 javascript three.js

在Three.js中是否可以将网格始终渲染在场景的顶部,即使它的位置在所有对象后面?我正在使用网格实现套索选择,我需要在场景的其余部分上渲染选择框.

Wes*_*ley 24

是.

首先这样做:

renderer.autoClear = false;
Run Code Online (Sandbox Code Playgroud)

然后创建第二个场景,其中只包含您想要位于顶部的对象.然后,在渲染循环中:

renderer.clear();                     // clear buffers
renderer.render( scene, camera );     // render scene 1
renderer.clearDepth();                // clear depth buffer
renderer.render( scene2, camera );    // render scene 2
Run Code Online (Sandbox Code Playgroud)

编辑:另一种解决方案是只有一个场景,但使用这种模式:

mesh.renderOrder = 999;
mesh.onBeforeRender = function( renderer ) { renderer.clearDepth(); };
Run Code Online (Sandbox Code Playgroud)

如果网格物体具有单一材质,则它将呈现"在顶部".

three.js r.85