Shading

Blinn-Phong Reflectance Model

  • Lambertian(Diffuse) Term

  • Specular Term

  • Ambient Term

Shading Frequencies

  • Shade each triangle (flat shading)

  • Shade each vertex (Gouraud shading)

    每个顶点法线向量是其周边相邻三角形法线向量的平均

  • Shade each pixel (phone shading)

    每个像素法向量:Barycentric interpolation(重心坐标插值)

Graphics Pipeline

  • Vertex Processing: Model, View, Projection
  • Fragment Processing: FrameBuffer, Z-Buffer

Interpolation Across Triangles

Textures

Simple Texture Mapping

(x,y) in Screen = (u,v) in Texture

  • Texture太小

    多个(x,y)映射一个(u,v)

  • Texture太大

    一个(x,y)映射多个(u,v)

Bilinear Interpolation

Texture太小,多个(x,y)映射一个(u,v)

对贴图上的像素点(u,v)做双线性插值

Supersampling

Texture太大,对(x,y)超采样

Mipmap

Texture太大,对Texture的某片区域即一个(x,y)对应的多个(u,v)求均值。

通过mipmap提前存取均值

Trilinear Interpolation

前述Bilinear加上两层之间的Bilinear形成三重线性插值

但会出现模糊过度情况

原因是某些点对应的贴图不一定是正方形

Anisotropic Filtering

其他纹理贴图

环境光贴图

假设光源无限远,只记录光照的方向信息,这种贴图被称作环境光贴图

Spherical Map Cube Map

法线贴图

修改法线

位移贴图

修改位移