在 OpenGl C++ 中调试视频游戏时,我打印了变换/翻译矩阵并向我展示了如下内容:
1 0 0 0
0 1 0 0
0 0 1 0
tx ty tz 1
但我认为应该是:
1 0 0 tx
0 1 0 ty
0 0 1 tz
0 0 0 1
这是代码:
glm::mat4 transform;
transform = glm::mat4();
unsigned int transformLoc = glGetUniformLocation(this->shaderProgram, "transform");
transform = glm::translate(transform, glm::vec3(5.0, 0.0, 1.0));
for (int i = 0; i < 4; ++i) {
for (int j = 0; j < 4; ++j) {
std::cout << transform[i][j] << " ";
}
std::cout << std::endl;
}
并打印:
1 0 0 0
0 1 0 0
0 0 1 0
5 0 1 1
也许,
operator[]
的glm::mat4
返回column向量(不是row向量)。