3

I'm going to develop an AR iOS app with ARKit + SceneKit to place 3D content. This will be my first ARKit app and I'm not very familiar yet neither with that framework nor with SceneKit, so I'm reading Apple's documentation and several posts and tutorials that showcase examples.

However, I don't find a clear manual/guideline/document about importing 3D models to be used with ARKit. Most of the sample code and tutorials I find, including Apple's, already integrate models as .scn and .png files.

My project's designers can create 3D models and have asked me what I need for my app. They don't know what I need them to generate to be imported in Xcode for ARKit, and I don't know what I should ask them for.

Could somebody give me some guidelines about this topic and/or tell me where can I find them?

AppsDev
  • 12,319
  • 23
  • 93
  • 186
  • I'm not sure of a complete list sorry, but one of the most common formats that is used with ARKit is `.dae` - which can be generated with Blender etc. – Jordan Dec 16 '17 at 19:50

1 Answers1

3

In most cases the most suitable format is DAE. Scenekit will recognize the materials and the file can include animations as well. OBJ format is also supported but is more limited.

When you open a .dae file in Xcode it will ask you to “update” the model, which is often required for it to show properly.

Additionally, IF you plan to use the subdivision in SceneKit, it is currently (ios 11.2 and earlier) best to use models with quad polygons only. The loading option preserveoriginaltopology ( https://developer.apple.com/documentation/scenekit/scnscenesource.loadingoption/1778185-preserveoriginaltopology) is currently bugged and does not support variable N-gons.

You may also want to watch the WWDC videos for Model IO (2015,2017) which is a framework for importing and exporting 3D assets. Model IO assets can be easily converted to Scenekit objects and supports the formats Alembic (.abc), Wavefront Object (.obj), Polygon (.ply), and Standard Tessellation Language (.stl). “Additional formats may be supported as well.” You can test the latter specifically with: https://developer.apple.com/documentation/modelio/mdlasset/1391813-canimportfileextension

Xartec
  • 2,369
  • 11
  • 22
  • Just for clarity as the original question was "importing 3D models to be used with ARKit" - your response is still valid if ARKit is being used as well? – Ali Beadle Dec 17 '17 at 07:05
  • Yes. It seems to be a common misconception but your question is really about SceneKit and has nothing to do with ARKit. ARKit itself does not load or render models, that is why ARKit is used in combination with Scenekit (augment the reality provided by ARKit by rendering 3D objects over it) or in combination with SpriteKit (to augment the reality with 2D overlays). – Xartec Dec 17 '17 at 19:29
  • Cheers. That was what I thought too. Was not the OP. – Ali Beadle Dec 17 '17 at 19:50
  • But the question remains. If I had a modeler in front of me.. and I needed a model to be used in ARKit/Scenekit, what is the minimum or maximum specs to give the modeler, so that the models he makes are optimal to be used in Scenekit/Arkit ? It is well said that we should do low-poly, but what does that mean? – omarojo Jun 30 '18 at 16:44
  • What should be the size of the size of the model. Is there any limitation ? – chandru Oct 03 '19 at 12:24