beginner graphics question, OpenGL, Metal or SceneKit

Hi everyone, long time iphone programmer but new to 3D graphics, i'm just looking for some advice as to how to approach the following problem.


I need to have a sphere (not a cube) on which to project a picture. Camera will be at the center of the sphere and should rotate with the phone rotation. At all times i need to grab the XY position of the original image that aligns with the camera's direction.


So, being a noob to 3D, which would be the best / less painful way to achieve this? OpenGL ES, Metal? or SceneKit?


Any pointers are appreciated


~ dh

Best tutorials will be in OpenGL. Your app will be very undemanding performance wise.


You will be fiddling with the Camera transformation matrix. You will be rotating the camera.


Recommended primer book for view camera:

Game Programming Algorithms and Techniques: A Platform-Agnostic Approach

Scene Kit will be a about 10x less lines of code to do this. Maybe 20x less.


But Scene Kit is weird and does have bugs, minimal (no) support from Apple and near zero meaningful documentation beyond introductory materials.

Save yourself, be happy, get plenty of exercise, eat your veggies, and when jumping into the 3D graphics pool, especially for the first time, for the love of all you hold near and dear to your heart start, with SceneKit. Also, get warm and fuzzy with GLKit, specifically its vectors, matrices, and GLKQuaternion.


Why GLKQuaternion, and SceneKit's SCNQuaternion? Well, let's talk about how to handle cameras, which are as important to a good 3D app as an aged Reposado tequila is to a Margarita. I'll distill it down to a word–Quaternions. They may look scary but when you are moving all around they are your big 'ol friend who just happens to show up as you're about to be mugged in a dark and dangerous alley by Gimbal Lock and his friends from the Euler family. The first time you're twisting a camera all which ways, you'll thank me. I say this to to you now because I wish someone had said this to me 12 years ago when I picked-up the monkey on my back that is 3D graphics–how I love the eye candy!–but was mugged...several times. Never said I was smart.


If in some hopefully very distant future you have an epiphany that you need to get closer to the silicon, well then, there's Metal. By that time, Metal will be less of a leap for you than it would be now.


¡adiós!

Curious to find out how you got on and which advice you took. Did you try SceneKit?


Having experimented with GLKit in the past I love the idea of SceneKit, but I'm put off by the negative commentators because of the specific requirements of my app concept which is also a mixture of camera and 3D.


I only read your post now, but I thought I'd chip in as your concept requires tracking the device orientation with the camera and as far as I can tell, this is not going to work very well as you will get 'drift' as the device orientation moves out of sync with the cameras image over a period of time.


This is a typical 'Augmented Reality' problem that is solved with a tracking solution such as Vuforia or ARToolkit

beginner graphics question, OpenGL, Metal or SceneKit
 
 
Q