我正在尝试使用LibGDX将.obj文件加载到Android项目中。这些文件没有纹理文件,但是在.mtl文件中包含 Material 。我每天晚上使用的是最新的官方文档,渲染对象文件只会导致对象显示为白色。如何获取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文件?据我了解,它应该加载一个.mtl文件,该文件与.obj文件位于同一文件夹中,并且名称相同。
编辑
我搞砸了一些,在ObjLoader类中放了几行来记录它正在加载和未加载的内容。看起来好像正在加载mtl文件,并将每个mtl分配给Material实例,而且看起来obj正确地要求了这些 Material 。
我需要在OpenGL端启用或以其他方式执行某些操作,以确保它正确使用了这些 Material 吗?
最佳答案
ObjLoader,尤其是它使用的MtlLoader非常有限。尝试将新的3D API与fbx结合使用。这里说明了如何加载模型:http://blog.xoppa.com/loading-models-using-libgdx/。