是否可以下载 3D 模型(.obj 格式)并将其实时加载到我的 Arcore 应用程序中?
是的!
1.安装Google Sceneform Tools(测试版)插件
在 Android Studio 中打开插件设置:
然后单击浏览存储库并安装 Google Sceneform Tools(测试版)。
2. 导入 3D 资源
Sceneform 支持 OBJ、FBX 和 glTF 格式的 3D 资源。请按照以下步骤导入资产:
验证您的项目的应用程序文件夹是否包含sampledata 文件夹。如果该文件夹不存在,请通过右键单击“项目”窗口中的应用程序文件夹,然后选择“新建”>“示例数据目录”来创建该文件夹。Sampledata 文件夹是 Android Studio 项目的一部分,但其内容不包含在您的 APK 中。
将 3D 资源复制到 Sampledata 文件夹中。
请勿将资产复制到 asset 或 res 文件夹中,因为这会导致它不必要地包含在您的 APK 中。
右键单击 3D 资源并选择导入 Sceneform 资源以开始导入过程。
单击“完成”后,向导将执行以下操作:
将 Sceneform gradle 插件添加到项目的 build.gradle(如果尚不存在)。
依赖项 { 类路径 'com.google.ar.sceneform:plugin:1.0.0' }
更新应用程序的 build.gradle 文件以包含 apply 插件行以及每个导入资源的 sceneform.asset() 条目:
应用插件:'com.google.ar.sceneform.plugin'
sceneform.asset('sampledata/models/andy.obj', '默认', 'sampledata/models/andy.sfa', 'src/main/res/raw/andy')
这些条目创建两个 gradle 任务:
createAsset-<asset-name>:创建 SFA(场景资产定义)文件(如果尚不存在)。该文件包含完整的、人类可读的资产描述。它指向源资源中的模型和纹理,还通过为 Sceneform 基于物理的材质提供材质参数来定义材质。此任务不会覆盖现有的 SFA 文件,这意味着导入后对 SFA 文件所做的任何修改都不会被覆盖。
compileAsset-<asset-name>:将 SFA 文件编译为 SFB(Sceneform 二进制资源)文件。该文件内置于应用程序的 APK 中,并在运行时加载以创建可渲染文件。有关更多信息,请参阅Sceneform Gradle 插件参考。
3. 创建可渲染对象
获得 SFB 格式的资源后,您可以构建 ModelRenderable 并将其附加到场景中的节点,如下所示:
ModelRenderable.builder()
.setSource(this, R.raw.andy)
.build()
.thenAccept(renderable -> andyRenderable = renderable)
.exceptionally(
throwable -> {
Log.e(TAG, "Unable to load Renderable.", throwable);
return null;
});
Run Code Online (Sandbox Code Playgroud)
来源:导入和预览 3D 资源(2018 年 6 月 18 日)
| 归档时间: |
|
| 查看次数: |
3497 次 |
| 最近记录: |