文章目录
前言
有关光照,着色和图形管线。
一、可见性/遮挡(Visibility/Occlusion)
画家算法(Painter’s Algorithm)
灵感来自于画家的绘画。由远到近绘画,这样在画新的近的物体时会覆盖掉原来远的东西。
画家算法需要需要通过深度(depth)对物体进行分类才能实现,所以可能造成无法解决的深度顺序。比如上图,由于物体之间存在互相遮挡的关系,所以无法定义深度,也就无法使用画家算法。
深度缓存(Z-Buffer)
保存每个像素的当前最小的z值(?),也就是这个像素在几何上能显示的最靠前的物体的深度信息。深度缓存算法需要保存一张深度图,也就是每个像素的深度信息。这样我们也就拥有了两个不同的缓存,一个是存储颜色值的帧缓存,另一个是存储深度值的深度缓存。
由于之前提到,我们的摄像机始终向着-z方向看,所以理论上z越大的物体离得越近。现在,为了简化概率,我们认为z始终是正的。
上图为深度缓存的示例。深度越小的颜色越深,越大的越浅。