使用 Sceneform 实时下载 3D 模型
Download a 3D model in real time using Sceneform
如何使用 Sceneform 下载 3D 模型并将其实时显示在我的 Arcore 应用程序中?
Is it possible to download a 3D model (.obj format) and load it in my Arcore app in realtime?
是的,是!
1.安装 Google Sceneform Tools(测试版)插件
在 Android Studio 中打开插件设置:
- Windows:文件 > 设置 > 插件 > 浏览存储库
- macOS:Android Studio > 首选项 > 插件
然后单击浏览存储库并安装 Google Sceneform 工具(测试版)。
2。导入 3D 资源
Sceneform 支持 OBJ、FBX 和 glTF 格式的 3D 资产。按照以下步骤导入资产:
验证项目的应用程序文件夹是否包含示例数据文件夹。如果该文件夹不存在,请通过右键单击项目 window 中的 app 文件夹然后 selecting New > Sample Data Directory 来创建它。
sampledata 文件夹是您的 Android Studio 项目的一部分,但其内容未包含在您的 APK 中。
将 3D 资源复制到 sampledata 文件夹中。
不要将资产复制到 assets 或 res 文件夹,因为这会导致它不必要地包含在您的 APK 中。
右键单击 3D 资产并select导入 Sceneform 资产以开始导入过程。
单击“完成”后,向导将执行以下操作:
将 Sceneform gradle 插件添加到项目的 build.gradle(如果尚不存在)。
依赖项{
类路径 'com.google.ar.sceneform:plugin:1.0.0'
}
更新您应用的 build.gradle 文件以包含应用插件行,以及每个导入资产的 sceneform.asset() 条目:
应用插件:'com.google.ar.sceneform.plugin'
sceneform.asset('sampledata/models/andy.obj',
'default',
'sampledata/models/andy.sfa',
'src/main/res/raw/andy')
这些条目创建两个 gradle 任务:
createAsset-<asset-name>
:创建一个SFA(Sceneform Asset Definition)文件,如果它还不存在的话。
该文件包含完整的、人类可读的资产描述。它指向源资产中的模型和纹理,还通过为 Sceneform 基于物理的 material 提供 material 参数来定义 material。
此任务不会覆盖现有的 SFA 文件,这意味着您在导入后对 SFA 文件所做的任何修改都不会被覆盖。
compileAsset-<asset-name>
:将SFA文件编译成SFB(Sceneform Binary asset)文件。
此文件内置到您应用的 APK 中,并在运行时加载以创建可渲染文件。
有关详细信息,请参阅 Sceneform Gradle Plugin reference。
- 在查看器中打开 SFA 和 SFB window,允许您通过修改 SFA、编译资产和预览 SFB 来迭代资产。有关您可以调整的参数列表,请参阅 SFA 文件格式参考。
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;
});
来源:Import and Preview 3D assets(2018 年 6 月 18 日)
如何使用 Sceneform 下载 3D 模型并将其实时显示在我的 Arcore 应用程序中?
Is it possible to download a 3D model (.obj format) and load it in my Arcore app in realtime?
是的,是!
1.安装 Google Sceneform Tools(测试版)插件
在 Android Studio 中打开插件设置:
- Windows:文件 > 设置 > 插件 > 浏览存储库
- macOS:Android Studio > 首选项 > 插件
然后单击浏览存储库并安装 Google Sceneform 工具(测试版)。
2。导入 3D 资源
Sceneform 支持 OBJ、FBX 和 glTF 格式的 3D 资产。按照以下步骤导入资产:
验证项目的应用程序文件夹是否包含示例数据文件夹。如果该文件夹不存在,请通过右键单击项目 window 中的 app 文件夹然后 selecting New > Sample Data Directory 来创建它。 sampledata 文件夹是您的 Android Studio 项目的一部分,但其内容未包含在您的 APK 中。
将 3D 资源复制到 sampledata 文件夹中。
不要将资产复制到 assets 或 res 文件夹,因为这会导致它不必要地包含在您的 APK 中。
右键单击 3D 资产并select导入 Sceneform 资产以开始导入过程。
单击“完成”后,向导将执行以下操作:
将 Sceneform gradle 插件添加到项目的 build.gradle(如果尚不存在)。
依赖项{ 类路径 'com.google.ar.sceneform:plugin:1.0.0' }
更新您应用的 build.gradle 文件以包含应用插件行,以及每个导入资产的 sceneform.asset() 条目:
应用插件:'com.google.ar.sceneform.plugin'
sceneform.asset('sampledata/models/andy.obj', 'default', 'sampledata/models/andy.sfa', 'src/main/res/raw/andy')
这些条目创建两个 gradle 任务:
createAsset-<asset-name>
:创建一个SFA(Sceneform Asset Definition)文件,如果它还不存在的话。 该文件包含完整的、人类可读的资产描述。它指向源资产中的模型和纹理,还通过为 Sceneform 基于物理的 material 提供 material 参数来定义 material。 此任务不会覆盖现有的 SFA 文件,这意味着您在导入后对 SFA 文件所做的任何修改都不会被覆盖。compileAsset-<asset-name>
:将SFA文件编译成SFB(Sceneform Binary asset)文件。 此文件内置到您应用的 APK 中,并在运行时加载以创建可渲染文件。
有关详细信息,请参阅 Sceneform Gradle Plugin reference。
- 在查看器中打开 SFA 和 SFB window,允许您通过修改 SFA、编译资产和预览 SFB 来迭代资产。有关您可以调整的参数列表,请参阅 SFA 文件格式参考。
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;
});
来源:Import and Preview 3D assets(2018 年 6 月 18 日)