第十一课,OpenGL光照之投光物-卡核

第十一课,OpenGL光照之投光物

1.平行光 平行光,即光线方向为定值。 在点光源中,我们通过 lightDir = normalize(light.position.xyz - FragPos);来确定光线照射角度,而在平行光中lightDir(光照角度...
2年前
0690
QT with OpenGL(HDR)-卡核

QT with OpenGL(HDR)

借鉴自 https://www.bilibili.com/read/cv11765941/ 文章目录 为什么引入HDR(High Dynamic Range)如何使用更大范围的帧缓存在Qt中使用帧缓存对象构造FBO纹理附件(多纹理绑定及渲染)数据...
2年前
01130
第三课,OpenGL的着色器-卡核

第三课,OpenGL的着色器

优化首先将着色器的编译链接进行优化//Shader.h #pragma once #include <glad/glad.h> class Shader{ public: //程序ID unsigned int ID; //构造器读取并构建着色器 Shader(const GLchar*...
2年前
21230
第十八课,立方体贴图(加载天空盒)-卡核

第十八课,立方体贴图(加载天空盒)

原理我在这里不再过多叙述,主要从代码的运行方向来解读立方体贴图 添加天空盒顶点 float skyboxVertices[] = { // positions -1.0f, 1.0f, -1.0f, -1.0f, -1.0f, -1.0f, 1.0f, -1.0...
2年前
01460
第十课,OpenGL光照之贴图-卡核

第十课,OpenGL光照之贴图

光照贴图 光照贴图,及使用纹理代替物体颜色,物体的实际颜色由物体材质和光照决定。 漫反射贴图 使用一张覆盖物体的图像,让我们能够逐片段索引其独立的颜色值。 方式 1 将...
2年前
0470
第二十四课、二十五课,高级光照(blinn),Gamma矫正-卡核

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

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

第十七课,帧缓存(后期处理)

反向 void main() { FragColor = vec4(vec3(1.0 - texture(screenTexture, TexCoords)), 1.0); } 灰度 均分灰度 void main() { FragColor = texture(screenTexture, TexCoords); floa...
2年前
0750
第九课,OpenGL光照之材质-卡核

第九课,OpenGL光照之材质

物体材质 在冯氏模型中,一个物体的材质由:全局光照系数,漫反射光照系数,反射光照系数,反射高光半径系数决定。 分别由:ambient,diffuse࿰...
2年前
0760
第二十三课,抗锯齿(Anti Aliasing)-卡核

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

Anti Aliasing(ˈænti ,ˈeliəsɪŋ )反走样 文章目录 超采样抗锯齿(Super Sample Anti-aliasing, SSAA)多重采样抗锯齿(Multisample Anti-aliasing, MSAA)GLFW中的MSAAO...
2年前
02040
第一课,OpenGL窗口设置-卡核

第一课,OpenGL窗口设置

第一课,opengl窗口设置笔记 1 初始化glfw 设置opengl版本及窗口模式 glfwInit(); glfwWindowHint(); 2 创建窗口 设置为当前线程 window = glfwCreateWindow&#...
2年前
01430
第十七课,帧缓存(创建和使用方法)-卡核

第十七课,帧缓存(创建和使用方法)

OpenGL允许我们定义我们自己的帧缓冲,也就是说我们能够定义我们自己的颜色缓冲,甚至是深度缓冲和模板缓冲。 创建一个帧缓冲 1.创建一个帧缓冲对象(Framebuffer Object, FBO) 创建...
2年前
0830
第八课,OpenGL光照之基本光照-卡核

第八课,OpenGL光照之基本光照

冯氏光照模型(Phong Lighting Model) 环境光照(Ambient Lighting):即使在黑暗的情况下,世界上通常也仍然有一些光亮(月亮、远处的光),所以物体几乎永远不会...
2年前
0510