# 画家算法

> 画家算法也叫作优先填充，它是三维计算机图形学中处理可见性问题的一种解决方法。当将三维场景投影到二维平面的时候，需要确定哪些多边形是可见的，哪些是不可见的。“画家算法”表示头脑简单的画家首先绘制距离较远的场景，然后用绘制距离较近的场景覆盖较远的部分。画家算法首先将场景中的多边形根据深度进行排序，然后按照顺序进行描绘。这种方法通常会将不可见的部分覆盖，这样就可以解决可见性问题。

- ID: m01646
- 分类: structure
- 领域: 逻辑学

## 定义

在绘制3D场景时，像画家一样，先画远处的物体（背景），再画近处的物体（前景）。近处的物体会覆盖远处的，从而自然解决遮挡问题。脚手架作用：简单的层级处理。处理复杂事务时，如果不确定优先级，可以尝试“由远及近”或“由底向上”的覆盖式处理。虽然效率不是最高（Z-buffer更高效），但逻辑最简单且不易出错。

## 机制

画家算法是三维图形中按画家作画顺序，从后向前逐层绘制物体，后画的覆盖先画的，从而以绘制顺序解决遮挡。

## 练习

按深度对物体排序。从最远开始依次绘制。用覆盖实现可见性。

## 脚手架用法

简单的层级处理。处理复杂事务时，如果不确定优先级，可以尝试“由远及近”或“由底向上”的覆盖式处理。虽然效率不是最高（Z-buffer更高效），但逻辑最简单且不易出错。

[阅读网页](https://thinkingmodels.site/entries/detail/m01646)
