9

我正在尝试在 three.js 中创建特定类型的 3D 对象。例如,我想要一个处于线框模式的立方体(所以只显示边缘)。但我希望后面的边缘是虚线的。插图:插图

我不知道这对于three.js 是否可行,或者我是否应该直接尝试使用webgl。我应该THREE.Mesh在线框中THREE.Line使用还是同时使用,LineDashedMaterial或者两者都在彼此之上?

4

2 回答 2

7

我设法做到了。您需要创建三个对象。

第一个对象:实体 3d 对象(我的意思是面而不是边缘)

第二个对象:所有边缘,但虚线

第三个对象:所有边缘,但正常(不是虚线)

对于第一个对象,使用 设置材质color: false, side: THREE.DoubleSide, depthTest: true

第二对象材料:color: (whatever you like), depthTest: false.

第三对象材料:color: (whatever you like), depthTest: true

我还设置了所有材料polygonOffset: true, polygonOffsetFactor: 1, polygonOffsetUnits: 1以摆脱 z-fighting。

于 2013-03-04T13:54:11.887 回答
4

这是一个非常酷的想法。如上所述,我已在以下位置实现了您的答案:

http://stemkoski.github.com/Three.js/Dashed-3D.html

以防有人想看到它在行动。

于 2013-03-12T21:41:39.293 回答