画家算法

✍ dations ◷ 2025-04-26 11:45:53 #三维计算机图形学,算法

画家算法也叫作优先填充,它是三维计算机图形学中处理可见性问题的一种解决方法。当将三维场景投影到二维平面的时候,需要确定哪些多边形是可见的,哪些是不可见的。

“画家算法”表示头脑简单的画家首先绘制距离较远的场景,然后用绘制距离较近的场景覆盖较远的部分。画家算法首先将场景中的多边形根据深度进行排序,然后按照顺序进行描绘。这种方法通常会将不可见的部分覆盖,这样就可以解决可见性问题。

在有些场合下,画家算法可能无法解决可见性问题。在这个例子中,多边形 A、B、C 互相重叠,我们无法确定哪一个多边形在上面,哪一个在下面,我们也无法确定两个多边形什么时候在三维空间中交叉。在这种情况下必须用一些方法对这些多边形进行切分、排序。1972年提出的Newell算法就是切分类似多边形的一种方法,在计算几何领域人们已经提出了许许多多的解决方法。

一些基本的画家算法实现方法也可能效率很低,因为这将使得系统将可见多边形集合中的每个点都进行渲染,而没有考虑这些多变性在最终场景中可能被其它部分遮挡。这也就是说,对于细致的场景来说,画家算法可能会过度地消耗计算机资源。

人们有时候也使用逆向画家算法进行处理,这种算法首先绘制距离观察者较近的物体,已经进行绘制的部分不再进行其它的绘制过程。在计算机图形系统中,这种方法由于无需根据光照、纹理等参数计算被较近物体遮挡的远处物体的颜色,所以效率非常高。但是,这种方法也有许多与普通画家算法同样的问题。

画家算法的这些缺陷导致了深度缓冲技术的发展,深度缓冲技术可以看作是画家算法的一个发展,它根据逐个像素的信息解决深度冲突的问题,并且抛弃了对于深度渲染顺序的依赖。即使在这样的系统中,有时也使用画家算法的变体。由于深度缓冲实现通常是基于硬件中的固定精度深度缓冲寄存器,因此舍入误差就会带来一些显示问题,即在多边形连接的地方会出现重叠或者间隙。为了避免这种问题,一些图形处理引擎使用了“过度渲染”的方法,即根据画家算法的顺序绘制两个多边形中受影响的边界。这也就是说有些像素如同在画家算法中那样实际上绘制了两次,但是由于图像中只有很少的一部分才做这样的处理,因此对于性能的影响很小。

相关

  • 高洋高洋可以指下列人物:
  • 色彩民俗地理色彩民俗地理(法文:La Geographe de La Couleur)是法国色彩学家、色彩设计大师让·菲力普·郎科罗(Jean-Philippe Lenclos)在1960年代创立的实践应用型色彩理论学说。色彩民俗地
  • 顶体 (精子)顶体(英语:acrosome,来自希腊语:acron (外面)和soma (体))是动物精子核前部由高尔基体所衍生来的顶状膜包结构。在真兽下纲的哺乳动物中,顶体含有多种酶(包括玻璃酸酶(英语:Hyaluroni
  • 罗老号运载火箭罗老号(朝鲜语:나로호/羅老號,Naro-1/2/3)又名KSLV-I(Korea Space Launch Vehicle-I),为韩国第一种运载火箭。因在韩国南部全罗南道高兴郡外罗老岛罗老宇航中心发射而得名。罗老号为
  • 罗马林达大学罗马琳达大学(英语:Loma Linda University)是基督复临安息日会创办的一所大学,位于美国加州罗马琳达。成立于1905年。罗马林达本来是约翰·伯登和艾伦·G·怀特建立于1905年的一
  • 伊斯兰敢死队伊斯兰敢死队(波斯语:فدائیان اسلام‎,或拼作Fadayan-e Islam‎,意为伊斯兰信徒、为伊斯兰自我牺牲的人们)是一个鼓吹伊朗民族主义与伊斯兰信仰的秘密社团,因为涉及多
  • 希腊-巴克特里亚王国希腊-巴克特里亚王国(希腊语:Ελληνικό βασίλειο της Βακτριανής,英语:Greco-Bactrian Kingdom),是一个古代位于中亚巴克特里亚的希腊化国家。于前三
  • 石头城 (消歧义)石头城可以指:
  • 马赫下俯马赫下俯:亚音速飞机飞行马赫数超过临界马赫数后,飞机升力中心(焦点)先略向后移,再略向前移,最后再向后移。而升力中心后移会使飞机产生低头力矩,使飞机向下俯冲,也就是马赫下俯。民
  • 加拿大一枝黄花加拿大一枝黄花(学名:),又名黄莺、米兰、幸福花,为菊科一枝黄花属多年生草本植物。原产北美,现在中国及欧洲的许多地方成为入侵植物。