Coordenadas ARKit vs SceneKit
Estou tentando entender a diferença entre os diferentes elementos introduzidos no ArKit e seus equivalentes no SceneKit:
SCNNode.simdTransform
vsSCNNode.transform
. No ARKit, parece que as pessoas usamSCNNode.simdTransform
ao invés deSCNNode.transform
. Como eles diferem? O simdTransform parece usar a ordem principal da coluna, enquanto a transformação (SCNMatrix4) é a linha principal. Como faço para converter um para o outro? Apenas transpor? Tenho a impressão de que o rastreamento não funciona tão bem se eu usartransform
ao invés desimdTransform
. Isso é esperado ou apenas uma impressão? Se eu definir uma propriedade, o que acontecerá se eu definir a outra?
ARFrame.camera
vsScene.pointOfView
: Olhando para suas transformações, elas parecem ser um pouco diferentes:
.
// 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
Eles são os mesmos menos uma rotação?