三角形间的遮挡关系。

一、画家算法

从后往前绘制,逐个在 framebuffer 上覆写。

难点

① 排序要很久

② 存在无解状况

Untitled

二、Z-Buffer(深度缓存)

宗旨:记录每个屏幕像素最近的 z 位置。

在生成图像的同时,也另生成一个 z-buffer 记录各个像素最浅深度信息。

这里定义相机往 $+z$ 看了,深度。

Untitled

意思就是每次遍历三角形所涉及像素即给某个像素上色的时候,都要记录下这个像素的 $z$ 信息,如果下次遍历到这里时的 $z$ 信息比它小,那就覆盖并更新;否则不操作。

初始化的时候需要全部设置为无限远。

Untitled

Untitled

深度缓存方法的复杂度

$O(n)$ for $n$ triangles.

假设不会同像素得到同深度,那么就会和顺序没有关系。

如果做 MSAA,那么每个采样点都需要 z-buffer。

缺点

Z-buffer 处理不了透明物体,需要特殊处理。

✳️ 光栅化 · 总结