三角形间的遮挡关系。
从后往前绘制,逐个在 framebuffer 上覆写。
难点
① 排序要很久
② 存在无解状况
宗旨:记录每个屏幕像素最近的 z 位置。
在生成图像的同时,也另生成一个 z-buffer 记录各个像素最浅深度信息。
这里定义相机往 $+z$ 看了,深度。
意思就是每次遍历三角形所涉及像素即给某个像素上色的时候,都要记录下这个像素的 $z$ 信息,如果下次遍历到这里时的 $z$ 信息比它小,那就覆盖并更新;否则不操作。
初始化的时候需要全部设置为无限远。
$O(n)$ for $n$ triangles.
假设不会同像素得到同深度,那么就会和顺序没有关系。
如果做 MSAA,那么每个采样点都需要 z-buffer。
Z-buffer 处理不了透明物体,需要特殊处理。