Three.js-我是否可以强制某个形状可见,即使它';它被阻塞了吗?

Three.js-我是否可以强制某个形状可见,即使它';它被阻塞了吗?,three.js,Three.js,我有一组我希望始终可见的对象,即使它们被另一个对象遮挡。它们是网格对象,而不是粒子或精灵。这是我试图模仿的效果的截图。这是用C++和OpenGL:完成的。 注意红色和绿色的三角形以及黑色的线条(以及文本)。它们都躺在地平面上,但即使绿色机器离我们更近,它们还是可见的 我可以用Three.js强制Visibility吗?您可以通过禁用材质的深度测试来实现这一点。这意味着它总是呈现在所有事物面前 var material = new THREE.MeshBasicMaterial({color:

我有一组我希望始终可见的对象,即使它们被另一个对象遮挡。它们是网格对象,而不是粒子或精灵。这是我试图模仿的效果的截图。这是用C++和OpenGL:

完成的。

注意红色和绿色的三角形以及黑色的线条(以及文本)。它们都躺在地平面上,但即使绿色机器离我们更近,它们还是可见的


我可以用Three.js强制Visibility吗?

您可以通过禁用材质的深度测试来实现这一点。这意味着它总是呈现在所有事物面前

var material = new THREE.MeshBasicMaterial({color: 0xFF0000});
    material.depthTest = false;
var mesh = new THREE.Mesh(new THREE.BoxGeometry(5, 5), material);

看到这个解决方案的问题是网格本身没有深度测试,所以网格后面的面可以在顶部渲染。这对我来说并不总是有效。有时对象是在顶部绘制的,但是我旋转相机,它们又被隐藏了。知道为什么吗?不,对不起,我不知道。在这种情况下,韦斯特兰利提出的解决方案(在实际内容之上的新场景)将最有效。(顺便说一句,这并不奇怪)想想看,这可能是因为网格的0,0,0点在摄影机平截头体之外。如果尚未更改,请尝试
mesh.frustumculled=falsemeshbasicmatary
也没有问题。反正颜色都一样。如果需要渲染更复杂的对象,westlangley提出的解决方案仍然是更好的选择。