2013-04-19 13 views
5

Sto provando a caricare file .obj in un progetto Android con LibGDX. I file hanno no file di trama, ma includono materiali in file .mtl. Sto usando l'ultima notte ufficiale e il rendering del file oggetto ha come risultato che l'oggetto appare bianco. Come ottengo ObjLoader per utilizzare il file .mtl?LibGDX e ObjLoader non visualizzano .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(); 
} 

Ecco come viene chiamato il codice per il rendering dell'oggetto. Ecco un link alla classe ObjLoader

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

Che cosa sto facendo di sbagliato? E perché non caricherà il file .mtl? Da quello che posso capire, dovrebbe caricare un file .mtl che si trova nella stessa cartella e lo stesso nome del file .obj.

EDIT ho pasticciato un po ', mettendo alcune linee nella classe ObjLoader per registrare quello che è e non viene caricato. Sembra che stia caricando il file mtl e assegnando ogni mtl a un'istanza di Material, e sembra anche che l'obj stia chiedendo correttamente quei materiali.

C'è qualcosa che devo abilitare o altrimenti fare su OpenGL per assicurarmi che stia usando correttamente questi materiali?

risposta

1

ObjLoader e in particolare il MtlLoader utilizzato è molto limitato. Prova a utilizzare la nuova 3D api con fbx. Ecco come caricare un modello: http://blog.xoppa.com/loading-models-using-libgdx/.

+0

Si noti che le risposte di solo collegamento sono scoraggiate (i collegamenti tendono a diventare obsoleti nel tempo). Si prega di considerare la modifica della risposta e aggiungere una sinossi qui. – kleopatra