如何创建要在 SceneKit 中使用的 DAE 文件?

Posted

技术标签:

【中文标题】如何创建要在 SceneKit 中使用的 DAE 文件?【英文标题】:How to create a DAE file to use in SceneKit? 【发布时间】:2015-01-18 14:39:30 【问题描述】:

如何从 3D 模型创建 .dae 文件?我已经从无人机区域映射创建了一个 3D 模型,现在有一个非常大的文件可以导入到 Photoshop 中,但我不知道如何创建一个可以在 SceneKit 中使用的.dae 文件。

Xcode 的默认游戏示例有一个显示旋转飞机的 SceneKit,资产是 .dae 文件,但我没有看到任何有关如何从 3D 模型创建其中一个的文档,以及如何正确应用纹理。

【问题讨论】:

似乎应该有一个教程在那里解释如何从 3d 模型 .OBJ 文件开始,并使用 Photoshop 或其他类似工具和 Xcode,解释如何创建示例 SceneKit 启动器您目前在 Xcode 6.1 中看到的项目。让我知道是否有人发现了类似的东西。 大多数 3D 建模软件都可以导出为 COLLADA 文件 (.dae)。尝试其中之一。正如这个问题目前所说的那样,它与 ptogramming 无关。 类似问题:blender.stackexchange.com/questions/14584/… 这个article 可能对你有帮助 【参考方案1】:

要创建 3D 模型并将其导出为 Collada .dae 文件,您可以使用以下任何 3D 创作工具:Autodesk Maya、Blender、Autodesk 3dsMax、The Foundry Modo、Maxon Cinema 4D、SideFX Houdini 等。最简单的方法是使用 Autodesk Maya 2022 的非商业学生版。它是免费的。您可以从HERE下载。

YouTube如何在Maya软件中建模和uv-map的例子数不胜数。 Look at this example of UV-mapping in Maya。因此,当您的 3D 模型(及其 UV 纹理)可供使用时,您可以将其导出为 SceneKit 支持的四种格式之一:

动画科拉达DAE 动画皮克斯USDZ(适用于 ios 12 及更高版本) 动画 Autodesk FBX 单帧索尼Alembic 单帧波前OBJ

在 Maya Export Type 中,您的 3D 几何体必须为 DAE_FBX export

模型的纹理(方形 UV 映射 1K 或 2K),您可以导出为 JPEGPNG 文件。它可能看起来像这样:

您必须将此 UV-square-texture 分配给Show the Material Inspector 中Lighting Model(着色器)中的一个Diffuse属性槽。

如果你想以编程方式编写,这里有一些 Swift 代码:

let scene = SCNScene(named: "art.scnassets/mushroom.scn")!

let mushroom = scene.rootNode.childNode(withName: "mushroom", 
                                     recursively: true)!

let mushroomMaterial = SCNMaterial()

mushroomMaterial.diffuse.contents = UIImage(named: "mushroom.png")

附注使用 Pixar 的 USDZ 文件格式

如果您的 3D 场景需要 .usdz,您可以在终端中使用以下命令转换 .usda

usdzconvert file.usda

您可以在这里阅读usdzconvert 命令。

【讨论】:

以上是关于如何创建要在 SceneKit 中使用的 DAE 文件?的主要内容,如果未能解决你的问题,请参考以下文章

SceneKit - 具有 DAE 文件格式的动画

SceneKit:如何控制导入资产的大小,一个 DAE 文件创建巨大的 SCNNode 而另一个是“正常”

如何在 iOS SceneKit 中使用具有不同场景图形的 DAE 文件

如何在 SceneKit 中使用 OBJ 文件或 CTM 文件而不是 DAE 文件?

SceneKit - 如何获取 .dae 模型的动画?

SceneKit:使用 dae 动画更新 SCNGeometry