第三课,OpenGL的着色器-卡核

第三课,OpenGL的着色器

优化首先将着色器的编译链接进行优化//Shader.h #pragma once #include <glad/glad.h> class Shader{ public: //程序ID unsigned int ID; //构造器读取并构建着色器 Shader(const GLchar*...
2年前
21240
QT With OpenGL(延时着色法)(Deferred Shading)-卡核

QT With OpenGL(延时着色法)(Deferred Shading)

文章目录 1.创建G-Buffer帧缓存2.修改各类型物体的着色器3. 测试G_Buffer4. 使用G_Buffer生成场景5. 添加高光项(1)如果为光源物体,则不进行光照结果计算(2)...
2年前
0580
QT With OpenGL(泛光)(Bloom)-卡核

QT With OpenGL(泛光)(Bloom)

文章目录 一、渲染场景到HDR帧缓存1. HDR帧缓存需要两个颜色纹理--MRT(Multiple Render Targets,多渲染目标)2. 将场景渲染到HDR帧缓存,提取高光图。修改shader...
2年前
0560
QT with OpenGL(HDR)-卡核

QT with OpenGL(HDR)

借鉴自 https://www.bilibili.com/read/cv11765941/ 文章目录 为什么引入HDR(High Dynamic Range)如何使用更大范围的帧缓存在Qt中使用帧缓存对象构造FBO纹理附件(多纹理绑定及渲染)数据...
2年前
01130
第二十四课、二十五课,高级光照(blinn),Gamma矫正-卡核

第二十四课、二十五课,高级光照(blinn),Gamma矫正

高级光照(blinn) 这里主要是矫正了,视口方向和反射方向夹角太小造成的阴影轮廓现象。 但是在我的项目中,只要给blinn光照的shiness乘4,基本与冯氏光照没有区...
2年前
0460
第二十三课,抗锯齿(Anti Aliasing)-卡核

第二十三课,抗锯齿(Anti Aliasing)

Anti Aliasing(ˈænti ,ˈeliəsɪŋ )反走样 文章目录 超采样抗锯齿(Super Sample Anti-aliasing, SSAA)多重采样抗锯齿(Multisample Anti-aliasing, MSAA)GLFW中的MSAAO...
2年前
02060
第二十二课,实例化(instancing)-卡核

第二十二课,实例化(instancing)

概述 对于拥有同一模型数据的物体(例如:草),每一帧需要渲染成百上千的实例,这些渲染几乎可以瞬间完成,但是上千个渲染函数的调用却会造成极大的性能...
2年前
0310
QT with OpenGL(Shadow Mapping)(平行光篇)-卡核

QT with OpenGL(Shadow Mapping)(平行光篇)

一. 给平行光添加阴影 1. 生成一张深度帧缓存 glwidget.h //-----------------测试参数 QOpenGLFramebufferObject* depthMapFBO; const unsigned int SHADOW_WIDTH = 1024, SHADOW_HEIGHT ...
2年前
0980
第二十一课,几何着色器(使用篇-法向量可视化)-卡核

第二十一课,几何着色器(使用篇-法向量可视化)

法向量可视化 绘制物体绘制物体法向量 VS #version 450 core layout (location = 0) in vec3 aPos; layout (location = 1) in vec3 aNormal; out VS_OUT { vec3 normal; } vs_out; un...
2年前
0400
第二十一课,几何着色器(使用篇-爆破效果)-卡核

第二十一课,几何着色器(使用篇-爆破效果)

爆破效果 原理: 将每一个片元沿三角形法向量方向移动一段距离 核心代码 + 避坑点: .vert #version 450 core layout (location = 0) in vec3 aPos; layout (location &#...
2年前
0410
OpenGL环境配置-卡核

OpenGL环境配置

配置环境 1.打开 VS2019 新建C++项目 2.打开配置属性 设为所有配置,Win32平台 3.基本配置 可使用glfw,以及OpenGL函数(glad)。 C/C++ -> 常...
2年前
0700
第二十课,高级GLSL-卡核

第二十课,高级GLSL

内建变量 已知 gl_Position 顶点着色器的裁剪空间输出位置向量 FragColor 片元着色器的片元输出颜色值 未知 顶点着色器变量 gl_PointSize GLSL定义了一个叫做gl_PointSize输出变量,它是...
2年前
0400