4

将 collada 模型导入到 three.js 后,模型的某些面只能从模型内部可见,而不能从外部可见。

如何解决相关面孔的问题?

是否可以从两侧看到模型的脸?

4

2 回答 2

2

它无法正常工作的原因是因为您的文件设置了这个双面标志:

<effect id="material_3_4_0-effect" name="material_3_4_0-effect">
   <profile_COMMON>
      ...
      <extra>
         <technique profile="GOOGLEEARTH">
            <double_sided>1</double_sided>
         </technique>
      </extra>
   </profile_COMMON>
</effect>

three.js ColladaLoader 不会寻找这个标志,而是像它应该的那样在材质上设置 doubleSided。我已经为这个问题提交了一个错误

于 2012-08-03T18:00:37.327 回答
1

要修复方向不正确的面,请将模型加载到Blender等 3D 建模程序中,并翻转未正确显示的面的法线。

Three.js 网格有一个可以设置的双面属性,这通常允许您显示模型,其面从两侧可见。

这是一个关于如何加载 collada 网格并启用双面渲染的简短示例。

var loader = new THREE.ColladaLoader();
loader.load('path/to/mesh.dae', loadModel);

function loadModel(geom) {
    var mesh = new THREE.Mesh(geom, new THREE.MeshBasicMaterial());
    mesh.doublesided = true;
    scene.add(mesh);
}

还有一个活生生的例子:http: //jsfiddle.net/r7Yq2/

于 2012-08-03T17:17:54.577 回答