XCode SceneKit to Reality Composer

Hi all,


I am testing USD (Universal Scene Description) export from XCode. Hoping to export a scene in SceneKit into something that works inside Reality Composer.


I thought it would be straightforward, but not quite.


1. I started with XCode, default ship.scn I simply added a bunch of random geometry. With the box, I was actually hoping to be able to have AR that has special occlusion shader... but never mind on that.


2. Export as USD from XCode.



I converted the USD file format into USDZ using usdzip. Well, I am getting the ship but without texture. Further digging into the USD file, I realized: maybe I need to have the image texture file that I specified inside XCode. I copy the image file and specify a folder with name that matches the path. Once again I run usdzip on the same file.


Ok now I am getting material with proper textures! Ideally, I would expect XCode to also export as USD but with all the textures etc. But never mind, this can be an advantage.


Below is how it looks when using AR Quick Look on MacOS: (texture seems to work)


NOTE: Fancy shaders do not seem to transfer with USD. I guess that does not matter for now, hoping that maybe in the future Apple makes it clear, allowing Occlusion shader or other custom shader inside Reality Composer. Like Particles glow or something.


3. Testing the resulting USDZ inside Reality Composer and also in iOS.

In iOS, apparently the ship does not have the textures.... same case with Reality Composer.


At this stage, I think I found a bug. iOS 13 Beta 3 still incorrectly translates this. Or maybe it's the XCode or maybe USDZIP bug?

Replies

I'm having the same issue. Exporting from SceneKit Scene Editor to USD (mobile), inspecting the resulting file shows that it contains all meshes and materials, but no textures. The only models visible in quicklook or composer are the ones without a texture diffuse. I'm in Xcode 11 Beta 2 and Catalina Beta 2.