📅  最后修改于: 2020-12-21 09:29:49             🧑  作者: Mango
它也称为深度缓冲算法。深度缓冲算法是最简单的图像空间算法。对于显示屏上的每个像素,我们都会记录最接近观察者的像素内对象的深度。除了深度,我们还记录了应该显示以显示对象的强度。深度缓冲区是帧缓冲区的扩展。深度缓冲算法需要2个数组,强度和深度分别由像素坐标(x,y)索引。
对于屏幕上的所有像素,将深度[x,y]设置为1.0,并将强度[x,y]设置为背景值。
对于场景中的每个多边形,找到投影到屏幕上时位于多边形边界内的所有像素(x,y)。对于以下每个像素:
(a)计算在(x,y)处的多边形的深度z
(b)如果z <深度[x,y],则该多边形比已经为该像素记录的其他多边形更靠近观察者。在这种情况下,将深度[x,y]设置为z,将强度[x,y]设置为对应于多边形阴影的值。相反,如果z>深度[x,y],则已经记录在(x,y)处的多边形比此新多边形更靠近观察者,并且不采取任何操作。
3.毕竟,多边形已经过处理;强度阵列将包含解。
4.深度缓冲算法说明了所有隐藏表面算法共有的几个功能。
5.首先,在这种情况下,它需要表示场景多边形中所有不透明的表面。
6.这些多边形可以是场景模型中记录的多面体的面,也可以仅表示场景中不透明的薄“薄片”。
7.该算法的第二个重要特征是它使用屏幕坐标系。在步骤1之前,使用矩阵乘法将场景中的所有多边形转换为屏幕坐标系。