2

A フレーム (Three.js に基づく) のカスタム 3D メッシュにマテリアルを適用しようとしていますが、機能しません (つまり、モデルは元のマテリアルを保持しています)。

「ruban4」が Blender からエクスポートされたランダムな Collada モデルであるシーンを以下に示します。

<a-scene>
    <a-assets>
        <a-asset-item id="ruban" src="ruban4.dae">
    </a-assets>
    <a-collada-model 
                     src="#ruban"
                     material="shader: flat; color: #93d400;"
                     position=" 10 10 0">
    </a-collada-model>
</a-scene>

更新: Collada に固有のようです。.obj および .mtl で正常に動作します

4

2 に答える 2

3

Collada モデルはブラック ボックスとして扱う必要があります。モデルまたはそのテクスチャを変更する場合は、選択した 3D パッケージで行う必要があります。Collada モデルには、通常、複数のジオメトリ、アニメーション、テクスチャ、およびマッピングが含まれています (完全なサブ シーンをインポートします)。aframe マテリアルは、予測可能な方法で実行できないため、適用されません。どのテクスチャが置き換えられますか? Aframe には、作成者の意図に関する知識が必要です。

OBJ が機能するのは、フォーマットが単純なジオメトリを記述し、マテリアルの適用を予測どおりに実行できるためです。

于 2016-04-17T15:17:34.630 に答える
2

ディエゴの答えに代わるものとして、COLLADA モデルがシーンにインポートされると、そのシーングラフをトラバースし、必要に応じて個々のピースを手動で変更できます。もう少しハックですが、可能です。

周りをウロウロします:

myColladaEl.getObject3D('mesh');
于 2016-08-17T22:17:09.317 に答える