Visibility / occlusion
画家算法
画家从最远处的物体开始画,近处的遮挡远处的物体。
因为先画远的后画近的,所以要对物体的深度(远近)进行排序,下图三个三角形相互遮盖,无法辨别出谁更近。
实际中不能使用画家算法。
Z-buffer
为每个像素存储最小深度值,需要额外的深度缓存空间。
Z-buffer 算法:
例子:
时间复杂度:O(n)(与顺序无关)
Shading
The process of applying a material to an object
Shading is Local
计算在特定的着色点反射到的光
Diffuse Reflection:漫反射
光线均匀地向各个方向散射,所有观看方向的表面颜色都相同
接收到的能量的多少:余弦定理
光衰减:
某一个shading point上有intensity强度的光,这个点能接收的光还需经过余弦定理计算:
漫反射是往四面八方反射的,无论从哪个方向观察某个点的亮度都是一样的,所以漫反射与观察方向无关。