这一部分就是讲的线性代数,解析几何的知识,我不仔细看了,只做重点的记录。
旋转矩阵:

GLM:
在这里下载(我是在GitHub上下载的,官网似乎上不去……)
下载master分支(原教程用的是0.9.8,maser分支是0.9.9)。0.9.8矩阵初始化是单位矩阵。0.9.9(我们的版本)矩阵初始化是全零矩阵。
需要导入:
#include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <glm/gtc/type_ptr.hpp>

这三个文件全在这个文件夹里,其他的,似乎不用管。
类型:
glm::mat4 |
4*4矩阵 |
glm::vec3 |
3维向量 |
glm::vec4 |
4维向量 |
函数:
glm::translate( mat4, vec3 ) |
将移动vec3 的变换 乘到mat4上
|
glm::rotate( mat4, radians, vec3 ) |
将 绕vec3旋转radians弧度 的变换 乘到mat4上 |
glm::radians( 角度float ) |
将角度化为弧度制 |
glm::scale( mat4, vec3 ) |
将 每个轴向按照vec3进行缩放 的变换 乘到mat4上 |
glm::mat4( a ) |
构造对角矩阵,对角线元素全是a |
glm::value_ptr( mat4 ) |
传入shader时候用,矩阵的原始数据 |
矩阵传入到Shader:
unsigned int transformLoc = glGetUniformLocation(ourShader.ID, "transform");
glUniformMatrix4fv(transformLoc, 1, GL_FALSE, glm::value_ptr(trans));
glUniformMatrix4fv( 地址, 矩阵数量, 是否转置, 矩阵指针 ) |