collada モデルを three.js にインポートした後、モデルの一部の顔はモデルの内側からしか見えず、外側からは見えません。
問題の顔の問題を解決するにはどうすればよいですか?
モデルの顔を両側から見えるようにすることは可能ですか?
collada モデルを three.js にインポートした後、モデルの一部の顔はモデルの内側からしか見えず、外側からは見えません。
問題の顔の問題を解決するにはどうすればよいですか?
モデルの顔を両側から見えるようにすることは可能ですか?
正しく動作しない理由は、ファイルに次の 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 を設定します。この問題についてバグを報告しました。
向きが正しくない面を修正するには、モデルを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/