画家算法

✍ dations ◷ 2025-11-13 20:33:59 #三维计算机图形学,算法

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

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

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

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

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

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

相关

  • 亨利定律亨利定律,是由威廉·亨利所发现的一个气体的定律。这个式子说明在常温下且密闭的容器中,溶于某溶剂的某气体之体积摩尔浓度,会正好与此溶液达成平衡的气体分压成正比。亨利定律
  • 角质软化剂角质软化剂是一种用来降低皮肤角质层的密度,以便医生进行后续的治疗的物质,主要用来消除因为疣或其他病变而引起皮肤上过度生产的表皮细胞。角质软化剂包括诸如水杨酸、煤焦油
  • 健那绿B健那绿B(英语:Janus Green B),又名詹纳斯绿B,简称健那绿或詹纳斯绿,是一种对线粒体专一的活体染料,具有脂溶性,能跨过细胞膜,有染色能力的基团带正电,结合在负电性性的线粒体内膜上,内
  • 本草纲目《本草纲目》是一部集中国16世纪以前本草学大成的著作,明代万历六年(1578年)定稿,万历二十三年(1596年)在南京正式刊行,作者为中国历史上最著名的医学家、药学家和博物学家之一李时
  • 1号染色体1号染色体是人类染色体中最大的一条。如同其他的体染色体,一般人类身体内的细胞中,会有两条1号染色体。在1号染色体,缠绕了大约245,522,847个核苷酸碱基对(DNA的基本讯息单位),大
  • 珠光脂酸十七酸(Heptadecanoic acid)又称珠光脂酸,分子式CH3(CH2)15COOH。不饱和脂肪酸
  • 维普森人维普森人或维普森族(维普森语:Vepsän,又称外普西亚人、外坡思人)是指讲维普森语的芬兰人。此语言属于的乌拉尔语系的芬兰分支。维普森人在不同的方言被称为vepslaine、bepslaan
  • 天木直人天木直人(1947年7月19日-)是一名知名日本外交官、作家和政治评论家,互联网政党‘新党宪法9条’发起人、日本驻黎巴嫩大使。出身于山口县下关市,先后就读洛星高等学校和京都大学,二
  • 高加索伊比利亚王国伊比利亚(格鲁吉亚语:იბერია,又称ივერია)是古希腊及罗马人对卡特里(Kartli,公元前4世纪-公元5世纪)的格魯吉亞王国的称谓,在现今格魯吉亞的东部及南部。 通常称之为“高
  • 米海尔·拉哈诺德拉孔米海尔·拉哈诺德拉孔(希腊语:Μιχαήλ Λαχανοδράκων,?-792年7月20日)是拜占庭帝国君士坦丁五世时期一位杰出的将领以及圣像破坏运动的狂热支持者。他因对圣像破