欢迎来到Computer Graphics Lab!

【CG | Paper Reading】A Reflectance Model for Computer Graphics

前言 《A Reflectance Model for Computer Graphics1》由 Robert L. Cook(来自 Lucasfilm)和 Kenneth E. Torrance(来自康奈尔大学)于 1982 年发表于 SIGGRAPH 这篇论文是计算机图形学中最常用的反射模型,在看这篇论文之前我已经了解过论文中提到的模型了,不过是经过改进的现代模型,现在让我们看看原文是怎么写的,主要聚焦于Cook-Torrance 反射模型 ...

May 25, 2026 · 4 min · 2001 words · 氧均竭

【CG | Re0:PathTracing】 Specular Reflection | 0x04

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 来仔细讲解和实现。 ...

May 25, 2026 · 5 min · 2412 words · 氧均竭

【CG | Re0:PathTracing】实现 IS RR NEE MIS | 0x03

背景 上次学习了 Radiometry&Monte Carlo Integration 的理论知识,现在觉得自己很强,想学习一下怎么将理论应用到实践中了,你准备在你第一次实现的那个最简单的渲染器上进行扩展,并加入一些新的材质、和优化方法,并且进一步理解上次代码中不懂得一些问题 ...

May 18, 2026 · 17 min · 8328 words · 氧均竭

【CG | Re0:PathTracing】Radiometry&Monte Carlo Integration | 0x02

背景 你根据给出的 README 成功构建了一个最简单的 Path Tracing Renderer 渲染出来了自己的第一个 Cornell Box,并且心怀忐忑的将答卷交到了 CGLab 的邮箱中去,虽然最终结果看起来很丑陋,整幅图都是噪点,而且渲染出来的速度非常慢,但是说到底也是渲染出来了。 ...

May 6, 2026 · 16 min · 7877 words · 氧均竭

【CG | Re0:PathTracing】 从零开始搓一个路径追踪渲染器 | 0x01

背景 你在一个教室中趴在桌子上睡觉,天色开始逐渐变红,教室中的窗帘被一阵风拍的开始乱飞,你被惊醒,发现同学都不见了,你跑出教室,下楼的时候你突然脚滑摔晕。 ...

April 17, 2026 · 32 min · 15588 words · 氧均竭

【CG】Games101系列总结

打算结束掉这个系列了,因为我目前的精力完全不够了,需要开发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(实时渲染) ...

April 12, 2026 · 1 min · 354 words · 氧均竭
cover

【CG】Games101-014学习笔记 & 作业解析

Acceleration Structures 我们已经知道我们可以通过AABB来加速我们的光线与物体求交,但是在这个基础上我们可以进一步进行加速,下面是两种方法 Uniform Grid 找到整个场景的AABB包围盒 将整个包围盒均匀划分为网格 找到所有物体在网格中的位置并存储起来 ...

April 7, 2026 · 7 min · 3433 words · 氧均竭
cover

【CG】Games101-013学习笔记 & 作业解析

Ray Tracing Why Ray Tracing? Ray Tracing 主要是解决光栅化中不太好解决的全局效果的问题,我们知道光栅化是只关注Shading Point和光源的效果,Shading Point与其他周围的物体完全无关,这就会很难做到一些全局效果,比如:软阴影,间接光照,Glossy reflection等等,光栅化中光线命中到物体后就不会发生反弹了,但是在光线追踪中,光源会发生多次的弹射。 光栅化的优点是一种很快的方法,但是渲染质量非常的低。 而光线追踪的优点是可以得到更好的质量,但是速度非常慢。 ...

April 6, 2026 · 5 min · 2308 words · 氧均竭
cover

【CG】Games101-012学习笔记 & 作业解析

Mesh Subdivision Mesh Subdivision 是一种将模型进行分割的方法,增加模型的三角形面,使得模型更加平滑。当一个物体距离相机非常近的时候,我们希望这个物体的细节更加丰富。 我们的细分通常是指对一个原有的三角形面划分出更多的三角形,再使得这些三角形的顶点发生一点变换使得模型更精细。如果只做一步细分,但是顶点没变,那不是相当于什么都没做吗? ...

April 5, 2026 · 4 min · 2000 words · 氧均竭
cover

【CG】Games101-011学习笔记 & 作业解析

几何的显示表示 点阵云 用点表示模型的所有的几何点,只要当点云的密度足够大,那么我们就看不出来点与点之间的距离,但是需要表示非常精细的模型通常需要使用非常多非常密的点,通常将现实世界中的物体扫描到电脑中都是使用的点云。由于点云需要非常多的点才能精确的表示一个模型,所以通常人们会想办法使用点云中的点构建三角形面 ...

April 3, 2026 · 5 min · 2104 words · 氧均竭