Three.js - 我可以强制形状可见,即使它被遮挡?

Jus*_*tin 5 three.js

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

在此输入图像描述

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

我可以使用 Three.js 强制可见性吗?

Kev*_*uyl 2

您可以通过禁用材质的深度测试来实现此目的。这意味着它总是呈现在所有内容的前面。

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

  • 仔细想想,这可能是因为网格的 0,0,0 点位于相机视锥体之外。如果您还没有更改它,请尝试“mesh.frustumculled = false;”,但仍然如 WestLangley 所说。网格体不会对自身进行深度测试,但使用“MeshBasicMaterial”则没有问题。反正都是一样的颜色。如果您需要渲染更复杂的对象,westlangley 提出的解决方案仍然是更好的选择。 (2认同)