之前几节课学了怎么映射一个三角面到画面上,这节学多个三角面之间的遮挡关系处理,谁在前谁在后,也就是可见性怎么处理。

实现遮挡关系

画家算法

由远及近依次画(光栅化)。近的物体覆盖远的物体,就可以实现遮挡关系。

但是画家算法也存在一些问题,比如存在一些不可依赖深度排序解决的问题。所以不会直接用画家算法。

深度缓存 Z-Buffer

这是工业界采用的算法。这里的z不是z轴,而是深度 depth,是摄像机位置到所求点的距离。

最后,只渲染每个像素上depth最浅的那个颜色。当物体发生运动后,会同步更新深度,有更小值出现就重新赋色。

深度缓存的复杂度是O(n),而不是排序的O(nlogn),因为深度缓存并不排序只求最小值。