首页 > 解决方案 > 如何将复杂的 .dae 模型导入到 SceneKit?

问题描述

我知道如何从 Blender 中将单个模型(如汽车)导出为.dae文件,然后将其导入并使用 SceneKit 显示。还有那个模型的动画。

但我想知道导入更复杂模型的最佳方法是什么。就像一个城市的一小部分。就像一个有多辆汽车、建筑物和人的场景,有不同的动画。

有没有办法做到这一点,而无需将所有内容导出为一个带有一个动画的模型,然后通过 SceneKit 中的代码组合并放置所有内容?因此,尽可能多地在 Blender/其他 3D 工具中定义。

标签: swiftscenekitaugmented-realityblenderarkit

解决方案


很明显,您必须从 3D 包中导出复杂的模型,这些包被分成更小的部分。当然,您不一定需要单独导出所有 3D 模型(基于每个模型)。无论如何,准备所有 3D 模型以供使用Game Engine是非常耗时的过程。没有一键式解决方案

像城市这样的复杂场景在逻辑上可以划分为一组静态对象:摩天大楼、柱子、沥青、房屋、长凳等。但是动画对象,比如人、树或汽车,必须从 Blender 导出并单独导入到 SceneKit。

请记住,这些 3D 对象(无论是单个对象还是一组对象)的所有对应纹理都必须保存为 UV 映射正方形jpegpng文件(如 512x512 或 1024x1024 像素)。并且不要忘记用于动力学的低多边形碰撞网格。

查看WWDC 2015 SceneKit 会议。您将看到如何在 Xcode 的场景编辑器中构建 3D 场景。

在此处输入图像描述

为了实现您的目标,您需要从 Blender 中导出 3D 场景的较小部分(如我之前提到的逻辑划分),将所有部分导入 SceneKit (ARKit) 项目,然后通过 Swift 代码将它们全部组合起来。此外,许多 3D 包可以将多个动画导出为带有所谓的子动画的单个动画。在这篇 SO 帖子中,您可以找到如何处理它。


推荐阅读