📜  计算机图形画家的算法

📅  最后修改于: 2020-12-21 09:30:40             🧑  作者: Mango

画家算法

它属于列表优先级算法类别。它也称为深度排序算法。在该算法中,完成了对象可见性的排序。如果按特定顺序反转对象,则可以得到正确的图像。

对象以增加的顺序排列到z坐标。渲染按z坐标顺序进行。其他物体将使附近的物体模糊。后一个像素将覆盖其他物体的像素。如果两个的z值重叠,我们可以从Z值确定正确的顺序,如图(a)所示。

如果z个对象相互重叠(如图(b)所示),则可以通过拆分对象来保持此正确顺序。

深度排序算法或绘画算法是由Sanell的Newell开发的。之所以称为Painter算法,是因为帧缓冲区的绘制是以距离的降序进行的。距观察平面的距离。首先绘制距离较远的多边形。

这个概念来自画家或艺术家的色彩。当画家绘画时,首先,他将使用背景色来绘画整个画布。然后添加更多的距离对象,如山脉,树木。然后,将后方或前景对象添加到图片中。我们将使用类似的方法。我们将根据z值对曲面进行排序。 z值存储在刷新缓冲区中。

深入执行的步骤

  • 根据z坐标对所有多边形进行排序。
  • 查找任何歧义,查找z坐标是否重叠,必要时拆分多边形。
  • 扫描以z坐标的升序转换每个多边形。

画家算法

步骤1:开始算法

步骤2:按z值对所有多边形进行排序,首先保持z的最大值。

步骤3:扫描按此顺序转换多边形。
测试已应用

  • 如图(a)所示,A在Z的尺寸上是否在B的后面并且不重叠?
  • 如图中(b)所示,A是否在z的B后面,并且在x或y中没有重叠?
  • 如果A相对于视平面在Z的B后面和B的整个外面,如图(c)所示
  • 如果A在Z中的B后面,并且B相对于视平面完全在A内,如图(d)所示

使用单个重叠多边形的任何测试的成功都可以绘制F。