C++ 哪种是ARCore NDK姿势的Matrix4x4格式?

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.

在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.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矩阵的最后一行

术语主要列的意思是:此矩阵的元素可以使用列的顺序获取和设置。因此,translate
x
y
z
元素位于最右边的第四列