在将collada模型导入到three.js之后,一些模型的面只能从模型内部看到,而不能从外部看到。
如何解决这些面的问题?
是否可能使模型的面从两侧都可见?
如何解决这些面的问题?
是否可能使模型的面从两侧都可见?
它无法正常工作的原因是您的文件设置了双面标志:
<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>
为了修复面向不正确的面,将模型加载到像Blender这样的3D建模程序中,并翻转未正确显示的面的法线。
Three.js网格具有一个doublesided属性,您可以设置它,通常可以让您显示从两侧可见的模型面。
以下是如何加载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/