javascript - Three.js 的被遮挡对象行为异常

标签 javascript three.js webgl

使用 Three.js 库,我成功地将 3D 对象的被遮挡边缘显示为虚线。

我希望被其他对象遮挡的边缘也能表现出相同的行为。

解决方案已解释here除了一些奇怪的情况外,它工作正常。

这是这种情况的说明(我使用正交相机,因此我们看不到物体彼此之间的距离,因此图中的文字): enter image description here

有人遇到过类似的事情吗?

知道为什么在这种情况下它不起作用吗?

也许我的代码中的 polygonOffset: true, PolygonOffsetFactor: 1, PolygonOffsetUnits: 1 部分被误用了。

或者我的 Material 中的side: THREE.DoubleSide可能是这个问题的根源。因为我发现它有一些奇怪的透明行为。

这是我的代码:http://jsfiddle.net/car3v/4/

最佳答案

带有 Material 深度测试:假的虚线的对象必须位于前面,以防它被“普通”对象的网格遮挡。 所以我只是手动设置了 dashed_object.renderDepth = 9007199254740992; 这是 JavaScript 中可能的最大整数,现在它可以正常工作了。

关于javascript - Three.js 的被遮挡对象行为异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16110716/

相关文章:

javascript - 从 HTML/文本中提取 URL,但如果 URL 仅显示部分内容,如 "/secondpage.html"?

reactjs - 如何为GLTF react-three-fiber分配 Material

javascript - WebGL 在像素级别混合颜色

三.js/GLSL : WebGL shader to color fragments based on world space position

javascript - 如何使用 getContext ('webgl' 在 Canvas 上复制另一个 Canvas 的数据)?

javascript - 在HTML中加载页面3秒后加载引导警报

javascript - 使用 *plain* javascript(无库)使用 appendChild 创建和嵌套 div 的最有效方法

javascript - 如何让 webglcontextrestored 被解雇

javascript - 如何将Ajax返回的数据显示为HTML

javascript - THREE.Camera.prototype.lookAt</<() - </< 是什么意思?