OpenGL 的 Java 的 Matrix定义问题

今天遇到遇到一个问题,做视变换和投影变换的矩阵相乘的时候,结果总是出现了问题。最后看到Matrix的定义才最终明白。定义如下:

/**
 * Matrix math utilities. These methods operate on OpenGL ES format
 * matrices and vectors stored in float arrays.
 * <p>
 * Matrices are 4 x 4 column-vector matrices stored in column-major
 * order:
 * <pre>
 *  m[offset +  0] m[offset +  4] m[offset +  8] m[offset + 12]
 *  m[offset +  1] m[offset +  5] m[offset +  9] m[offset + 13]
 *  m[offset +  2] m[offset +  6] m[offset + 10] m[offset + 14]
 *  m[offset +  3] m[offset +  7] m[offset + 11] m[offset + 15]</pre>
 *
 * Vectors are 4 x 1 column vectors stored in order:
 * <pre>
 * v[offset + 0]
 * v[offset + 1]
 * v[offset + 2]
 * v[offset + 3]</pre>
 */

最开始有如下的定义,其中matrix是一个长度为16的一维数组,本来下意识认为行优先,但是实际是列优先。

也就是说,Matrix是列优先

©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页