4

collada モデルを three.js にインポートした後、モデルの一部の顔はモデルの内側からしか見えず、外側からは見えません。

問題の顔の問題を解決するにはどうすればよいですか?

モデルの顔を両側から見えるようにすることは可能ですか?

4

2 に答える 2

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 を設定します。この問題についてバグを報告しました。

于 2012-08-03T18:00:37.327 に答える
1

向きが正しくない面を修正するには、モデルを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/

于 2012-08-03T17:17:54.577 に答える