C++ 哪种是ARCore NDK姿势的Matrix4x4格式?
在NDK中使用此功能时:C++ 哪种是ARCore NDK姿势的Matrix4x4格式?,c++,matrix,android-ndk,augmented-reality,arcore,C++,Matrix,Android Ndk,Augmented Reality,Arcore,在NDK中使用此功能时: void ArPose_getMatrix( const ArSession *session, const ArPose *pose, float *out_matrix_col_major_4x4 ) 我得到了一个指向16个浮点数组的指针,该指针将被OpenGL使用的列主同质转换矩阵填充。 但我不知道这个矩阵是否: x.x, x.y, x.z, 0 y.x, y.y, y.z, 0 z.x, z.y, z.z, 0 t.x, t.y, t.
void ArPose_getMatrix(
const ArSession *session,
const ArPose *pose,
float *out_matrix_col_major_4x4
)
我得到了一个指向16个浮点数组的指针,该指针将被OpenGL使用的列主同质转换矩阵填充。
但我不知道这个矩阵是否:
x.x, x.y, x.z, 0
y.x, y.y, y.z, 0
z.x, z.y, z.z, 0
t.x, t.y, t.z, 1
或
我只知道读的顺序:x.x,y.x,z.x…
我如何知道正确的格式?ARCore
*out\u matrix\u col\u major\u 4x4
中的组件顺序与中的相同:
ARCore文档:
void ArPose_getMatrix(
const ArSession *session,
const ArPose *pose,
float *out_matrix_col_major_4x4
)
out\u matrix\u col\u major\u 4x4
是一个指针,指向一个由16个浮点组成的数组,由一个列主同质变换矩阵填充,就像OpenGL使用的那样
最右侧列中的前三个元素[0,0,0,1]用于沿x
、y
、z
轴进行翻译:
此4x4矩阵中最低行的前三个元素用于仿射映射。因此,在投影后应用变换时,必须考虑4x4矩阵的最后一行
术语主要列的意思是:此矩阵的元素可以使用列的顺序获取和设置。因此,translatex
,y
,z
元素位于最右边的第四列