【问题标题】:LibGDX and ObjLoader not displaying .mtl?LibGDX 和 ObjLoader 不显示 .mtl?
【发布时间】:2013-04-13 04:37:46
【问题描述】:

我正在尝试使用 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 类的链接

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 正在正确地请求这些材料。

我需要在 OpenGL 端启用或以其他方式执行某些操作以确保它正确使用这些材料吗?

【问题讨论】:

    标签: android opengl-es libgdx wavefront


    【解决方案1】:

    ObjLoader 尤其是它使用的 MtlLoader 非常有限。尝试将新的 3D api 与 fbx 一起使用。这里解释了如何加载模型:http://blog.xoppa.com/loading-models-using-libgdx/。

    【讨论】:

    • 请注意,不鼓励仅链接的答案(链接会随着时间的推移变得陈旧)。请考虑在此处编辑您的答案并添加概要。
    【解决方案2】:

    我发现了同样的问题,这正是我都在这里报告的原因:

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

    并在此处对其进行了修复:

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

    ,支持几乎所有的 MTL 参数。请注意,这是一个 WIP,并且(希望)一旦完成就会进入主干。

    【讨论】:

      猜你喜欢
      • 2018-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-03
      • 2016-08-19
      • 2013-03-02
      • 2017-10-28
      • 1970-01-01
      相关资源
      最近更新 更多