|
在前面的几节中,我们已经详细介绍了各种光照明模型及它们在真实感 |
图形学中的一些应用方法,它们都是用数学模型来表示真实世界中的物理模 |
型,可以很好的模拟出现实世界中的复杂场景,所生成的真实感图象可以给 |
人以高度逼真的感觉。但是,我们发现,用这些模型生成一幅真实感图象都 |
需要较长的时间,尤其对于比较复杂的场景,绘制的时间甚至可以达到数个 |
小时。尽管现在的计算机硬件水平有了很大的提高,而且对于这些真实感图 |
形学算法的研究也有了很大的发展,但是,真实感图形的绘制速度仍然不能 |
满足某些需要实时图形显示的任务要求。例如在某些需要动态模拟、实时交 |
互的科学计算可视化以及虚拟现实系统中,它们对于生成真实感图形学的实 |
时性要求很高,就必须采用实时真实感图形学技术。 |
|
|
实时真实感图形学技术是在当前图形算法和硬件条件的限制下提出的在 |
一定的时间内完成真实感图形图象绘制的技术。一般来说,它是通过损失一 |
定的图形质量来达到实时绘制真实感图象的目的,就目前的技术而言,主要 |
是通过降低显示三维场景模型的复杂度来实现,这种技术被称为层次细节 |
(LOD:Level of Detail)显示和简化技术,是当前大多数商业实时真实感 |
图形生成系统中所采用的技术。在最近的几年中,又出现了一种全新思想的 |
真实感图象生成技术-基于图象的绘制技术(Image Based Rendering), |
它利用已有的图象来生成不同视点下的场景真实感图象,生成图象的速度和 |
质量都是以前的技术所不能比拟的,具有很高的应用前景。 |
|
|
由于实时真实感图形学技术是当前计算机图形学邻域中的研究热点,它 |
还处在研究阶段,还没有形成非常系统的理论知识,我们在本节中将只对这 |
些实时真实感图形学技术作一点简单的介绍,给读者一个初步的认识,有兴 |
趣的读者可以参阅更深入的相关文献。 |
|
4.7.1 层次细节显示和简化 |
|
|
在实时生成真实感图形图象的过程中,在前面的章节中我们已经介绍 |
过,如果我们要得到某种特定的视觉效果,那么生成图象的算法的选择是有 |
限的,因而要实现实时性,我们只有从需要绘制的三维场景本身入手。在当 |
前的真实感图形学中,需要绘制的三维场景的复杂度都非常高,一个复杂的 |
场景可能会包含几十甚至几百万个多边形,要实现对这种复杂场景的实时真 |
实感图形绘制是很困难的。一种自然的想法就是通过减少场景的复杂度,来 |
提高图象绘制的速度。层次细节显示和简化技术就是在这种背景下提出来的。 |
|
|
|
当场景中许多面片在屏幕上的投影小于一个象素,我们可以合并这些可 |
见面而不损失画面的视觉效果。层次细节技术最初是为简化采样密集的多面 |
体网格物体,而设计的一种算法.这些复杂的多面体网格往往通过激光扫描测 |
距系统扫描真实三维物体而得到.为真实反映原物体的表面变化,扫描过程中 |
所采取的采样点非常稠密,这为三维场景的存储/传输/及绘制带来极大的困 |
难.为此人们开始研究复杂多面体网格的简化。 |
|
|
层次细节显示简化技术就是在不影响画面视觉效果的条件下,通过逐次 |
简化景物的表面细节来减少场景的几何复杂性,从而提高绘制算法的效率。 |
该技术通常对一个原始多面体模型建立几个不同逼近程度的几何模型。与原 |
模型相比,每个模型均保留一定层次的细节,当从近处观察物体时,我们采 |
用精细的模型,而当从远处观察物体时,则采用较粗糙的模型,这样对于一 |
个较复杂场景而言,我们可以减少场景的复杂度,同时对于生成的真实图象 |
的质量的损失还可以在用户给定的阈值以内,而生成图象的速度也可以大幅 |
度的提高。这是层次细节显示和简化技术的基本原理。但是,需要注意的是, |
当视点连续变化时,在两个不同层次的模型之间就存在一个明显的跳跃,有 |
必要在相邻层次的模型之间形成光滑的视觉过渡,即几何形状过渡,使生成 |
的真实感图象序列是视觉光滑的。层次细节显示和简化技术的研究主要集中 |
于如何建立原始网格模型的不同层次细节的模型以及如何建立相邻层次的多 |
边形网格模型之间的几何形状过渡。 |
|
|
对于原始网格模型的不同层次细节的模型的建立,我们假设场景的模型 |
都是三角形网格(在实际应用中,为了绘制方便,三维场景最后一般都被转 |
化为三角形网格),从网格的几何及拓扑特性出发,存在着三种不同基本化 |
简操作,它们分别是顶点删除操作[SCHR92],删除网格中的一个顶点,然后 |
对它的相邻三角形形成的空洞作三角剖分,以保持网格的拓扑一致性;边压 |
缩操作[HOPP93],把网格上的一条边压缩为一个顶点,与该边相邻的两个三 |
角形的退化(面积为零),而它的两个顶点融合为一个新的顶点;面片收缩 |
操作[GIEN97],把网格上的一个面片收缩为一个顶点,该三角形本身和与其 |
相邻的三个三角形都退化,而它的三个顶点收缩为一个新的顶点。这些操作 |
如图4.7.1所示。 |
|
|
|
利用这些基本操作,我们只要确定每次操作给网格场景带来的误差计算, |
用这个误差代价计算方法来计算原始网格上的每一个基本元素的误差作为权 |
值,插入到一个按权值增序排列的队列中。然后开始循环进行网格基本化简 |
操作。在每一次循环中,我们选取队首权值最小的操作,执行之,更新变化 |
的网格信息,并重新计算改变了的网格基本元素的误差,插入到队列中,再 |
开始下一个循环,直到队列的最小误差达到用户设定的阈值或者用户希望的 |
化简网格数目已经得到。 |
|
|
通过上面的方法,我们可以建立原始场景的不同层次细节的模型,所建 |
立的模型具有一定层次的细节,而且相对于原始网格,它们之间的误差是逐 |
步递增的,这样的模型可以很好的用于层次细节的显示中。建立相邻层次的 |
多边形网格模型之间的几何形状过渡,基本的方法就是通过插值对应网格基 |
本元素的位置来实现光滑过渡,问题的关键是如何得到两个相邻层次的多边 |
形网格模型的基本元素之间的对应关系。对于顶点删除操作和面片收缩操作, |
我们可以用被操作的对象与其相邻的基本元素之间建立对应关系,而对于边 |
压缩操作,只要简单的把压缩边上的两点与压缩后的新点建立对应关系。在 |
有了这些对应关系后,就可以通过插值的方法来实现光滑过渡。在实际的应 |
用中,线性插值就可以很好的达到预期的效果。 |
|
|
层次细节显示和简化技术是实时真实感图形学技术中应用比较多的一个 |
技术,通过这种技术,可以较好的简化场景的复杂度,同时,采用不同分辨 |
率的模型来显示复杂场景的不同物体,使在生成的真实感图象质量损失很小 |
的情况下,来实时的产生真实感图象,满足某些关键任务的实时性要求。图 |
4.7.2是牛模型的三个不同层次细节简化模型的示意。 |
|
|
4.7.2 基于图象的绘制技术 |
|
|
在我们前面介绍的实时真实感图形学技术-层次细节显示和简化中,它 |
是从物体场景的几何模型出发的,通过减少场景的几何复杂程度,也就是减 |
少真实感图形学算法需要渲染的场景面片数目,来提高绘制真实感图象的效 |
率,达到实时的要求。但是,随着计算机水平的发展,人们可以得到高度复 |
杂的三维场景,对于这种场景,我们即使对其层次简化到一定的程度,它的 |
复杂度仍然很高,而不能被现有水平的计算机实时处理,同时我们又不能把 |
场景简化程度很大,这样会导致图象质量的严重降低,而失去真实感图象的 |
最初目的。这样,我们就需要一种能够对高度复杂的场景进行实时真实感图 |
形绘制的技术,而且要求这种技术可以在普通的计算机上应用。最近几年, |
满足这种要求的技术才开始出现,那就是基于图象的绘制技术。 |
|
|
基于图象的绘制技术与前面的真实感图象算法完全不同,它是从一些预 |
先生成好的真实感图象出发,通过一定的插值、混合、变形等操作,生成不 |
同视点处的真实感图象。在这种技术中,我们不需要知道复杂场景的完全几 |
何模型,我们需要的仅是与这个场景有关的一些真实感图象,因而图形的绘 |
制是与场景复杂度相互独立的,从而彻底摆脱传统方法的场景复杂度的实时 |
瓶颈,在这种技术中,绘制真实感图象的时间仅于图象的分辨率有关。预先 |
生成好的图象可以是通过对真实场景摄影得到地真实照片,也可以是由传统 |
真实感图形学算法计算机生成的图片,由于这个步骤是在预处理阶段进行的, |
我们可以使用任何一种复杂的真实感图形算法,构造足够复杂的场景,而不 |
需要考虑时间因素,来得到这种预设图片。无论是通过那种方法,我们能够 |
得到的真实感图象的真实度都非常高,因而用基于图象地绘制技术生成的图 |
象的真实度也可以很高。采用基于图象的绘制技术最重要的一点是,这种方 |
法对计算机的要求不高,可以方便的在普通的计算机上实时的生成真实感图 |
象,对真实感图形学的应用有很大的促进作用。 |
|
|
在基于图象的绘制技术中,已经有不少优秀的图象绘制方法,在这里由 |
于篇幅的限制,我们仅介绍其中的最基本的一个方法-视图插值(View |
Interpolation)方法。视图插值方法是由Chen于1993年提出的[CHEN93]。因 |
为基于图象的绘制技术中给出的是几幅某个场景的真实感图象,而我们要生 |
成其他角度的真实感图象,就需要解决如何由这几个真实感图象来插值得到 |
目标图象的问题。视图插值方法就是用以解决这个问题而提出来的。 |
|
|
|
利用图象来构造虚拟环境的方法在早期的飞行模拟器中就已经被使用了, |
系统设计者在场景的不同位置制作所有方向的采样图象,然后对于不同位置 |
的视点,用离该视点最近的采样图象作为该位置看到的图象。这样显示的图 |
象是跳跃式的,具有视觉的非连续性。视图插值方法可以改进这个不足,它 |
在相邻的采样点图象之间建立光滑自然的过渡,可以真实的再现各采样点之 |
间场景透视变换的变化。实际上,视图插值技术利用了相邻两图象之间的连 |
贯性,利用两个画面的摄像机参数及图象个象素点的深度值通过视觉基本原 |
理来建立相邻采样点真实感图象之间象素的对应关系,如图4.7.3所示,是 |
同一个物体点P在A、B两幅相邻视图中的象素对应关系。在生成真实感图象 |
的是时候,只要插值对应点的象素颜色就可以得到中间的过渡图象。视图插 |
值技术是一种反映了实际场景透视变换变化的特殊的图象变形(Morphing) |
过程。在这种技术中,我们首先要得到采样真实感图象各象素点的深度值, |
这可以由深度摄像机的相关摄像机参数直接获取或者计算机视觉理论来恢复 |
图象深度信息。有了图象的深度信息,加上已知的摄像机参数,可以建立两 |
副采样图象的象素对应关系。然后我们用这种关系,构造对应象素的偏移向 |
量,再用偏移向量的插值近似模拟透视变换的变化,得到中间图象象素的颜 |
色,生成中间的真实感图象。在实际的应用中,若采用逐个象素插值来构造 |
中间图象,算法的效率并不是很高,尤其是对于高分辨率的图象,有可能无 |
法进行实时计算。实际上,源图象上的相邻象素一般都具有相近的偏移向量, |
我们可以利用这一个性质来对算法进行优化。Chen采用四叉树来对图象进行 |
剖分,使该树的每一个叶子节点对应于图像中偏移向量区别很小的区域,在 |
绘制时,算法用叶子节点代表的图象块进行插值计算,可以大大加速算法的 |
执行速度。 |
|
|
在基于图象的绘制技术中还有其他的一些方法,如层次图象存储技术, |
全景函数技术,光场采样技术等,这些技术中还存在着许多需要解决的问题, |
在本节中,我们就不再进一步的讨论了。总之,基于图象的绘制技术,相对 |
于传统的真实感图形学图象生成技术而言,是一种思想全新的技术,是计算 |
机图形学中一个新的研究热点,我们在这里简单的介绍它的基本思想,目的 |
是为了拓宽读者的视线,介绍当今国际图形学的发展方向,使我们的图形学 |
发展能够跟上国际的水平。 |
|
|