【发布时间】:2018-08-24 21:22:30
【问题描述】:
我想使用 OpenGL 中的 glm 库设置对象(不是相机)的 x、y、z 坐标。
我希望 glm::translate 方法能够解决这个问题,但它会生成矩阵,这实际上会修改我查看对象的方式。
这是调用方法的方式:
glm::translate(glm::vec3(x, y, z));
它返回矩阵:
| 1 0 0 0 |
| 0 1 0 0 |
| 0 0 1 0 |
| x y z 1 |
但我希望:
| 1 0 0 x |
| 0 1 0 y |
| 0 0 1 z |
| 0 0 0 1 |
我做了一个像glm::transpose(glm::translate(glm::vec3(x, y, z))) 这样的快速修复,但它似乎是一个糟糕的代码。
有没有办法生成一个矩阵来创建平行平移,设置对象的 x、y、z 坐标,而不转置矩阵本身?
【问题讨论】:
-
我认为您打印或使用矩阵不正确。
-
我认为使用这样的功能
mat4 m; m = glm::translate(m, glm::vec3(x , y, z));
标签: c++ opengl matrix glm-math coordinate-transformation