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

时间:2014-11-20 16:27:43

标签: swift xcode scenekit ios12

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

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

1 个答案:

答案 0 :(得分:1)

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

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

  • 动画Collada DAE
  • 动画皮克斯USDZ(在iOS 12及更高版本中受支持)
  • 单帧Sony Alembic
  • 单帧波前OBJ

enter image description here

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

enter image description here

您可以为您建模的纹理(方形UV贴图1K,2K,4K等)导出为JPEGPNG文件。可能看起来像这样:

enter image description here

您必须在Diffuse检查器的Lighting Model(阴影)中的属性的 Show the Material 插槽中分配此UV正方形纹理。

enter image description here

  

这是一些Swift 4.1代码,如果您想通过编程方式制作的话:

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")

P.S。使用Pixar的USD文件格式

如果您的3D场景使用.usda模型而不是.usdz,则可以在终端机中使用命令行方法转换.usda

xcrun usdz_convertor file.usda file.usdz

usdz_convertor方法仅在安装Xcode 10时可用。