7

LibGDX を使用して .obj ファイルを Android プロジェクトにロードしようとしています。ファイルにはテクスチャ ファイルはありませんが、.mtl ファイルにマテリアルが含まれています。私は最新の公式ナイトリーを使用していますが、オブジェクト ファイルをレンダリングすると、オブジェクトが白く表示されます。ObjLoader で .mtl ファイルを使用するにはどうすればよいですか?

@Override
public void create() {
    objLoader = new ObjLoader();
    model = objLoader.loadObj( Gdx.files.internal("data/obj.obj"), true);
}

@Override
public void render() {
    Gdx.gl.glClearColor(0, 0, 0, 0);
    Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
    batch.begin();

    model.render();

    batch.end();
}

これは、オブジェクトをレンダリングするコードが呼び出される方法です。ここに ObjLoader クラスへのリンクがあります

https://github.com/libgdx/libgdx/blob/master/gdx/src/com/badlogic/gdx/graphics/g3d/loaders/wavefront/ObjLoader.java

私は何を間違っていますか?そして、なぜ .mtl ファイルをロードしないのでしょうか? 私が理解できることから、.obj ファイルと同じフォルダーと同じ名前の .mtl ファイルをロードする必要があります。

EDIT 私は少しいじって、ObjLoaderクラスにいくつかの行を入れて、ロードされているものとロードされていないものをログに記録しました。mtl ファイルを読み込んで、各 mtl をマテリアル インスタンスに割り当てているように見えます。また、obj がそれらのマテリアルを正しく要求しているようにも見えます。

これらのマテリアルが適切に使用されていることを確認するために、OpenGL 側で有効にするか、その他の方法で行う必要があることはありますか?

4

2 に答える 2

1

ObjLoader と、特にそれが使用する MtlLoader は非常に制限されています。代わりに、fbx で新しい 3D API を使用してみてください。モデルをロードする方法は次のとおりです: http://blog.xoppa.com/loading-models-using-libgdx/

于 2013-06-23T01:30:45.697 に答える
0

私はまったく同じ問題を見つけました。それがまさに、私が両方ともここで報告した理由です。

https://github.com/libgdx/libgdx/issues/2441

ここに修正をコミットしました:

https://github.com/libgdx/libgdx/commit/d7e716351d26ddfba19ce9e0b3bdfb449dbc81b7

、事実上すべての MTL パラメータをサポートしています。これは WIP であり、(できれば) 完了したらトランクに入ることに注意してください。

于 2014-12-01T18:23:13.463 に答える