glm::translate 如何工作?

问题描述 投票:0回答:1

在 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
c++ opengl glm-math
1个回答
0
投票

也许,

operator[]
glm::mat4
返回column向量(不是row向量)。

© www.soinside.com 2019 - 2024. All rights reserved.