0

現在、バージョン 71の Three.js を使用しています。最初にブレンダーを使用してモデルを作成し、次にそれらを JSON ファイルとしてエクスポートします。次に、THREE.JSONLoaderを使用して、以下を使用してモデルをシーンにロードします。

this.jsonLoader.load(pathToModelFile, function(geometry, materials) {
  //...
});

マテリアル リストには、インデックス 0 のTHREE.MeshPhongMaterialのみが含まれています。このマテリアルは、シーンに光源 (たとえば、 THREE.SpotLightなど) が必要なようです。そうしないと、私のモデルは黒になります。

基本的には、モデルをロードできるようにしたいだけで、モデルを見るために光源を使用する必要はありません。したがって、次の質問があり、それらのいずれかに答えると問題が解決します。

  1. THREE.MeshPhongMaterialに、光源なしでモデルを表示できるように変更できるフラグまたはプロパティはありますか?
  2. 1番が不可能な場合、THREE.JSONLoaderを使用して、光源を必要としない別の種類のマテリアルを提供する方法はありますか? たとえば、THREE.MeshBasicMaterialのように?
  3. 必要なフラグ/プロパティが既に設定されているブレンダーからモデルをエクスポートする方法はありますか (可能な場合)?

この男が次のリンクで言及しているのと同じ問題を抱えているようですが、彼は答えを受け取りませんでした: THREE.MeshPhongMaterial の照明を動的にオン/オフに切り替えます

4

1 に答える 1

0

1 わからない、考えない

2 はい

var jsonLoader = new THREE.JSONLoader();
jsonLoader.load(model, addthree1ToScene);

function addthree1ToScene( geometry, materials ) 
  {


  material = new THREE.MeshBasicMaterial(blahblah);


  three1 = new THREE.Mesh( geometry, material );
  scene.add( three1 );
  console.log(three1);

 }

3 はい。Blender では、エクスポートする前にメッシュにマテリアル タイプを設定したり、エクスポートしたファイルでマテリアル変数を編集したりできます。

編集:または最も愚かな方法で、この回答への議論を通じて、公開された Json ファイルのマテリアルを編集することができます。

于 2015-04-16T12:09:46.177 に答える