![](https://img-blog.csdnimg.cn/2019091813595558.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
学习笔记:LearnOpenGL系列
文章平均质量分 92
参考LearnOpenGL的网站进行学习和实现,项目地址在https://github.com/LiQinJun258/LearnOpenGL_LQJ
清清!
属于是个人在线笔记备忘录
展开
-
LearnOpenGL学习笔记—PBR:IBL
LearnOpenGL学习笔记—PBR:IBL0 引入1 渲染方程的求解2 hdr文件转成cubemap3 预计算漫反射积分4 预计算镜面反射积分4.1 预滤波HDR环境贴图4.1.1 蒙特卡洛积分4.1.1.1 概率密度函数、概率分布函数4.1.1.2 数学期望4.1.1.3 大数定律4.1.1.4 蒙特卡罗积分4.1.1.5 随机抽样4.1.1.6 重要性采样4.1.1.7 预滤波HDR环境贴图4.2 预计算 BRDF本节对应官网学习内容:漫反射辐照,镜面IBL结合英文原站,中文站,以及个人实践进行原创 2020-12-15 12:35:48 · 2420 阅读 · 5 评论 -
LearnOpenGL学习笔记—PBR:光照
LearnOpenGL学习笔记—PBR1 引入2 一个PBR表面模型3 直接光照明3 线性空间和HDR渲染4 完整的直接光照PBR着色器5 带贴图的PBR6 动手试试本节对应官网学习内容:光照结合英文原站,中文站,以及个人实践进行描述。并且结合了个人在games101中的相关笔记GAMES101课程学习笔记—Lec 14(2)~16:Ray Tracing(2) BRDF、渲染方程、全局光照、路径追踪GAMES101课程学习笔记—Lec 17:Materials and Appearances 材原创 2020-11-27 23:57:52 · 958 阅读 · 3 评论 -
LearnOpenGL学习笔记——可用GitHub下载本项目啦~
LearnOpenGL学习笔记——可用GitHub下载本项目啦~更新了这么久的这个系列博客,之前一直是在文章里贴项目代码。到后期篇幅限制,有时候只能贴部分代码,一些基础的部分没有放上来,有朋友复制到本地调试,会容易出现各种设置不对。于是乎第一次尝试注册了GitHub,把该系列博客的项目传了上去!可以点击 这里 进入该项目主页关于如何使用,以及设置库,都在README.md里进行了说明(部分截图↓)当然对我自己来说也可以当做一个小小的综合展示有兴趣的朋友可以结合之前的博客与项目的对应代原创 2020-11-12 22:05:21 · 1224 阅读 · 1 评论 -
LearnOpenGL学习笔记—PBR:理论
LearnOpenGL学习笔记—PBR1 理论1.1 引入1.2 微表面模型1.3 能量守恒1.4 反射方程1.4.1 辐射度量学1.4.2 辐射通量(Radiant Flux)1.4.3 立体角(Solid Angle)1.4.4 辐射强度(Radiant Intensity)1.4.5 入射辐照度(Irradiance)1.4.6 出射辐射度(Radiance)1.4.6 概念:双向反射分布函数(Bidirectional ReflectanceDistribution Function,BRDF)1.原创 2020-11-01 19:27:32 · 1829 阅读 · 1 评论 -
LearnOpenGL学习笔记—高级光照 09:SSAO
LearnOpenGL学习笔记—高级光照 09:SSAO1 原理引入2 样本缓冲3 法向半球4 随机核心转动5 SSAO着色器6 环境遮蔽模糊7 应用环境遮蔽8 动手试试8.0 个人总结8.1 代码与效果展示8.1.0 效果展示8.1.1 几何部分8.1.2 光照处理部分8.1.3 SSAO部分8.1.4 模糊部分本节对应官网学习内容:SSAO结合英文原站,中文站,以及个人实践进行描述。第1-7节为网站内容的,边搬运边梳理第8节为个人学习总结与实践1 原理引入我们已经在前面的基础教程中简单介绍原创 2020-11-01 15:55:14 · 961 阅读 · 0 评论 -
LearnOpenGL学习笔记—高级光照 08:延迟着色法
LearnOpenGL学习笔记—高级光照 08:延迟着色法1 引入2 G缓冲本节对应官网学习内容:延迟着色法结合英文原站,中文站,以及个人实践进行描述。1 引入我们现在一直使用的光照方式叫做正向渲染(Forward Rendering)或者正向着色法(Forward Shading)。它是我们渲染物体的一种非常直接的方式,在场景中我们根据所有光源照亮一个物体,之后再渲染下一个物体,以此类推。它非常容易理解,也很容易实现,但是同时它对程序性能的影响也很大,因为对于每一个需要渲染的物体,程序都要对每原创 2020-11-01 12:56:06 · 529 阅读 · 0 评论 -
LearnOpenGL学习笔记—高级光照 07:泛光
LearnOpenGL学习笔记—高级光照 07:泛光1 引入2 提取亮色3 高斯模糊3.1 高斯模糊着色器4 把两个纹理混合5 Kalogirou的观点:关于缩小图像进行高斯模糊6 注本节对应官网学习内容:泛光结合英文原站,中文站,以及个人实践进行描述。1 引入由HDR的知识我们知道,因为监视器的亮度范围是有限的,所以明亮的光源和区域经常很难向观察者表达出来。一种区分明亮光源的方式是使它们在监视器上发出光芒,光源的光芒向四周发散。这样观察者就会产生光源或亮区的确是强光区。注:这个问题的提出简单原创 2020-11-01 00:58:06 · 590 阅读 · 0 评论 -
LearnOpenGL学习笔记—高级光照 06:HDR
LearnOpenGL学习笔记—高级光照 06:HDR1 引入2 浮点帧缓冲2.1 基础代码3 色调映射4 HDR拓展5 其他色调映射方法本节对应官网学习内容:HDR结合英文原站,中文站,以及个人实践进行描述。1 引入一般来说,当存储在帧缓冲(Framebuffer)中时,亮度和颜色的值是默认被限制在0.0到1.0之间的。这个看起来无辜的语句,使我们一直将亮度与颜色的值设置在这个范围内,尝试着与场景契合。这样是能够运行的,也能给出还不错的效果。但是如果我们遇上了一个特定的区域,其中有多个亮光源原创 2020-10-31 23:53:19 · 559 阅读 · 0 评论 -
LearnOpenGL学习笔记—高级光照 05:视差贴图
LearnOpenGL学习笔记—高级光照 05:视差贴图1 引入1.1 偏移方法一1.2 偏移方法二2 视差贴图3 陡峭视差映射4 视差遮蔽映射5 代码本节对应官网学习内容:视差贴图结合英文原站,中文站,以及个人实践进行描述(这一节英文原站描述有一些不合理之处,进行了更正)。1 引入视差贴图(Parallax Mapping)是一种类似于法线贴图的技术,但是基于不同的原理。就像法线贴图一样,它是一种可以显着提高纹理表面的细节并赋予其深度感的技术。虽然也是一种错觉,但视差贴图在传达深度感方面要好得原创 2020-10-31 20:38:15 · 1707 阅读 · 0 评论 -
LearnOpenGL学习笔记—高级光照 04:法线贴图
LearnOpenGL学习笔记—高级光照 04:法线贴图1 引入2 法线贴图2.1 代码3 问题4 切线空间4.1 手工计算切线和副切线4.2 切线空间法线贴图4.2.1 TBN矩阵使用一4.2.2 TBN矩阵使用二5 复杂物体6 代码本节对应官网学习内容:法线贴图结合英文原站,中文站,以及个人实践进行描述。1 引入我们场景中已经充满了多边形物体,其中每个都可能由成百上千平坦的三角形组成。我们以向三角形上附加纹理的方式来增加额外细节,提升真实感,隐藏多边形几何体是由无数三角形组成的事实。纹理确有原创 2020-10-31 15:48:43 · 1253 阅读 · 2 评论 -
LearnOpenGL学习笔记—高级光照 03(2):点阴影
LearnOpenGL学习笔记—高级光照 03(2):点阴影1 万向阴影贴图1.1 生成深度立方体贴图本节对应官网学习内容:点阴影1 万向阴影贴图上个教程我们学到了如何使用阴影映射技术创建动态阴影。效果不错,但它只适合定向光,因为阴影只是在单一定向光源下生成的。所以它也叫定向阴影映射,深度(阴影)贴图生成自定向光的视角。本节我们的焦点是在各种方向生成动态阴影。这个技术可以适用于点光源,生成所有方向上的阴影。这个技术叫做点光阴影,过去的名字是万向阴影贴图(omnidirectional shad原创 2020-10-30 20:00:41 · 588 阅读 · 2 评论 -
LearnOpenGL学习笔记—高级光照 03(1):阴影映射
LearnOpenGL学习笔记—高级光照 03:阴影映射、点阴影0 前言1 知识:阴影映射2 知识:深度贴图2.1 知识:光源空间的变换2.2 知识:渲染至深度贴图3 深度贴图实践0 前言在用几何着色器做机器人爆破中出现了一个BUG,此时才发现并修复(不过代码已经在发现后及早做了修改,以几何着色器那节的代码为准,并且之后的章节都没有再去弄爆破效果,所以除了那节以外没有影响)详情可点击 几何着色器 的4.1节1 知识:阴影映射本节对应官网学习内容:阴影映射关于知识部分,也可以结合着看当时学gam原创 2020-09-19 14:47:06 · 795 阅读 · 2 评论 -
LearnOpenGL学习笔记—高级光照 01~02:高级光照/Gamma校正
LearnOpenGL学习笔记—高级光照 01-02:高级光照/Gamma校正1 高级光照2 Gamma校正2.1 应用gamma矫正2.1 应用1:使用OpenGL内建的sRGB帧缓冲2.2 应用2:手动操作2.2.1 注意点1:sRGB纹理2.2.2 衰减3 实践1 高级光照本节对应官网学习内容:高级光照官网基本就是讲Blinn-Phong,在入门的时候自己就额外做过了所以附上当时的笔记:LearnOpenGL学习笔记—光照02:Lighting Basis/Advanced Lighting原创 2020-09-16 16:26:11 · 740 阅读 · 0 评论 -
LearnOpenGL学习笔记—高级OpenGL 11:抗锯齿
LearnOpenGL学习笔记—高级OpenGL 11:抗锯齿1 知识回顾2 OpenGL中的MSAA3 离屏MSAA本节对应官网学习内容:抗锯齿1 知识回顾关于抗锯齿的话题在我的博客里老生常谈了看 这一节 笔记,就能对抗锯齿或者说是反走样以及走样的产生的原理理解的很透彻了官网主要详细介绍了下MSAA的原理,可以点进去结合起来看看,不再赘述。2 OpenGL中的MSAA如果我们想要在OpenGL中使用MSAA,我们必须要使用一个能在每个像素中存储大于1个颜色值的颜色缓冲(因为多重采样需要我们为原创 2020-09-15 17:17:30 · 1300 阅读 · 0 评论 -
LearnOpenGL学习笔记—高级OpenGL 10:实例化
LearnOpenGL学习笔记—高级OpenGL 10:实例化1 知识:实例化1.1 小练习2 小行星带本节对应官网学习内容:实例化1 知识:实例化假设有一个绘制了很多模型的场景,而大部分的模型包含的是同一组顶点数据,只不过进行的是不同的世界空间变换(比如之前的十个立方体模型)。也比如是充满草的场景:每根草都是一个包含几个三角形的小模型。如果需要绘制很多根草,最终在每帧中可能会需要渲染上千或者上万根草。因为每一根草仅仅是由几个三角形构成,渲染几乎是瞬间完成的,但上千个渲染函数调用却会极大地影响性原创 2020-09-15 15:52:58 · 995 阅读 · 0 评论 -
LearnOpenGL学习笔记—高级OpenGL 09:几何着色器
LearnOpenGL学习笔记—高级OpenGL 09:几何着色器1 几何着色器知识2 实现:使用几何着色器3 实现:造几个房子4 爆破物体4.1 代码文件5 (待定)法向量可视化本节对应官网学习内容:几何着色器1 几何着色器知识在顶点和片段着色器之间有一个可选的几何着色器(Geometry Shader),几何着色器的输入是一个图元(如点或三角形)的一组顶点。几何着色器可以在顶点发送到下一着色器阶段之前对它们随意变换。然而,几何着色器最有趣的地方在于,它能够将(这一组)顶点变换为完全不同的图元,原创 2020-09-09 17:43:38 · 765 阅读 · 0 评论 -
LearnOpenGL学习笔记—高级OpenGL 07-08:高级数据/高级GLSL
LearnOpenGL学习笔记—高级OpenGL 07-08:高级数据/高级GLSL 1 高级数据1.1回顾1.2 分批顶点属性1.3 复制缓冲2 高级GLSL2.1 GLSL的内建变量2.1.1 顶点着色器变量2.1.1.1 gl_PointSize2.1.1.2 gl_VertexID2.1.2 片段着色器变量2.1.2.1 gl_FragCoord2.1.2.2 gl_FrontFacing2.1.2.3 gl_FragDepth2.2 接口块2.3 Uniform缓冲对象2.3.1 Uniform块原创 2020-09-09 11:22:21 · 626 阅读 · 0 评论 -
LearnOpenGL学习笔记—高级OpenGL 06:立方体贴图
LearnOpenGL学习笔记—高级OpenGL 06:立方体贴图1 立方体贴图概述2 创建立方体贴图3 实现:天空盒3.1 加载天空盒3.2 显示天空盒3.3 优化4 环境映射4.1 反射本节对应官网学习内容:立方体贴图1 立方体贴图概述我们已经使用2D纹理很长时间了,但除此之外仍有更多的纹理类型等着我们探索比如在games101的课程中,记录的这一节shading笔记中提到的各种纹理贴图。在本节中,我们将讨论的是将多个纹理组合起来映射到一张纹理上的一种纹理类型:立方体贴图(Cube Map)。原创 2020-09-05 18:12:17 · 1785 阅读 · 0 评论 -
LearnOpenGL学习笔记—高级OpenGL 05:帧缓冲
LearnOpenGL学习笔记—高级OpenGL 04:帧缓冲1 知识:帧缓冲2 知识:创建一个帧缓冲3 知识:纹理附件4 知识:渲染缓冲对象(RBO)附件5 知识:将图像渲染到纹理6 FBO绘制代码实现过程7 知识与实践:后期处理7.1 反相7.2 灰度7.3 卷积核7.3.1 锐化核7.3.2 模糊核7.3 边缘检测8 代码文件本节对应官网学习内容:帧缓冲1 知识:帧缓冲到目前为止,我们已经使用了很多屏幕缓冲了:用于写入颜色值的颜色缓冲、用于写入深度信息的深度缓冲和允许我们根据一些条件丢弃特定原创 2020-09-05 08:47:14 · 1717 阅读 · 0 评论 -
LearnOpenGL学习笔记—高级OpenGL 04:面剔除
LearnOpenGL学习笔记—高级OpenGL 03:面剔除1 面剔除知识2 环绕顺序3 面剔除本节对应官网学习内容:面剔除1 面剔除知识尝试在脑子中想象一个3D立方体,数数我们从任意方向最多能同时看到几个面。我们可以从任意位置和任意方向看向这个球体,但永远不能看到3个以上的面。所以我们为什么要浪费时间绘制我们不能看见的那3个面呢?如果我们能够以某种方式丢弃这几个看不见的面,我们能省下超过50%的片段着色器执行数!超过50%而不是50%,因为从特定角度来看的话只能看见2个甚至是1个面。在这种情原创 2020-09-04 15:16:01 · 410 阅读 · 0 评论 -
LearnOpenGL学习笔记—高级OpenGL 03:混合
LearnOpenGL学习笔记—高级OpenGL 03:混合1 混合2 完全透明和完全不透明2 混合3 渲染半透明纹理4 注意渲染的顺序5 代码本节对应官网学习内容:混合1 混合在OpenGL中,混合(Blending)通常可以实现物体透明度(Transparency)。透明是指一个物体(或者其中的一部分)不是纯色(Solid Color)的,它的颜色是物体本身的颜色和它背后其它物体的颜色的不同强度地结合。一个有色玻璃窗是一个透明的物体,玻璃有它自己的颜色,但它最终的颜色还包含了玻璃之后所有物体的原创 2020-09-04 13:15:38 · 924 阅读 · 0 评论 -
LearnOpenGL学习笔记—高级OpenGL 02:模板测试
LearnOpenGL学习笔记—高级OpenGL:模板测试本节对应官网学习内容:模板测试原创 2020-09-03 23:19:02 · 818 阅读 · 0 评论 -
LearnOpenGL学习笔记—高级OpenGL 01:深度测试
LearnOpenGL学习笔记—高级OpenGL:深度测试1 深度测试1.1 知识回顾1.2 代码实现1 深度测试1.1 知识回顾本节对应官网学习内容:深度测试我们之前其实已经在 坐标系统 这节开启了并使用了深度测试并在games101的 光栅化 那一课也学习了Z缓冲的知识我们接着做一点补充:我们之前运用了深度缓冲(Depth Buffer)来防止被阻挡的面渲染到其它面的前面。当深度测试(Depth Testing)被启用的时候,OpenGL会将一个片段的的深度值与深度缓冲的内容进行对比。原创 2020-08-27 21:23:52 · 2087 阅读 · 0 评论 -
LearnOpenGL学习笔记—模型加载:复习与总结
LearnOpenGL学习笔记—模型加载:复习与总结0 前言1 逻辑梳理1.1 main1.2 light1.3 shader1.4 Material1.5 Camera1.6 Mesh1.7 Model2 完整代码2.1 main.cpp2.2 Shader.h2.3 Shader.cpp2.4 Camera.h2.5 Camera.cpp2.6 vertexSource.vert2.7 fragmentSource.frag2.8 Material.h2.9 Material.cpp2.10 Mesh.原创 2020-08-09 14:03:02 · 1143 阅读 · 4 评论 -
LearnOpenGL学习笔记—模型加载03: Model
LearnOpenGL学习笔记—模型加载03: Model0 前言1 结构2 导入3D模型到OpenGL3 从Assimp到网格3.1 vertices3.2 indices3.3 textures0 前言本节笔记对应官网学习内容:模型在模型加载01中我们导入了assimp库。在模型加载02中我们定义了一个我们自己的网格类,并经过简单测试。现在是时候接触Assimp并创建实际的加载和转换代码了。这个教程的目标是创建另一个类来完整地表示一个模型,或者说是包含多个网格,甚至是多个物体的模型。一个包原创 2020-08-09 00:24:40 · 1045 阅读 · 0 评论 -
LearnOpenGL学习笔记—模型加载02: Mesh
LearnOpenGL学习笔记—模型加载02: Mesh0 前言1 Mesh类1.1 Mesh.h1.2 Mesh.cpp1.2.1 构造函数1.2.2 初始化0 前言本节笔记对应官网学习内容:网格在模型加载01中我们导入了assimp库。通过使用Assimp,我们可以加载不同的模型到程序中,但是载入后它们都被储存为Assimp的数据结构。我们最终仍要将这些数据转换为OpenGL能够理解的格式,这样才能渲染这个物体。我们从上一节中学到,网格(Mesh)代表的是单个的可绘制实体,我们现在先来定义一原创 2020-08-08 17:31:30 · 1006 阅读 · 0 评论 -
LearnOpenGL学习笔记—模型加载01: Assimp
第三部分开始啦第三部分学习主要是靠[傅老師/OpenGL教學 第三章] [01/08晚間更新] OpenGL自製3D遊戲引擎(已更畢)本节笔记对应官网学习内容:Assimp到目前为止的所有场景中,我们一直都在用我们的箱子。在日常的图形程序中,通常都会使用非常复杂且好玩的模型,它们比静态的箱子要好看多了。然而,和箱子对象不同,我们不太能够对像是房子、汽车或者人形角色这样的复杂形状手工定义所有的顶点、法线和纹理坐标。我们想要的是将这些模型(Model)导入(Import)到程序当中。模型通常都由3原创 2020-08-06 12:48:24 · 821 阅读 · 1 评论 -
LearnOpenGL学习笔记—光照:复习与总结
LearnOpenGL学习笔记—光照:复习与总结0 前言1 词汇表2 完整项目2.1 main.cpp2.2 Camera.h2.3 Camera.cpp2.4 Shader.h2.5 Shader.cpp2.6 Material.h2.7 Material.cpp2.8 vertexSource.vert2.9 fragmentSource.frag2.10 LightSpot.h2.11 LightSpot.cpp2.12 LightDirectional.h2.13 LightDirectional.原创 2020-08-03 23:48:17 · 821 阅读 · 0 评论 -
LearnOpenGL学习笔记—光照06:Multiple lights
LearnOpenGL学习笔记—光照06:Multiple lights0 前言1 Render Pipeline2 Directional Light3 Point Light4 SpotLight5 final0 前言本节笔记对应官网学习内容:多光源在光照01中我们初识了颜色的概念,试着做了一下环境光在光照02中我们学习了一下Phong光照模型与Blinn-Phong光照模型在光照03中我们初识了材质的概念并封装了对应的类在光照04中我们认识了光照贴图,丰富了材质的代码。在光照05中我们讨原创 2020-08-03 23:29:25 · 453 阅读 · 0 评论 -
LearnOpenGL学习笔记—光照05:Light Source
LearnOpenGL学习笔记—光照05:Light Source0 前言1 平行光2 点光源3 聚光0 前言本节笔记对应官网学习内容:投光物在光照01中我们初识了颜色的概念,试着做了一下环境光在光照02中我们学习了一下Phong光照模型与Blinn-Phong光照模型在光照03中我们初识了材质的概念并封装了对应的类在光照04中我们认识了光照贴图,丰富了材质的代码。我们目前使用的光照都来自于空间中的一个点。它能给我们不错的效果,但现实世界中,我们有很多种类的光照,每种的表现都不同。将光投射原创 2020-08-03 18:08:33 · 612 阅读 · 2 评论 -
LearnOpenGL学习笔记—光照04:Lighting Maps
LearnOpenGL学习笔记—光照04:Lighting Maps0 前言1 diffuse+ambient2 specular3 Emission4 完整代码0 前言本节笔记对应官网学习内容:光照贴图在光照01中我们初识了颜色的概念,试着做了一下环境光在光照02中我们学习了一下Phong光照模型与Blinn-Phong光照模型在光照03中我们初识了材质的概念并封装了对应的类尽管在上一节中,我们讨论了让每个物体都拥有自己独特的材质从而对光照做出不同的反应的方法。这样能够很容易在一个光照的场景原创 2020-07-29 17:54:24 · 489 阅读 · 1 评论 -
LearnOpenGL学习笔记—光照03:Materials
LearnOpenGL学习笔记—光照03:Material0 前言1 材质结构(Shader)2 材质结构(Class)2.1 完整代码0 前言本节笔记对应官网学习内容:材质在光照01中我们初识了颜色的概念,试着做了一下环境光在光照02中我们学习了一下Phong光照模型与Blinn-Phong光照模型在现实世界里,每个物体会对光产生不同的反应。比如说,钢看起来通常会比陶瓷花瓶更闪闪发光,木头箱子也不会像钢制箱子那样对光产生很强的反射。每个物体对镜面高光也有不同的反应。有些物体反射光的时候不会有原创 2020-07-29 10:24:13 · 484 阅读 · 0 评论 -
LearnOpenGL学习笔记—光照02:Lighting Basis/Advanced Lighting
LearnOpenGL学习笔记—光照02:Lighting Basis0 前言1 简单光照模型原理概述(Blinn-Phong光照模型)1.1 漫反射1.2 镜面反射/高光(与Phong光照模型对比)1.3 环境光1.4 合成2 实现2.1 Phong光照模型2.2 Blinn-Phong光照模型/对比3 完整代码0 前言本节笔记对应官网学习内容:基础光照在光照01中我们初识了颜色的概念,试着做了一下环境光这一节我们学习一下一些简单的光照模型原教程以Phong光照模型引入,我们以Blinn-Pho原创 2020-07-28 20:58:59 · 1252 阅读 · 0 评论 -
LearnOpenGL学习笔记—光照01:Color
入门之后,第二部分开始啦第二部分学习主要是靠[傅老師/OpenGL教學 第二章][10/16晚間更新] OpenGL自製3D遊戲引擎本节笔记对应官网学习内容:颜色1 颜色概述颜色可以数字化的由红色(Red)、绿色(Green)和蓝色(Blue)三个分量组成,它们通常被缩写为RGB。用这三个值就可以组合出任意一种颜色。我们在现实生活中看到某一物体的颜色是它所反射的(Reflected)颜色。换句话说,那些不能被物体所吸收(Absorb)的颜色(被拒绝的颜色)就是我们能够感知到的物体的颜色。这些原创 2020-07-27 17:09:29 · 556 阅读 · 0 评论 -
LearnOpenGL学习笔记—入门:复习与总结
LearnOpenGL学习笔记—入门08:Camera在入门01中我们配置好了环境中我们配置好了环境在入门02中我们可以检测输入并出现一个有颜色的窗口在入门03中我们初步学习了图形渲染管线,尝试用不同方法画出了三角形和四边形在入门04(上)中我们学习了shader和GLSL的相关知识,并给图形加上了变换的颜色以及彩色。在入门04(下)中我们建立自己的shader类,并能够从外部读取shader的内容。在入门05中我们了解了有关材质的内容在入门06中,我们尝试用旋转矩阵以及四元数的方法组成变换矩原创 2020-07-27 01:15:51 · 1113 阅读 · 1 评论 -
LearnOpenGL学习笔记—入门08:Camera
LearnOpenGL学习笔记—入门08:Camera0 前言1 摄像机/观察空间概述2 基础摄像机类实现3 欧拉角摄像机3.1 完整代码4 四元数摄像机(?)0 前言本节笔记对应的内容 摄像机中我们配置好了环境在入门02中我们可以检测输入并出现一个有颜色的窗口在入门03中我们初步学习了图形渲染管线,尝试用不同方法画出了三角形和四边形在入门04(上)中我们学习了shader和GLSL的相关知识,并给图形加上了变换的颜色以及彩色。在入门04(下)中我们建立自己的shader类,并能够从外部读取sh原创 2020-07-27 01:08:42 · 1768 阅读 · 1 评论 -
LearnOpenGL学习笔记—入门07:Coordinate Systems
LearnOpenGL学习笔记—入门07:Coordinate Systems0 前言1 坐标系统概述1.1 局部空间1.2 世界空间/模型矩阵1.3 观察空间/观察矩阵1.4 裁剪空间/投影矩阵1.4.1 正射投影1.4.2 透视投影1.5 总结2 代码实现0 前言本节笔记对应的内容 坐标系统在入门01中我们配置好了环境在入门02中我们可以检测输入并出现一个有颜色的窗口在入门03中我们初步学习了图形渲染管线,尝试用不同方法画出了三角形和四边形在入门04(上)中我们学习了shader和GLSL的原创 2020-07-26 14:20:05 · 2561 阅读 · 1 评论 -
LearnOpenGL学习笔记—入门06 附:关于四元数
关于四元数避免万向节死锁的真正解决方案是使用四元数(Quaternion)本节关于四元数的理解以及它对三维旋转的作用,主要对3Blue1Brown的视频进行了描述,可以从这两个视频找到它:四元数的可视化,四元数和三维转动1 四元数的可视化这个视频中,3B1B给我们建立了直观印象,看四元数对四维空间都干了什么,以此来可以更好理解四元数的公式视频中分了以下几个主题展开1.怎样到一个只能理解一维的人来理解复数2.向只能理解二维的人描述三维旋转3.在三维的约束下,表现四元数在干什么1.1 从一原创 2020-07-24 01:53:20 · 2265 阅读 · 1 评论 -
LearnOpenGL学习笔记—入门06:Transformations
LearnOpenGL学习笔记—入门06:变换0 前言10 前言本节笔记对应的内容 变换在入门01中我们配置好了环境在入门02中我们可以检测输入并出现一个有颜色的窗口在入门03中我们初步学习了图形渲染管线,尝试用不同方法画出了三角形和四边形在入门04(上)中我们学习了shader和GLSL的相关知识,并给图形加上了变换的颜色以及彩色。在入门04(下)中我们建立自己的shader类,并能够从外部读取shader的内容。在入门05中我们了解了有关材质的内容尽管我们现在已经知道了如何创建一个物体原创 2020-07-24 17:35:19 · 2861 阅读 · 0 评论 -
LearnOpenGL学习笔记—入门05:Texture
小学期终于结束了,可以回来更新了Orz,总是拖拖拉拉的(瘫0 前言本节笔记对应的内容 纹理在入门01中我们配置好了环境在入门02中我们可以检测输入并出现一个有颜色的窗口在入门03中我们初步学习了图形渲染管线,尝试用不同方法画出了三角形和四边形在入门04(上)中我们学习了shader和GLSL的相关知识,并给图形加上了变换的颜色以及彩色。在入门04(下)中我们建立自己的shader类,并能够从外部读取shader的内容。在这一节,我们将会了解有关材质的内容1 纹理简介在之前的学习中,我们可原创 2020-07-19 18:30:31 · 1435 阅读 · 1 评论