【CG】 Perlin Noise
柏林噪声 | Perlin Noise 在很多游戏中,比如 Minecraft 的地形生成,怪物猎人的云,大部分游戏中的火焰,水面的纹理都是基于 Perlin Noise 实现的 而这篇文章我们将学习 Perlin Noise 的基本思想,以及使用 C++ 实现一个基本的二维 Perlin Noise ...
柏林噪声 | Perlin Noise 在很多游戏中,比如 Minecraft 的地形生成,怪物猎人的云,大部分游戏中的火焰,水面的纹理都是基于 Perlin Noise 实现的 而这篇文章我们将学习 Perlin Noise 的基本思想,以及使用 C++ 实现一个基本的二维 Perlin Noise ...
因为我不是计算机专业的,可以这么说,我是民计(类似民科),所有计算机相关的内容都是自学的,在看 CSAPP 第二章的时候看得我是异常得痛苦,虽然我能看懂,但是我认为我对数据表示这一块不是很感兴趣,所以看起来有点难受,索性我直接采用探索性学习法,我决定不再看第二章,直接去做第二章的作业,以及DataLab,而我将在探索中学习到这些知识,现在这篇文章是我做DataLab的记录。 ...
介绍 在光栅化中我们通过定义三角形的三个顶点的各种属性并对其进行重心坐标插值而得到三角形内部点的属性,而我们又经常需要知道在屏幕空间中三角形内部两个相邻的像素间其对应的三维空间中点的属性的变化率(在连续空间中变化率就是导数),简单说就是当像素变化了一个单位时其他属性的变化量是多少。 ...
雅可比迭代法(Jacobi Iteration Method)是一种求解线性方程组的方法,它与我们熟悉的高斯消元法两种不同的方法,高斯消元法是一种直接法,能直接得到方程的精确解,而 Jacobi 迭代法从名字就能猜到是一种间接法,也就是通过迭代来逼近精确解,给出的是近似解。 ...
前言 《A Reflectance Model for Computer Graphics1》由 Robert L. Cook(来自 Lucasfilm)和 Kenneth E. Torrance(来自康奈尔大学)于 1982 年发表于 SIGGRAPH 这篇论文是计算机图形学中最常用的反射模型,在看这篇论文之前我已经了解过论文中提到的模型了,不过是经过改进的现代模型,现在让我们看看原文是怎么写的,主要聚焦于Cook-Torrance 反射模型 ...
Abstract 上一节,我们学习并实现了简单的 Lambertian 漫反射材质模型,这一节我们将学习更复杂的 Cook-Torrance 材质模型并将其实现到我们现有的渲染器中。 Microfacet Theory 上一节,我们也提到过“在 Re0:0x02 中我们给出了 BRDF 的定义,但是那只是定义式是没办法用于真正计算的,所以我们需要对真实的材质在我们的定义式下进行建模,通过建模后的式子才适合用于计算”,然后我们给出了简单的漫反射材质模型,这一节我们将学习更复杂的材质模型。而这个材质模型是由 Robert L. Cook(来自 Lucasfilm)和 Kenneth E. Torrance(来自康奈尔大学)于 1982 年发表的《计算机图形学的反射模型》(A Reflectance Model for Computer Graphics1)所提出的。我们将结合这篇论文、 Google filament 的白皮书 《Physically Based Rendering in Filament2》和 Real Shading in Unreal Engine 43 来仔细讲解和实现。 ...
背景 上次学习了 Radiometry&Monte Carlo Integration 的理论知识,现在觉得自己很强,想学习一下怎么将理论应用到实践中了,你准备在你第一次实现的那个最简单的渲染器上进行扩展,并加入一些新的材质、和优化方法,并且进一步理解上次代码中不懂得一些问题 ...
背景 你根据给出的 README 成功构建了一个最简单的 Path Tracing Renderer 渲染出来了自己的第一个 Cornell Box,并且心怀忐忑的将答卷交到了 CGLab 的邮箱中去,虽然最终结果看起来很丑陋,整幅图都是噪点,而且渲染出来的速度非常慢,但是说到底也是渲染出来了。 ...
背景 你在一个教室中趴在桌子上睡觉,天色开始逐渐变红,教室中的窗帘被一阵风拍的开始乱飞,你被惊醒,发现同学都不见了,你跑出教室,下楼的时候你突然脚滑摔晕。 ...
打算结束掉这个系列了,因为我目前的精力完全不够了,需要开发Luna ,还需要学习新的知识,当我学习新的知识的时候会同步更新blog,这些已经掌握的知识再写blog就有些浪费时间了。 下面是这个系列文章的索引了。 目前更新到第14节,但其实15-17节中的内容我其他的文章中也有提到,所以可以去参考那些blog学习,我现在真正感兴趣的时候去实现games101中的大作业,所以期待新的大作业相关的blog吧! 也许未来有时间还会继续补充完整的。 01.Overview of Computer Graphics 02.Review of Linear Algebra 03.Transformation 04.Transformation Cont 05.Rasterization 1 (Triangles) 06.Rasterization 2 (Antialiasing and Z-Buffering) 07.Shading 1 (Illumination, Shading and Graphics Pipeline) 08.Shading 2 (Shading, Pipeline and Texture Mapping) 09.Shading 3 (Texture Mapping Cont.) 10.Geometry 1 (Introduction) 11.Geometry 2 (Curves and Surfaces) 12.Geometry 3 13.Ray Tracing 1 14.Ray Tracing 2 其他参考 【CG】辐射度量学 & PBR 【CG】基于图像的光照 Image-based Lighting(实时渲染) ...