gpt4 book ai didi

c++ - ARCore NDK Pose 的 Matrix4x4 格式是什么?

转载 作者:太空狗 更新时间:2023-10-29 22:55:16 25 4
gpt4 key购买 nike

NDK 中使用此函数时:

void ArPose_getMatrix(
const ArSession *session,
const ArPose *pose,
float *out_matrix_col_major_4x4
)

我得到一个指向一个由 16 个 float 组成的数组的指针,用 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.

enter image description here

最右列中的前三个元素 [0,0,0,1] 用于沿着 x,y,z 轴:

enter image description here

此 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.

关于c++ - ARCore NDK Pose 的 Matrix4x4 格式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52764363/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com