老子不信我学不会OpenGL系列!007 GLM!

论坛 期权论坛 脚本     
匿名网站用户   2020-12-20 03:34   11   0

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

旋转矩阵:

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( 地址, 矩阵数量, 是否转置, 矩阵指针 )

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:1136255
帖子:227251
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP