Javascript 仅限three.js线框形状,隐藏边为虚线
我正在尝试在three.js中创建特定类型的3D对象。 例如,我想要线框模式下的立方体(因此只显示边)。 但我希望后面的边缘被划破。 说明: 我不知道这是否适用于three.js,或者我是否应该直接使用webgl。 我应该在线框中使用Javascript 仅限three.js线框形状,隐藏边为虚线,javascript,three.js,webgl,Javascript,Three.js,Webgl,我正在尝试在three.js中创建特定类型的3D对象。 例如,我想要线框模式下的立方体(因此只显示边)。 但我希望后面的边缘被划破。 说明: 我不知道这是否适用于three.js,或者我是否应该直接使用webgl。 我应该在线框中使用THREE.Mesh,还是在LineDashedMaterial中使用THREE.Line,或者两者都在一起使用?我成功地做到了。 您需要创建三个对象 第一个对象:实体3d对象(我指的是面而不是边) 第二个对象:除虚线外的所有边 第三个对象:除法线以外的所有边(非虚
THREE.Mesh
,还是在LineDashedMaterial
中使用THREE.Line
,或者两者都在一起使用?我成功地做到了。
您需要创建三个对象
第一个对象:实体3d对象(我指的是面而不是边)
第二个对象:除虚线外的所有边
第三个对象:除法线以外的所有边(非虚线)
对于第一个对象,将材质设置为颜色:false,侧面:三。双面,深度测试:true
第二个对象材质:颜色:(任意),深度测试:false
第三个对象材质:颜色:(随你喜欢),深度测试:true
我还使用
polygonOffset:true,polygonOffsetFactor:1,polygonOffsetUnits:1设置所有材质,以消除z-fighting。这是一个非常酷的想法。我已在以下地址实施了上述答案:
以防有人想看到它发挥作用。这似乎不再起作用了。如果我理解正确,“可见”边应该是唯一显示的边(实线),如果显示立方体的材质,则将覆盖的边应该显示为虚线。对吗?在您的示例中,我看到一个实心立方体,包含虚线和实线;但是,我只能看到前面的面,因为这些面是实心的。three.js有什么变化吗?或者这是否符合预期?考虑到OPs的问题,我认为这个例子已经不起作用了。。。古怪的从截图上看,我认为这些功能曾经发挥过作用。可能是3.js中的某个内容引起了争论?