Collada模型面孔在three.js中无法正确显示

时间:2012-08-02 02:01:44

标签: javascript three.js collada

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

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

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

2 个答案:

答案 0 :(得分:2)

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

<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。我已经filed a bug了解了这个问题。

答案 1 :(得分: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/