你在一个教室中趴在桌子上睡觉,天色开始逐渐变红,教室中的窗帘被一阵风拍的开始乱飞,你被惊醒,发现同学都不见了,你跑出教室,下楼的时候你突然脚滑摔晕。
打算结束掉这个系列了,因为我目前的精力完全不够了,需要开发Luna ,还需要学习新的知识,当我学习新的知识的时候会同步更新blog,这些已经掌握的知识再写blog就有些浪费时间了。 下面是这个系列文章的索引了。目前更新到第14节,但其实15-17节中的内容我其他的文章中也有提到,所以可以去参考那些blog学习,我现在真正感兴趣的时候去实现games101中的大作业,所以期待新的大作业相关的blog吧!也许未来有时间还会继续补充完整的。01.Overview of Computer Graphics02.Review of Linear Algebra03.Transformation04.Transformation Cont05.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 313.Ray Tracing 114.Ray Tracing 2其他参考【CG】辐射度量学 & PBR【CG】基于图像的光照 Image-based Lighting(实时渲染)
我们已经知道我们可以通过AABB来加速我们的光线与物体求交,但是在这个基础上我们可以进一步进行加速,下面是两种方法

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

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

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

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

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

