请看看this演示,同时使用WebGL和禁用。Three.js画布渲染和透明度
当您在WebGL和canvas渲染之间切换时(如果您有WebGL,它会自动完成javascript检测),仅线框球体(左侧第一个)会发生变化。
随着WebGL的启用,您还可以看到球体背面的线框(隐藏在其他球体上的部分,因为它们具有非透明材质)。
由于WebGL被禁用,您无法欣赏透明度了。
我在准备一个演示,我想为那些不支持WebGL的浏览器提供支持:透明度至关重要,因为我的想法完全基于它。我的演示文稿只有一个6面立方体,我想即使是旧的CPU也不应该在透明线框中显示它。
three.js是否支持这个?有什么办法可以做到吗?我应该如何设置材质,以便在画布渲染时也能正常工作?
为了进一步证明我的观点,here's第二个演示。您在WebGL和画布之间切换时遇到同样的问题。
当前线框材料声明是这样的:
new THREE.MeshBasicMaterial({ color: 0x00ee00, wireframe: true, transparent: true });
,但表现为只在WebGL的预期。
感谢您的阅读!
p.s.如果这不能满足我的需要,我愿意采用Three.js的其他选择。我必须准备这个演示,但我没有数学/几何知识来自己做这个,即使它像旋转3D立方体一样简单。
支持WebGL:
与画布渲染:
你能告诉你的代码的一个活生生的例子(jsfiddle.net),问一个具体问题?你是否只关心线框模型? – WestLangley
感谢发布。在问题中有两个示例链接,生成线框材质的代码是张贴的。线框“模型”是什么意思?我需要渲染网格(边缘)的线框,而不是面部,如果这就是你的意思。点是一些边缘与画布渲染丢失,而与webgl你看到他们。只需使用Safari和Chrome试用这些演示程序,您就会看到不同之处。 – Saturnix
我看到了不同。我在问你关于你的代码的具体问题,最好的方法是提供一个你的代码的实例。 – WestLangley