I'm trying to understand the difference between the different element introduced in ArKit and their maybe equivalents in SceneKit:
SCNNode.simdTransform
vsSCNNode.transform
. In ARKit, it seems that people useSCNNode.simdTransform
instead ofSCNNode.transform
. How do they differ? simdTransform seems to use column major order, while transform (SCNMatrix4) is row major. How do I convert one to the other? Just transpose? I've the impression that the tracking doesn't work as well if I usetransform
instead ofsimdTransform
. Is that expected or just an impression? If I set one property, what happens if I then set the other one?ARFrame.camera
vsScene.pointOfView
: Looking at their transforms, they seem to be a bit different:
.
// ARFrame.camera.transform (matrix_float4x4)
-0.01 0.99 -0.11 0.02
-0.99 0.00 0.11 0.06
0.10 0.11 0.98 0.0
0.0 0.0 0.0 1.0
// sceneView.pointOfView.transform (SCNMatrix4)
// or sceneView.pointOfView.simdTransform^T (matrix_float4x4)
0.99 0 0.11 0
0.01 0.99 -0.12 0
-0.11 0.11 0.98 0
0.03 0.6 0.0 0.99
Are they the same minus one rotation?