5

我有一个 3D 对象的 OBJ 文件,我正在使用 Import Sceneform Asset 将其转换为 SFA,但是这样做时它总是给我错误 提示 Failed to find 'sampledata/models/plc.mtl' on disk

在此处输入图像描述

您可以看到红色框。

在其中一个中,您可以看到 gradle 已为 sceneform.asset 创建了背景代码,但由于缺少 mtl,它无法继续。

此外,在默认的 google 的 arcore 项目中,SFB 文件位于 raw 文件夹中,但它是在 assets 文件夹中创建的。

见下图。

在此处输入图像描述

谁能帮我解决这个问题。我是 ARCore 开发的新手。

4

3 回答 3

1

请关注这个,如果有任何问题请告诉我

您需要.obj.mtl。使用示例数据目录在 Android 中创建一个文件夹(以避免这成为您项目的一部分)

在此处输入图像描述

在此文件夹中添加 .obj 和 .mtl

转到 Android Preferences > Plugins并搜索“Google Sceneform Tools (Beta)”

在此处输入图像描述

单击 .obj 上的右键,您可以选择“导入 Sceneform 资源” 这将创建 .sfb 和 .sfa 文件,已经可以使用了。

在您的App Gradle中,您应该会找到如下新行:

sceneform.asset('sampledata/NAME_OF_FILE.obj',
    'default',
    'sampledata/NAME_OF_FILE.sfa',
    'src/main/assets/NAME_OF_FILEl')
于 2018-08-08T15:36:41.290 回答
0

我面临同样的错误,我通过添加这一行来解决它 build.gradle(:app)

sceneform.asset('path of obj', 'default','path for sfa','path for sfb')

就我而言,它是

sceneform.asset('sampledata/Hamburger.obj', 'default','sampledata/Hamburger.sfa','src/main/res/raw/hamburger')

并确保如果将输出放在res目录中,请从文件名中删除大写字母。希望它对你有用。

于 2020-06-27T13:24:21.930 回答
0

你应该在某个地方有一个 plc.mtl。它是定义 OBJ 文件中使用的材料的文件。只需将其复制到您的模型文件夹中,一切都应该正常。通常它与 OBJ 文件一起提供,因此请检查您获取 OBJ 的来源。

于 2018-07-19T19:39:56.357 回答