2016-07-28 14 views
2

いくつかの.jpgをテクスチャとして持つ.objを読み込もうとしています。私の.objはレンダリングされますが、マテリアルを適用しません。 .mtlがobjのテクスチャをロードするには?

newmtl material_0 
Ka 0.200000 0.200000 0.200000 
Kd 1.000000 1.000000 1.000000 
Ks 1.000000 1.000000 1.000000 
Tr 1.000000 
illum 2 
Ns 0.000000 
map_Kd tex_0.jpg 

のように見えます

私は.jpgsへのパスを想定して正しい - 私はそれを変更した場合、私はコンソールに404エラーを参照してください。

マイAFRAMEコードは次のとおりです。

<a-scene> 
    <a-assets> 
      <a-asset-item id="moore-obj" src="obj/moore.obj"></a-asset-item> 
      <a-asset-item id="moore-mtl" src="obj/moore.obj.mtl"></a-asset-item> 
    </a-assets> 
    <a-entity 
      obj-model="obj: #moore-obj; mtl: #moore-mtl" 
      scale="1 1 1" 
      rotation="0 0 0" 
      position="1 1 1"></a-entity> 
</a-scene> 

3Dモデルは、シーンに表示されます - しかし、それ上に重ね一切のテクスチャはありません。私はこれをlocalhost上で実行していますが、CORSの警告は表示されません。

オブジェクトは、その特定のOBJファイルに問題があることが判明しhttp://www.thingiverse.com/thing:36415

+0

興味深いです。一見するとすべてが正方形に見えます。どのタイプのローカルサーバーを実行していますか? – ngokevin

+0

Pythonの単純なHTTPサーバー。私はそれがオブジェクトのサイズと関係があるかどうか疑問に思っていますか? –

+0

あなたが見ている404のURLは何ですか?私はそれがちょうどtex_0.jpgが正しいフォルダにあることを確認することの問題であると推測しています。それはmtlファイルと同じ場所になければなりません。 – brianpeiris

答えて

2

です。 3つのマテリアルを使用しますが、それぞれのマテリアルを使用するサブオブジェクトのオブジェクトグループは定義されていないため、Three.jsのOBJLoaderはマテリアルを正しく関連付けません。

objファイル内の各usemtl行の前にグループ行を追加することで回避できます。例えば

g g_0 
usemtl material_0 
... 
g g_1 
usemtl material_1 

など

関連する問題