画家算法

✍ dations ◷ 2025-07-01 04:49:16 #三维计算机图形学,算法

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

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

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

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

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

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

相关

  • 殡葬学殡葬学,是建立于生死学基础的学科。殡葬是人类社会相当重要的文化现象与生命礼仪,有营利及非营利事业之特性。殡葬学是学术界对殡葬事业经营管理的研究。内容包括:公墓、火化场
  • 并系群并系群(英语:Paraphyletic group或 Paraphyly )是支序分类中的一种分类单元,此分类群中的成员皆拥有“最近共同祖先”,但该群中并不包含此最近共同祖先之所有后代。一个类群是否
  • 啮齿目松鼠形亚目 Sciuromorpha 河狸亚目 Castorimorpha 鼠形亚目 Myomorpha 鳞尾松鼠亚目 Anomaluromorpha 豪猪亚目 Hystricomorpha啮齿目是哺乳动物中的一目,其特征为上颌和下颌
  • 安那托利亚语族安那托利亚语族是印欧语系下的一族语言(在有些分类中,此族不属于印欧语系,但极为接近)。此语族语言曾在小亚细亚使用,目前已消亡,包括赫梯语、卢维语(“赫梯象形文字”使用的语言)和
  • 美利坚合众国制宪会议美利坚合众国制宪会议:31(英语:Constitutional Convention,又称费城会议:31、联邦会议:31或费城大会)于1787年5月25日至9月17日在费城举行。会议原本的目的是修改《邦联条例》,从
  • 恩斯特·鲍里斯·钱恩恩斯特·鲍里斯·钱恩爵士(Sir Ernst Boris Chain,1906年6月19日-1979年8月12日)是一位出生于德国的英国生物化学家,他因为有关盘尼西林的研究,而与亚历山大·弗莱明及霍华德·弗
  • 硫酸镥硫酸镥是一种无机化合物,化学式为Lu2(SO4)3。用硫酸溶解氧化镥,可以得到硫酸镥。它和氢氧化钠反应,生成氢氧化镥。
  • 日本棒球棒球在日本占有非常重要的位置,于20世纪初开始盛行,1950年开始确立了现代的职棒制度,现时不少日本球员效力美国职棒大联盟的球队。此外,每年两次在兵库县西宫市举行的高中甲子园
  • R·A·拉夫尔提拉斐尔·阿洛伊修斯·拉夫尔提(英文:Raphael Aloysius Lafferty,1914年11月7日-2002年3月18日)是美国出生的科幻小说家,作品以独特的用字,隐喻和叙事方式著称。还创造过自传《In a
  • 萧美琪萧美琪(英文名:Mei-Chi Shaw,1955年-),原籍台湾的美国数学学者,现任圣母大学数学系教授。萧美琪中学就读于北一女中,1977年自台湾大学数学系毕业。在普林斯顿大学攻读硕士及博士,各只