第二十八章 变换坐标总结
可以使用矩阵来变换物体。
补充:两个向量相减会得到两个向量指向位置的差:a-b可以得到由b指向a的一个向量
补充:OpenGL通常是在3D空间进行操作的,对于2D的情况我们可以把z轴缩放1倍,这样z轴的值就不变了。我们刚刚的缩放操作是不均匀(Non-uniform)缩放,
因为每个轴的缩放因子(Scaling Factor)都不一样。如果每个轴的缩放因子都一样那么就叫均匀缩放(Uniform Scale)。
补充:位移就是在原始向量的基础上加了另一个向量,就是在原来的基础上移动了原始向量。(用矩阵点乘可以得到)
补充:向量的w分量叫做齐次坐标,w分量存在则可以在3D向量上进行位移,如果w分量为0,则坐标是方向向量,且不能位移
如果由一个顶点,希望先缩放再位移。建议:先缩放再位移,如果反着来,位移的向量也会被缩放,导致和预期不符
GLM是一个只有头文件的库,从0.9.9版本开始,默认将矩阵类型初始化为一个0矩阵,而不是单位矩阵。
可以使用glm::mat4 mat = glm::mat4(1.0f)来进行改变为单位矩阵。
GLM大多数功能都可以从以下头文件找到:
#include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <glm/gtc/type_ptr.hpp>
补充:如果用translate进行位移则第一个参数需要一个单位矩阵,第二个参数是要位移大小的向量;再通过用位移矩阵*原向量,可以得到位移后的向量
补充:旋转用这个函数————glm::rot