📜  计算机图形隐藏表面去除

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

隐藏的表面去除

  • 计算机图形学中最具挑战性的问题之一是从实体对象的图像中删除隐藏的部分。
  • 在现实生活中,这些物体的不透明材料会阻挡来自隐藏部分的光线,并阻止我们看到它们。
  • 在计算机生成中,当将对象投影到屏幕坐标系上时不会发生这种自动消除。
  • 而是显示每个对象的所有部分,包括许多不可见的部分。
  • 要删除这些部分以创建更逼真的图像,我们必须对对象集应用隐藏线或隐藏表面算法。
  • 该算法在不同种类的场景模型上运行,生成各种形式的输出或迎合不同复杂度的图像。
  • 所有对象都使用某种形式的几何排序来区分对象的可见部分与隐藏的部分。
  • 就像使用字母排序来区分靠近字母开头的单词和靠近结尾的单词一样。
  • 几何排序可定位位于观察者附近并因此可见的对象。
  • 隐藏线和隐藏表面算法利用各种形式的相干性来减少生成图像所需的计算。
  • 不同类型的相干性与图像中不同形式的顺序或规律性有关。
  • 出现扫描线相干性是因为光栅图像中扫描线的显示通常与先前扫描线的显示非常相似。
  • 在旨在显示运动的一系列图像中,帧相干性认识到连续的帧非常相似。
  • 对象一致性是由不同对象之间或相同对象的各个部分之间的关系引起的。
  • 通常将隐藏表面算法设计为利用这些相干特性中的一个或多个来提高效率。
  • 隐藏表面算法与二维扫描转换非常相似。

隐藏表面检测算法的类型

  • 对象空间方法
  • 图像空间方法

对象空间方法:在此方法中,比较对象的各个部分。比较之后,确定可见,不可见或几乎不可见的表面。这些方法通常决定可见表面。在线框模型中,这些用于确定可见线。因此,这些算法基于行而不是基于表面。该方法通过确定其视线被其他对象遮挡的对象的各个部分进行处理,并以相同的颜色绘制这些部分。

图像空间方法:在此确定各种像素的位置。它用于定位可见表面而不是可见线。检测每个点的可见性。如果可见点,则像素为开,否则为关。因此,确定了由投影仪穿过像素刺入的靠近观看者的物体。绘制的像素是适当的颜色。

这些方法也称为“可见表面确定” 。这些方法在计算机上的实现需要大量的处理时间和计算机的处理能力。

图像空间方法需要更多的计算。每个对象都明确定义。还确定每个物体表面的可见性。

区分对象空间和图像空间方法

Object Space Image Space
1. Image space is object based. It concentrates on geometrical relation among objects in the scene. 1. It is a pixel-based method. It is concerned with the final image, what is visible within each raster pixel.
2. Here surface visibility is determined. 2. Here line visibility or point visibility is determined.
3. It is performed at the precision with which each object is defined, No resolution is considered. 3. It is performed using the resolution of the display device.
4. Calculations are not based on the resolution of the display so change of object can be easily adjusted. 4. Calculations are resolution base, so the change is difficult to adjust.
5. These were developed for vector graphics system. 5. These are developed for raster devices.
6. Object-based algorithms operate on continuous object data. 6. These operate on object data.
7. Vector display used for object method has large address space. 7. Raster systems used for image space methods have limited address space.
8. Object precision is used for application where speed is required. 8. There are suitable for application where accuracy is required.
9. It requires a lot of calculations if the image is to enlarge. 9. Image can be enlarged without losing accuracy.
10. If the number of objects in the scene increases, computation time also increases. 10. In this method complexity increase with the complexity of visible parts.

对象相似度与图像空间方法

在这两种方法中,都使用了对单个线的深度比较,将曲面与距视平面的距离相对。

选择或设计隐藏表面算法的注意事项:采取以下三个注意事项:

  • 排序
  • 连贯性

排序:所有曲面都分为两类,即可见和不可见。像素会相应着色。有几种排序算法可用,即

  • 气泡排序
  • 贝壳类
  • 快速分类
  • 树排序
  • 基数排序

不同的排序算法应用于不同的隐藏表面算法。使用x和y,z坐标对对象进行排序。通常,z坐标用于排序。排序算法的效率会影响隐藏表面去除算法。为了对复杂的场景或数百个多边形进行排序,使用了复杂的排序,即快速排序,树排序,基数排序。

对于简单的对象选择,插入,气泡排序。

连贯性

它用于利用场景表面的恒定值。它基于场景中存在多少规律性。当我们从一个对象的一个多边形移动到另一个具有相同对象颜色的多边形时,剪切将保持不变。

连贯性的类型

  • 边缘一致性
  • 对象连贯
  • 脸部连贯
  • 区域连贯
  • 深度连贯
  • 扫描线相干
  • 帧连贯
  • 隐含边缘一致性

1.边缘连贯性:边缘越过另一边缘或也穿透可见边缘时,其可见性会发生变化。

2.对象连贯性:每个对象被认为是彼此独立的。在对象中,使用对象而不是边缘或顶点进行相干比较。如果A对象离对象B更远,则无需比较边缘和面。

3.人脸连贯性:在这些人脸或多边形中,与图像尺寸相比通常较小。

4.区域一致性:用于将同一可见面所覆盖的像素组。

5.深度连贯性:各种多边形的位置分隔了深度的基础。计算一个点处的表面深度,通常可以通过一个简单的差分方程来确定其余表面上的点深度。

6.扫描线相干性:先用一条扫描线然后再用第二条扫描线扫描对象。第一行的截距。

7.帧连贯性:用于动画对象。当图像从一帧到另一帧几乎没有变化时使用。

8.隐含边缘相干性:如果一个面穿透另一个面,则可以从两个相交点确定相交线。

用于隐藏线表面检测的算法

  • 背面去除算法
  • Z缓冲区算法
  • 画家算法
  • 扫描线算法
  • 细分算法
  • 浮动地平线算法