欢迎来的Computer Graphics Lab!

【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 · 氧均竭
cover

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

纹理的应用 Environment Map p环境贴图 Environment Map 从名字我们就可以猜到它是将环境光记录到一张纹理上,并且我们认为环境光来自无限远处,让后我们可以将这个纹理作为 Bilnn-Phong 模型的环境光系数上这样我们就能得到相对准确的环境光了。 ...

April 2, 2026 · 13 min · 6431 words · 氧均竭
cover

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

Barycentric Coordinates 重心坐标 Barycentric Coordinates,重心坐标我们已经在作业2中介绍过了。 重心坐标有什用呢?在图形学中我们可以通过重心坐标使用三角形的三个顶点进行插值得到三角形内部点的属性。 在三角形的顶点上我们可以定义许多属性,例如: ...

April 1, 2026 · 7 min · 3075 words · 氧均竭
cover

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

Blinn-Phong Reflection Model 上一节课以及学习了漫反射项,这节课我们接着继续学习剩下的项 Specular Term 上一节我们学过漫反射的方向是均匀的向法线方向上的半球进行均匀反射,而对于镜面反射,它的反射方向集中在与光照方向与法线对称的方向上的一个区域上(即类似图中黄色的区域),而对于绝对光滑的表面来说它的反射方向就是镜面反射方向(即光照方向与法线对称的方向)。而当高光项是一个与我们的观察反向与反射区域的夹角相关的那么一个项,如果观察方向与镜面反射方向接近的时候我就能看到高光,而其他的时候就看不到高光。 但是 Blinn-Phong Model 有一个非常精妙的发现,观察方向如光照方向加起来再归一化得到的一个新的向量 ...

March 31, 2026 · 6 min · 2594 words · 氧均竭
cover

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

遮挡 我们一般需要在屏幕上绘制多个三角形,那么这样就需要考虑三角形之间的遮挡问题了,最直观的解决方法就是先将最远的三角形绘制出来,再将比这个三角形离屏幕近的三角形绘制出来,将原来的远处三角形覆盖掉,这个方式和画家们画油画的过程很类似,而这个算法我们称之为画家算法,时间复杂度是$O(nlogn)$。 但是这个算法不能绘制如下的情况: 这三个三角形之间并没有一个固定的前后关系,他们两两之间都遮挡了对方一部分,而用画家算法就没办法绘制这种关系 ...

March 30, 2026 · 9 min · 4429 words · 氧均竭
cover

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

这篇笔记我认为写的不好 Antialiasing 采样理论 三角形是一种连续的函数,给定任何一个点我们可以测试这个点是否在三角形内部。然后我们可以使用屏幕上的像素的中心点来进行这个测试,最终我们会得到一个类似三角形的图案 但是我们希望的是下面这样的 我们看到我们得到的图形有锯齿这么一种问题,这节课我们将学习如何抗锯齿/反走样(Antialiasing) ...

March 29, 2026 · 3 min · 1463 words · 氧均竭