摘要:
博客搬迁到 www.jckcoenf.top 或者 jckcoenf.github.io 这里不再更新 阅读全文
摘要:
本篇博客说一下学习延迟渲染中遇到的问题。 学习延迟渲染的过程中主要给了我疑惑的是深度测试的问题,在Learn OpenGL的相关代码中,我并没有看到G-buffer有根据片段深度对片段进行消隐或者显示。这是我一直疑惑的地方。如果在fragment shader中不经过深度测试就将片段输出至G-buf 阅读全文
摘要:
一周没写博客了(感觉每天都在划水),OpenGL还差Deferred Shading和SSAO,以及PBR的内容没学,计划到下个月十号左右初步学完,然后进入实践环节(元旦前结束),至于图形学后面怎么学还没有正式确定(大概方向是进一步熟悉OpenGL,然后写个光栅化渲染器之类的,如果还有时间的话还能尝 阅读全文
摘要:
首先,我们要知道视差贴图Parallax Mapping的作用,为什么要引入它。 对于一张原本2D的图片,我们通过使用法线贴图,使其表面表现出了一定的凹凸感,细节感。但是还是可能会出现一些问题,法线贴图只能通过明暗来表现凹凸,同时它忽视了现实中的一些效果。比如说遮挡的效果,只应用了法线贴图的纹理无法 阅读全文
摘要:
讲道理,这篇blog大概是我思考最久的主题了(大概花了2天的时间,期间找了很多的参考资料看),那么我现在在这里尝试着将它们说清楚。 首先是Normal Mapping法线贴图。 一般的,为了增加物体表面的细节,我们会使用法线贴图。为什么? 我们可以仔细想一下光照渲染中的各种步骤,除了ambient/ 阅读全文
摘要:
本篇blog主要是写一下藏在Gamma校正技术背后的原理,我尽可能地去阐述为什么会有Gamma校正这个东西,以及为什么一般的Gamma值是2.2。 前置知识:首先我们要知道,人类对于颜色的敏感度并非是线性的,对于暗色的辨识能力要比亮色的辨识能力强一些(这是进化的结果,辨识更多的暗色有助于发现隐藏在黑 阅读全文
摘要:
补一下C++中内存对齐的细节。 首先上个例子: 按照正常算的话,i和s应该占 4 + 1 = 5个字节,但是用sizeof函数计算出来的结果却是8个字节,为什么会这样? 原因出在内存对齐身上。。 然后。。我懒得写了,丢两个链接,写得很棒很详细。 而关于std140的布局还有些不理解,暂时先放一放吧。 阅读全文
摘要:
学习立方体贴图(skybox)的时候,在优化那里,有这么一段话: 一开始我还有些纳闷,想着透视除法不是通过透视矩阵自动操作的嘛,还有z分量怎么就是深度值了?不是应该通过上次深度测试所给的函数才对吗? 带着这些疑问,我重新查阅了一些资料,也看了透视矩阵的推导过程。 实际上,我以前的想法有些许错误,在顶 阅读全文
摘要:
将颜色缓冲,深度缓冲,模板缓冲结合起来,就叫做帧缓冲(存储在内存中)。 具体创建方法以及用法这里不讲,LearnOpenGL对应章节有:帧缓冲。 这里说一下容易让人误解(或者难以理解)的地方。 实际上我们平时做的一些操作都是在默认帧缓冲中的渲染缓冲(Renderbuffer)中进行的,这里默认的帧缓 阅读全文
摘要:
面剔除和深度测试之间的区别。一般面剔除是应用于一些闭合物体(比方说立方体),由于视角的缘故,我们最多能同时看到一个物体的三个面,其他三个看不到,那么此时,我们就可以将另外三个看不到的面剔除掉。这就是面剔除,它节省了很多系统开销。深度测试的话不仅用于单个物体(的两个相对面),也用于物体于物体之间。面剔 阅读全文