Collada 纹理上的线框覆盖 - three.js
Posted
技术标签:
【中文标题】Collada 纹理上的线框覆盖 - three.js【英文标题】:wireframe overlay on Collada textures - three.js 【发布时间】:2012-01-17 23:48:59 【问题描述】:当我使用带有 .jpg 纹理的 Collada 模型时,three.js 似乎在纹理上覆盖了线框网格。 我的问题 - 有没有办法移除线框?
这里有一个例子; http://movealpha.com/dae/test1.html
这是同一个示例,移除了 Collada 纹理以显示底层线框; http://movealpha.com/dae/test2.html
这是一个问题还是有一种简单的方法可以删除线框覆盖?
ps。感谢 mrDoob 提供了一个真正令人敬畏的 javascript 库 - 我们共同不值得!
【问题讨论】:
【参考方案1】:mrdoob 在 github 上回答了这个问题; https://github.com/mrdoob/three.js/issues/885
这是他的答案的副本
这是 CanvasRenderer 的限制。设置 material.overdraw = true 可能会改善事情。您可以找到具有您所需要的材料的对象 想要改变:
var object = collada.scene.getChildByName( 'object_name', true );
object.material.overdraw = true;
【讨论】:
【参考方案2】:通过为 collada.scene 中的所有(!)子项设置 material.overdraw=0.5,它对我有用。在我的例子中,孩子里面有孩子。
var loader = new THREE.ColladaLoader();
loader.load( 'model.dae', function ( collada )
var dae = collada.scene;
for (var i=0; i<dae.children.length; i++)
for (var j=0; j<dae.children[i].children.length; j++)
dae.children[i].children[j].material.overdraw=0.5;
scene.add(dae);
【讨论】:
以上是关于Collada 纹理上的线框覆盖 - three.js的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 THREE.js 向 collada 文件 (.dae) 添加纹理?
如何在 Three.js 中用 ShaderMaterial 替换 Collada 导入的纹理?