2013-04-19 12 views
5

Próbuję wczytać pliki .obj do projektu Android z LibGDX. Pliki mają plik tekstury no, ale zawierają materiały w plikach .mtl. Używam najnowszego oficjalnego nocnego, a renderowanie pliku obiektu powoduje tylko, że obiekt wydaje się biały. Jak mogę uzyskać ObjLoader do używania pliku .mtl?LibGDX i ObjLoader nie wyświetlają .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(); 
} 

W ten sposób wywoływany jest kod do renderowania obiektu. Tu jest link do klasy ObjLoader

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

Co robię źle? I dlaczego nie załaduje pliku .mtl? Z tego, co rozumiem, powinien załadować plik .mtl, który znajduje się w tym samym folderze i tej samej nazwie co plik .obj.

EDYTOWANIE Połączyłem trochę, wprowadzając kilka linii do klasy ObjLoader, aby rejestrować, co to jest i nie ładuje się. Wygląda na to, że ładuje się plik mtl i przypisuje każdy plik mtl do instancji Material, a także wygląda na to, że obiekt prawidłowo pyta o te materiały.

Czy jest coś, co jest potrzebne, aby włączyć lub w inny sposób zrobić na końcu OpenGL, aby upewnić się, że używa tych materiałów poprawnie?

Odpowiedz

1

ObjLoader, a zwłaszcza MtlLoader, którego używa, jest bardzo ograniczony. Spróbuj użyć nowego api 3D z fbx zamiast tego. Poniżej objaśniono, jak załadować model: http://blog.xoppa.com/loading-models-using-libgdx/.

+0

Należy zauważyć, że odradza się udzielanie jedynie linków (linki mają tendencję do starzenia się w miarę upływu czasu). Proszę rozważyć zredagowanie odpowiedzi i dodanie streszczenia tutaj. – kleopatra

Powiązane problemy