Games101 Homeworks Summary
Prefab
Games101还是要强烈推荐给大家,把图形学一些基本的内容讲的十分透彻了。这里记录一下作业的成果,具体的代码实现就不展示了,如果有特别巧妙的会注明。封面将对当前最新进度结果进行展示。
已完结,代码库
Assignment 1
第一次作业就是简单的几何透视。课上分开讲,所以用分开的子矩阵相乘得到,或者直接计算到结果。
注意这里先假定图像是中心对称摆好的
Assignment 2
第二次作业是实现depth buffer。
注意MSAA的实现,需要将一个像素点打成四个进行分析,对最终颜色根据一个像素内有几个点在三角形内重新计算(color*=#三角形内点/4)
但是这样只是抑制了颜色的数值,实际上我们希望的是两种颜色之间的渐变过渡。
因此采用原本数值和新数值的加权求和,但是这种方法首先于先后出现关系,因此不能完全解决问题。
似乎效果也不是很好。。。
Assignment 3
这次作业不仅东西多,而且很多细节课上没有明确,虽然作业根据指导还是比较清晰的,但是对其背后的原理很多都不甚清晰。
Assignment 4
Assignment 5
光线追踪具体挺麻烦的,但是这里只需要实现简单的功能--由screen发射ray(其实就是将屏幕空间(0, width-1)x(0,vheight-1)映射到(-1, 1)x(-1, 1)的空间里去),还有判断光线是否能打到三角形内(有明确公式解)。
Assignment 6
这里其实就是对作业5进行加速--使用BVH,简单说就是建立包围盒子,然后类似树状地对空间进行分割,判断子空间内光线是否与物体相交,算法也以递归方法实现。
Assignment 7
这次是基于渲染方程的光线追踪,非常麻烦而且细节很多,但是理论上可以达到完全真实的效果。
Assignment 8
这次很简单了,就是模拟一根绳子,简单说就是假设每个节点都是质点,然后模拟弹簧计算力->质点加速度->质点速度->每一帧质点位置。