1

私はBlenderで2つのオブジェクトをモデル化し、それらに異なるマテリアルと異なるテクスチャをUVマッピングしました。CanvasRendererでレンダリングしています

エクスポートすると、結果のJSONファイルには複数のマテリアルがありますがメッシュは1つだけです。

これは、Three.jsでモデルをロードするために使用する(簡略化された)コードです。

var loader = new THREE.JSONLoader();
loader.load(myModelPath, function {

    var material = geometry.materials[0];
    material.morphTargets = true;
    material.overdraw = true;

    var mesh = new THREE.Mesh(geometry, material);

    mesh.scale.set(50, 50, 50);
    mesh.position.set(0, 0, 0);

    scene.add(mesh);

});

ご覧のとおり、私は[0]素材のみを使用しています。その結果、2番目のオブジェクトは最初のオブジェクトのマテリアルを使用します([1]マテリアルを使用すると、逆のことが起こります)。

しかし、複数のマテリアルを使用するメッシュを作成する方法がわかりません。

それも可能ですか?または、Blenderから複数のJSONファイルをエクスポートする方法はありますか(オブジェクトごとに1つ)?

4

3 に答える 3

3

あのね?このようなケースを処理する比較的簡単な方法があります。

  1. いつものようにブレンダーでモデル化します。
  2. Save as copyあなたが持っているオブジェクトと同じ数のコピー。
  3. 各コピーを開き、関連するオブジェクトを除くすべてを削除します。これで、、など
    があります。obj1.blendobj2.blend
  4. これらのそれぞれで、進行中にthree.jsにエクスポートします。
  5. それらすべてをロードします。私のコードでは、これは配列に文字列を追加するのと同じくらい簡単です。

もっと簡単な方法があれば、私も知りたいのですが:)

于 2012-07-01T17:00:58.943 に答える
1

この質問が出されてから、おそらくjsonエクスポーターに改善が加えられたと思われますが、現在は可能です。設定の下の下部にあるエクスポートオプションには、すべてのメッシュのチェックボックスがあります。チェックを外すと、選択したメッシュのみがエクスポートされます。

于 2014-11-25T02:37:14.367 に答える
0

THREE.ObjLoaderを使用する必要があります。ブレンダーのエクスポート設定では、エクスポートオプションの下部でシーンとマテリアルを選択できます。出来上がり

于 2017-09-19T00:43:11.887 に答える