【问题标题】:Use ARCore with OBJ and MTL files将 ARCore 与 OBJ 和 MTL 文件一起使用
【发布时间】:2018-06-06 11:22:18
【问题描述】:

在使用 Android ARCore Samples 时,我注意到该示例使用了下一行:

mVirtualObject.createOnGlThread(this, "andy.obj", "andy.png"); 

andy.png 是用于“拉伸”andy.obj 3D 对象的 PNG 文件纹理。

我想用 Google Poly 中的项目替换模型和 PNG 文件。

但是从 Poly 下载 obj 文件时,我得到 obj + mtl 文件。

我猜mlt是像PNG一样的纹理文件,但我不能使用它。

我可以把它转换成PNG文件吗?还是在 ARCore 中使用mtl 文件?

【问题讨论】:

  • 如果我没看错的话,ARCore 确实支持在 Java 中直接渲染 .obj 文件?
  • @ManuelTS 是的,支持

标签: android augmented-reality arcore mtl-file poly-google


【解决方案1】:

.*mtl 是从 OBJ 引用的材质文件,它定义了诸如纹理和闪电配置之类的东西。 ARCore 示例中使用的 OBJ 加载库非常基础,因此您必须找到更好的库或自行实现 OBJ 文件加载。另一种选择是使用已经提供模型加载并隐藏低级 OpenGL 内容的 Android 3D 库。 有关这些高级库的示例,请参阅https://stackoverflow.com/a/48456836/385536

【讨论】:

    【解决方案2】:

    对于ARCore 1.8/Sceneform 1.8 应用,您可以使用以下 3D 文件格式:

    • .obj
    • .fbx
    • .glTF
    • .glb
    • .sfa(ASCII 场景形式资产定义)
    • .sfb(二进制场景形式资产定义)

    以及以下支持的texture/material 文件格式:

    • .mtl
    • .bin
    • .png
    • .jpg
    • .sfm
    • .mat

    如果您无法读取相应的mtl 纹理,只需将其转换/替换为其他支持的格式即可。 你可以这样使用obj资产:

    @Override
    protected Void doInBackground(Void... voids) {
        try {
            mVirtualObject.createOnGlThread(this, 
                                            "andy.obj", 
                                            "andy.png");
            mVirtualObject.setBlendMode(MtlRenderer.BlendMode.Shadow);
            mVirtualObject.setMaterialProperties(1.0f, 0.0f, 0.0f, 1.0f)
            mVirtualObjectShadow.createOnGlThread(this, 
                                                  "andy_shadow.fbx", 
                                                  "andy_shadow.sfm");
            mVirtualObjectShadow.setBlendMode(MtlRenderer.BlendMode.Shadow);
            mVirtualObjectShadow.setMaterialProperties(1.0f, 0.0f, 0.0f, 1.0f);
        } catch (Exception e) {
            Log.e(TAG, "Failed to read 3D asset file");
        }
        return null;
    }
    

    希望这会有所帮助。

    【讨论】:

    猜你喜欢
    • 2018-03-11
    • 2019-01-18
    • 2015-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-20
    • 2017-01-26
    • 2021-07-20
    相关资源
    最近更新 更多