我正在尝试使用LibGDX将.obj文件加载到Android项目中。这些文件具有 no 纹理文件,但包含.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类的链接
我做错了什么?为什么不加载.mtl文件?根据我的理解,它应该加载.mtl文件,该文件与.obj文件位于同一文件夹中。
修改 我搞砸了一下,把一些行放到ObjLoader类中来记录它是什么而不是加载。看起来它正在加载mtl文件,并将每个mtl分配给一个Material实例,而且看起来obj正确地要求这些材料。
我是否需要在OpenGL端启用或以其他方式执行此操作以确保它正确使用这些材料?
答案 0 :(得分:1)
ObjLoader,尤其是它使用的MtlLoader非常有限。尝试使用新的3D api和fbx。这里解释了如何加载模型:http://blog.xoppa.com/loading-models-using-libgdx/。
答案 1 :(得分:0)
我发现了同样的问题,这正是我在这里报告的原因:
https://github.com/libgdx/libgdx/issues/2441
并在此处提交了修复程序:
https://github.com/libgdx/libgdx/commit/d7e716351d26ddfba19ce9e0b3bdfb449dbc81b7
,几乎支持所有MTL参数。请注意,这是一个WIP,并且(希望)一旦完成就会进入主干。