Ultra High Resolution Image for ARKit

Earlier today, I was holding a paper map on my hand. Eventhough these days we are able to open just a large size photo and scroll through, I was wondering if we can implement experience of looking at high resolution map in 3D space.


I am fairly new with iOS development and just the other day manage to use the template ARKit + SpriteKit to create Emoji and Text. Even with this, I realized scaling the text actually make the resolution of the Sprite node kind of pixelated. It looks good at their assigned size.


Anyhow, I am wondering with iOS 11, and HEIF format, how would one enables user to view a Giga Pixel Panorama or ultra high resolution image with ARKit? Maybe before jumping to ARKit and simulate viewing a huge image, perhaps we can simply use SpriteKit to simulate 2D panning XY of gigapixel image.


Is this an easy task?

Answered by CartoonSmart.com in 244252022

I think the easiest thing would be to use the SpriteKit / ARKit template and just add an SKSpriteNode to an anchor (instead of SKLabelNode currently in the template). For the image texture of the sprite, set it to your large image and see how it looks. ARKit uses "billboarding" to display the sprites (so they are always facing the viewer), but I think that would actually work out fine for a large image. I don't see why you couldn't pan around it. Worth a try!

Just to add, I did find this at StackExchange, more or less the same question:

https://stackoverflow.com/questions/41652185/how-do-i-efficiently-map-a-high-res-skscene-in-scenekit


SceneKit (3D) is another possibilities, apart from SpriteKit.


Really, the question is how to really efficiently allow user to view huge image. If I am not wrong at one of WWDC 2017 presentation, HEIF ultra hires 360 panorama was shown and it "streams" the image efficiently. The power of that compression in iOS 11. Let say if I have a huge JPEG panorama I want to stuff into HEIF, will it work right away in Photos? --> the most basic functionality.


I have a feeling this is getting into VR 360 realms... but I will research on "max resolution" for SpriteKit and SceneKit.

Accepted Answer

I think the easiest thing would be to use the SpriteKit / ARKit template and just add an SKSpriteNode to an anchor (instead of SKLabelNode currently in the template). For the image texture of the sprite, set it to your large image and see how it looks. ARKit uses "billboarding" to display the sprites (so they are always facing the viewer), but I think that would actually work out fine for a large image. I don't see why you couldn't pan around it. Worth a try!

Ultra High Resolution Image for ARKit
 
 
Q