ARCore NDK Pose 的 Matrix4x4 格式是什么?
Which is the Matrix4x4 format from ARCore NDK Pose?
在NDK中使用此函数时:
void ArPose_getMatrix(
const ArSession *session,
const ArPose *pose,
float *out_matrix_col_major_4x4
)
我得到一个Pointer to an array of 16 floats, to be filled with a column-major homogenous transformation matrix, as used by 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, x.y, x.z, x.t
y.x, y.y, y.z, y.t
z.x, z.y, z.z, z.t
0, 0, 0, 1
我只知道阅读顺序:x.x, y.x, z.x ...
因为是专栏。
我怎么知道正确的格式?
ARCore *out_matrix_col_major_4x4
中组件的顺序与 OpenGL Matrices 中的相同:
ARCore 文档says about it obviously:
out_matrix_col_major_4x4
is a Pointer to an array of 16 floats, to be filled with a column-major homogenous transformation matrix, as used by OpenGL.
最右列 [0,0,0,1] 中的前三个元素沿 x
、y
、z
轴:
此 4x4 矩阵中 最低行 [0,0,0,1] 中的前三个元素用于仿射映射。因此,在投影后应用变换时,必须考虑 4x4 矩阵的最后一行。
Term Column-Major means: the elements of this matrix are gettable and settable using columns' order. Thus, translate x
, y
, z
elements are located in the rightmost fourth column.
在NDK中使用此函数时:
void ArPose_getMatrix(
const ArSession *session,
const ArPose *pose,
float *out_matrix_col_major_4x4
)
我得到一个Pointer to an array of 16 floats, to be filled with a column-major homogenous transformation matrix, as used by 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, x.y, x.z, x.t
y.x, y.y, y.z, y.t
z.x, z.y, z.z, z.t
0, 0, 0, 1
我只知道阅读顺序:x.x, y.x, z.x ...
因为是专栏。
我怎么知道正确的格式?
ARCore *out_matrix_col_major_4x4
中组件的顺序与 OpenGL Matrices 中的相同:
ARCore 文档says about it obviously:
out_matrix_col_major_4x4
is a Pointer to an array of 16 floats, to be filled with a column-major homogenous transformation matrix, as used by OpenGL.
最右列 [0,0,0,1] 中的前三个元素沿 x
、y
、z
轴:
此 4x4 矩阵中 最低行 [0,0,0,1] 中的前三个元素用于仿射映射。因此,在投影后应用变换时,必须考虑 4x4 矩阵的最后一行。
Term Column-Major means: the elements of this matrix are gettable and settable using columns' order. Thus, translate
x
,y
,z
elements are located in the rightmost fourth column.