2017-09-17 10 views
0

私はthree.jsを使用してCOLLADAファイル(.DAE)を表示する必要がある、私はモデルをロードすることができますが、それは、このコードTHREE.jsを使用してコラージュファイル(.dae)にテクスチャを追加するにはどうすればよいですか?

var loader = new THREE.ColladaLoader(loadingManager); 
      loader.options.convertUpAxis = true; 
      loader.load('./car.dae', function (collada) { 

       car = collada.scene; 

       car.material = 
    THREE.TextureLoader("../model/car_white.jpg"); 

を使用して、テクスチャなしで表示私は他のコードを試してみましたが、これだけのコードでは、モデルのためではなく、なしで働いていましたテクスチャ テクスチャを追加するにはサポートが必要です。一般的にこのようなモデルにテクスチャを追加することができ、話す

+0

は、その後、あなたはhttps://github.com/mrdoob/three.js/blob/master/examples/webgl_loader_collada.htmlで例を実行する必要があります。テクスチャがcolladaモデルで直接参照されていない場合は、colladaエディタを追加する必要があります。 UV座標を計算する必要があるので、three.jsからモデルにテクスチャを追加するのは非常に難しいでしょう。簡単ではないモデルではあまり簡単ではありません。 – gaitat

答えて

1

var textureLoader = new THREE.TextureLoader(); 
var texture = textureLoader.load('../model/car_white.jpg'); 

loader.load('./car.dae', function (collada) { 

    collada.scene.traverse(function (node) { 
    if (node.isMesh) { 
     node.material.map = texture; 
    } 
    }); 

}); 

THREE.Materialや詳細については、THREE.TextureLoaderのマニュアルを参照してください。

注:彼らはお互いのために設計されていない場合、モデルは非常に単純ではない場合はコメントで述べたよう@gaitat、あなたのテクスチャがモデルに正しくラップされない場合があります。そうであれば、代わりにUVを作成して結果を書き出すことができるBlender(または他のソフトウェア)でテクスチャを追加する必要があります。あなたのテクスチャは、COLLADAモデルの内側にある場合

+0

あなたの助言をいただきありがとうございました。 –

関連する問題