排序
第三课,OpenGL的着色器
优化首先将着色器的编译链接进行优化//Shader.h #pragma once #include <glad/glad.h> class Shader{ public: //程序ID unsigned int ID; //构造器读取并构建着色器 Shader(const GLchar*...
第七课,OpenGL之LookAt函数
观察空间 通过给定摄像机位置,摄像机焦点,摄像机顶部分向量,可得到摄像机的固定位置。 glm::lookAt(cameraPos, cameraFocus, cameraUp); LookAt函数提供了这种计算,...
第二十一课,几何着色器(使用篇-爆破效果)
爆破效果 原理: 将每一个片元沿三角形法向量方向移动一段距离 核心代码 + 避坑点: .vert #version 450 core layout (location = 0) in vec3 aPos; layout (location ...
第十三课,深度测试
开启深度测试 glEnable(GL_DEPTH_TEST); 清除深度缓存 glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); 深度测试函数 OpenGL允许我们禁用深度缓冲的写入,只需要设置它的深度掩码(D...
OpenGL学习笔记——处理键盘输入
转载自:https://www.cnblogs.com/saltedreed/p/12321314.html 用GLFW处理用户键盘输入有两种方式,一种是使用回调函数,一种是在每一次游戏循环中处理。这两种方法的最大差...
第二十一课,几何着色器(基础篇)
几何着色器的作用 输入 输入类型 从顶点着色器接收下列任何一个图元值: 类型数组大小points:绘制GL_POINTS图元时。1lines:绘制GL_LINES或GL_LINE_STRIP时2lines_adjacency...
第十二课,assimp模型加载(绘制篇)
首先创建模型渲染管线 Shader ourShader("1.model_loading.vs", "1.model_loading.fs"); vertexShader #version 330 core layout (location = 0) in vec3 aPos; layou...
第六课,OpenGL的3D坐标系统
启动深度测试 glEnable(GL_DEPTH_TEST); 启动3D深度测试,绘制的图形不会因为先后顺序改变。 模型矩阵 glm::mat4 mode = glm::mat4(1.0f); mode = glm::rotate(mode, (float)gl...
第二十课,高级GLSL
内建变量 已知 gl_Position 顶点着色器的裁剪空间输出位置向量 FragColor 片元着色器的片元输出颜色值 未知 顶点着色器变量 gl_PointSize GLSL定义了一个叫做gl_PointSize输出变量,它是...
第十二课,assimp模型加载(数据加载篇)
大佬讲解入口 OpenGL学习脚印:模型加载初步-加载obj模型(load obj model) ,作者:The fool OpenGL学习脚印-AssImp模型加载 ,作者:The fool 本人主要通过程序流程理...
QT With OpenGL(延时着色法)(Deferred Shading)
文章目录 1.创建G-Buffer帧缓存2.修改各类型物体的着色器3. 测试G_Buffer4. 使用G_Buffer生成场景5. 添加高光项(1)如果为光源物体,则不进行光照结果计算(2)...