本文章是关于GAMES101课程的笔记。
一、Blinn-Phong 反射模型
环境光照输入:
- 镜面高光
- 漫反射
- 环境照明


局部 shading:
- 观测角度
- 表面法向量
- 光照方向
- 表面材质、颜色等参数

二、漫反射(Diffuse Term)
观测不变性: 表面颜色从任何方向观测都是相同的

Lambert 余弦定律: 物体表面接收到的光照能量与光线方向和法线方向的夹角成正比。

光线衰减模型: 光线能量和距离的平方成反比

Lambertian Shading :

三、高光反射(Specular Term)
反射方向: 高光反射近似镜面反射

计算高光角度: 计算半程向量与法向量的夹角确定

减少高光反射观测位置: 增大指数 $p$

四、环境光照(Ambient Term)
近似性: Blinn-Phong 反射模型将环境光照近似为一个常量

五、着色频率(Shading Frequencies)
Flat shading: 着色三角面片

Gouraud shading: 插值三角面片的顶点

Phong shading: 着色每一个像素

定义顶点的法向量: 顶点相邻面片的法向量加权求和

定义像素的法向量: Barycentric interpolation

六、图形学管线(Graphics Pipeline)

七、纹理映射(Texture Mapping)
纹理: 每个三维物体表面的一个点在二维图像(纹理)中都有所对应。

对应关系: 每个三角点都会在纹理坐标上有所对应

八、重心坐标(Barycentric Coordinates)
三角形内任意点的坐标表示: 三个顶点向量加权值

重心坐标公式:

九、纹理问题(Texture Magnification)
纹理图太小问题: 纹理图太小,多个像素对应同一个纹理坐标。解决办法:插值采样 。


纹理图太大问题: 纹理图太大,一个像素包含诸多纹理图坐标,但表示能力有限。解决办法:Mipmap 。


Mipmap: 图像金字塔,缩小分辨率,缩小后的像素颜色用缩小范围内的所有像素的平均值代替。


Anisotropic Filtering: Mipmap 存在过模糊问题(Overblur),这是由于其本质是以正方形进行像素放缩,采用各向异性过滤可以缓解这个问题。




EWA filtering: 在 Anisotropic Filtering 上做进一步改进,可以表示任意方向的差异性。
