1

当我使用带有 .jpg 纹理的 Collada 模型时,three.js 似乎在纹理上覆盖了线框网格。我的问题 - 有没有办法删除线框?

这里有一个例子; http://movealpha.com/dae/test1.html

这是同一个例子,去掉了 Collada 纹理以显示底层线框; http://movealpha.com/dae/test2.html

这是一个问题还是有一种简单的方法可以删除线框覆盖?

附言。感谢 mrDoob 提供了一个真正令人敬畏的 JavaScript 库——我们共同不值得!

4

2 回答 2

0

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;
于 2011-12-13T07:56:18.403 回答
0

通过为 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);    
}
于 2015-10-12T11:29:10.770 回答