Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to create a DAE file to use in SceneKit?

How do you create a .dae file from a 3D model? I've created a 3D model from a drone areal mapping and now have a very large file I can import in to Photoshop, but I can't figure out how to create a .dae file I can use in SceneKit.

The default game example for Xcode has a SceneKit that shows a rotating aircraft, and the asset is a .dae file, but I don't see any documentation on how to create one of those from a 3D model, and how to correctly apply a texture to it.

like image 332
ricozinn Avatar asked Nov 20 '14 16:11

ricozinn


1 Answers

To create a 3D model and export it as a Collada .dae file you can use any of the following 3D authoring tools: Autodesk Maya, Blender, Autodesk 3dsMax, The Foundry Modo, Maxon Cinema 4D, SideFX Houdini, etc. The simplest way is to use a non-commercial student version of Autodesk Maya 2022. It's free. You can download it from HERE.

There are countless examples in YouTube how to model and uv-map in Maya software. Look at this example of UV-mapping in Maya. So, when your 3D model (and its UV-texture) is ready for use, you can export it as one of the four formats supported by SceneKit:

  • animated Collada DAE
  • animated Pixar USDZ (for iOS 12 and higher)
  • animated Autodesk FBX
  • single-frame Sony Alembic
  • single-frame Wavefront OBJ

enter image description here

In Maya Export Type for your 3D geometry must be DAE_FBX export:

enter image description here

A texture for you model (square UV-mapping 1K or 2K) you can export as JPEG or PNG file. It may look like this:

enter image description here

This UV-square-texture you must assign to a Diffuse slot of properties in Lighting Model (shader) in Show the Material Inspector.

enter image description here

And here's some Swift code if you wanna make it programmatically:

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. Working with Pixar's USDZ file format:

If you need a .usdz for your 3D scene, you can convert .usda using the following command in Terminal:

usdzconvert file.usda

Here you can read about usdzconvert command.

like image 170
Andy Jazz Avatar answered Nov 15 '22 09:11

Andy Jazz