LearnOpenGL学习笔记(五)
1.准备工作
OpengGL中对物体的变换是通过矩阵对象来实现的,需要掌握一些最基本的矩阵运算相关知识。
要在OpenGL中使用矩阵,需要用到一个第三方库GLM(OpenGL Mathematics),它是一个只有头文件的库(这里下载,我选择的是0.9.8的版本)。我们需要的GLM的大多数功能都可以从下面这3个头文件中找到:
#include <glm/glm.hpp>
#include <glm/gtc/matrix_transform.hpp>
#include <glm/gtc/type_ptr.hpp>
我们需要定义顶点着色器,使能够接收一个mat4的uniform矩阵,通过变换矩阵左乘位置向量,就可以实现对图形的变换。
#version 330 core
layout (location = 0) in vec3 aPos;
layout (location = 1) in vec2 aTexCoord;
out vec2 TexCoord;
uniform mat4 transform;
void main()
{
gl_Position = transform * vec4(aPos, 1.0f);
TexCoord = vec2(aTexCoord.x, aTexCoord.y);
}
然后在渲染循环中,我们需要加入如下语句以定义我们的变换矩阵,注意代码中的定义顺序与实际效果的顺序是相反的(线性代数知识)。<