




已阅读5页,还剩57页未读, 继续免费阅读
(机械制造及其自动化专业论文)虚拟场景实时绘制技术研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘耍 摘要 本文通过对自然场景的各种绘制算法进行研究,针对场景中不同的物体提出 一些新的算法,在提高场景绘制和加速技术、提高图像的真实感效果的同时能实 现场景实时漫游。 综合前人及本文提出的新算法虚拟了一个下雨的场景,场景包括地形、天空 云彩及雨水。在具体的场景绘制出提出了以下算法: 1 、基于c a t m u l l - r o m 样条曲线的随机高程数据插值法生成地形。 2 、基于o p e n g l 的区域采样法雨滴水波实时三维仿真。 3 、基于0 p e n g l 圆顶屋法生成天空云彩。 在图形的绘制方面主要调用o p e n g l 图形库函数和使用纹理映射技术,以达到 简化编程、减少计算步骤、消除图形锯齿、加速绘图速度、添加光照、实现雾化 等效果,最后达到了三维雨景实时仿真的目的。 关键词:虚拟场景地形雨滴水波云彩纹理映射 摘旦 a b s t r a c t w i t ht h ed i c c u s s i 。no fd i v e r s m e df o m e tm e t h o d sa n dt e c h n o l o g i e so fg 吼e r a t e d v i n u a le n v i r o n m e n t ,s e v e r a ln e wa l g o r i t h m sa r ep r e s e n t e di nt h i sd i s s e n a t i o nt o s i m u l a t ed m e r e n to b j e c t si nt h ee n v i m t l n l e n t t h e s e1 1 e wa l g o 打t h r n sc a nd r a wg e o m e t r y w i t hf 毫wp 0 1 y g o n sa n da c c e l e r a t ei t sd r a w i n gs p e e dw i t h1 i t t l ec a l c u l a t i o n a tt 1 1 es 锄e t i m eg o o di m a g eq u a l i t yi so b t a i n e d aw a 珏( t u u g hi si m p l e m e n t e di nm ee n v i r o m e n t i nt h i sd i s s e r t a t i o n b yu s i n gf o 舯e ra l g o “t h m sa 1 1 d n e wm e t h o d si nt 1 1 i s d i s s e r t 撕o n ,ar a i n i n g e n r o 姗e n ti ss i n 】u l a t e d t h er a i m n ge n v i r o 啪e n ti n c l u d e st e r r a i n ,s k y ,c l o u d ,a 1 1 d r a i n d r o p t h ef o l l o w i n ga l g o r i t l l m sa r ep r c s e n t e di nt h i sd i s s e n a t i o n 1 -t e m i ni sg e n e r a t e dw i t hr a n d o md 1 垂t a le l e v a t i o nm o d e la n di n t e r p o l a t i o nb a s e d o nc a t m u l l j 己o ms p l i n e 2 s i m u la t i o no fr a i n d r o p sa n dr i p p l e si n3 dw i t hm e t h o do fr e g i o ns e 舯e m a t i o n b a s e do no p e n g l 3 s k ya n dc l o u da r es i m u l a t e d 埘mam e t l l o dc a l l e dd o m e o 晒e c t sa r ed r a w e db yu s 洒g1 【i n d so fo p e n g lf u l l c t i o n sa n dt e x t l l r em a p p i n gt o r c a c hs i m p l ep r o 盯蛐,1 i t t l ec a l c u l a t i o n ,c u l l i l l ga l j a s i n g ,s p e e d i n g 出a w i n g ,a d d i n g l i g h t i n ga n df o g f i n a l l y ,r e a l t i m er a i n i n ge n r v i r o n m e n ts i m u l a t i o ni so b t a i n e dw i t h s a “s 行e dr e s u l t s k e y w o r d :v i r t u a le n v i r o n m e n t t e r r a i n r a i d r o p c l o u dt e x t u r em a p p 主n g 虚拟场景实时绘制技术研究 独创性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究 成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果;也不包含为获得西安电子科技大学或 其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做 的任何贡献均已在论文中做了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名 盏遨测 b 强;弦“) ;移 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即;研究 生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。本人保证毕 业离校后,发表论文或使用论文工作成果时署名单位仍然为西安电子科技大学。 学校有权保留送交论文的复印件,允许查阅和借阅论文:学校可以公布沦文的全 部或部分内容,可以允许采用影印、缩印或其它复制手段保存论文。( 保密的论文 在解密后遵守此规定) 本学位论文属于保密,在年后适用本授权书。 本人签名:髭逡淄 日期:迦丛! 丝 导师签名: 日期:名”;,f 笫一章绪论 第一章绪论 1 1 课题的提出 传统的绘图方法如扫描线算法、多边形明暗过渡法、曲面剖分算法等可生成 高度逼真的真实感图形,但不难发现传统真实感图形绘制算法追求的是所生成 图形的真实感,对每帧图形的绘制时间并没有严格的限制。虚拟场景要求的是实 时图形生成。当场景很简单删,例如仅有几百个多边形,要实现实时显示并不困 难,但是,对于复杂的场景的模型。往往有几百万甚至几百兆个多边形,实时显 示就比较困难,举例来说,u c h e r k e l y 大学的计算机科学大楼的三维模型包含1 4 兆多边形数据;波音公司最近推出的完全由计算机设计的波音7 7 7 模型包含5 0 0 兆 多边形数据。这些模型的复杂度远远超过了当今最先进图形工作站的实时处理能 力,p c 机更是无能为力。由于目前图形软、硬件条件的限制,实时图形绘制算法 往往通过降低虚拟环境的几何复杂度和损失图形质量来快速绘制画面,这里图形 质量的损失主要指图形真实感的降低和走样程度的增加。因此,场景的复杂度、 图像真实感度和实时交互性之问的矛盾是虚拟场景绘制中存在的主要问题,也是 制约虚拟现实应用发展的瓶颈技术。 针对目前虚拟场景绘制中复杂度、真实感度和实时性之间的矛盾,确定了本 课题的研究方向为虚拟场景实时绘制技术研究,其目的是在减少场景的复杂度、 加速图形绘制速度的同时也能提高场景的真实感效果,并且实现雨景实时漫游。 1 2 目前提高虚拟场景实时绘制的主要技术 要提高虚拟场景图形绘制速度,实践证明非常有效的方法是降低场景的复杂 度,即降低图形系统需要处理的多边形数目。目前,比较常用的方法有下面几种 卜引。 l 、预测计算:该方法根据各种运动的速率和加速度,如人体头部转动速度, 用预测、外推法在下帧画面绘制之前估算出头部跟踪系统及其它输入设备的输 入,从而减少输入设备所带来的延迟。 2 、脱机计算:由于虚拟现实系统是一个多任务的模拟系统,所以有必要尽可 能地将一些可预先计算好的结果存储在相应的结构中,其中包括全局光照模型、 动态模型的计算等。 3 、场景分块:一个复杂的场景可被划分成多个子场景,各子场景之间可见或 j 麓拟场景实时绘制技术1 i j | “ 不可见。例如把一个建筑物按房间划分成多个子部分。此时,观察者在某个房间 仅能看到房内的场景及与门口、窗户等相连的其它房间,这样系统就能有效地减 少在任一时刻需要显示的多边形数目,从而有效地降低了场景复杂度。但是,这 种方法对封闭空间有效,对丌放空间则很难使用这种方法。 4 、可见性计算:与场景分块方法不同,可见性计算与用户的视点关系密切, 而前者仅与用户所处场景位置有关。使用可见性计算,系统仅显示用户当前能“看 见”的场景,当用户仅能看到场景的很少一部分时,由于系统仅显示相应场景, 从而大大减少了需要显示的多边形数目。然而,当用户能“看见”的场景仍很复 杂时,这种方法也不起作用。 5 、l o d 技术:在不影响画面视觉效果的条件下,通过逐次简化景物的表面细 节来减少场景的几何复杂性,从而提高绘制算法的效率。该技术通常对每一原始 多面体模型建立几个不同逼近精度的几何模型。与原模型相比,每个模型均保留 了一定层次的细节。在绘制时,根据不同的标准选择适当的层次模型来表示物体。 6 、基于图像的绘制技术:基于图像的绘制技术,用包含静态场景网格的二维 图像来代替较大的静态场景网格,从而减少场景绘制的多边形数目。其优点是绘 制速率与场景的复杂度无关,只与绘制图像的分辨率有关,而且可绘制出与照片 一样逼真的图像质量。基于图像的绘制技术在实时绘制系统中主要通过两种方法 来提高图形绘制的帧速率:是通过与屏幕方向一致的多边形( 布告版技术) 来 代替场景网格,如用二维的树图像来代替虚拟场景中的树,让图像的法向量始终 指向视点,当用户在虚拟场景中漫游时,始终看到的是逼真的树的侧面,具有很 强的立体感和真实感。另一种方法是用场景中的几何模型的图像来代替三维几何 模型。 以上几种方法,根据不同的场景分别被应用,通常情况下是它们的综合应用。 1 3 场景漫游 场景漫游要求系统每秒至少产生1 0 帧以上的图像,由于人对图像产生速度的 变化比较敏感,还要求图像帧生成的速度尽可能一致。场景漫游算法的主要目的 就是在规定的时间内绘制出对应于当前视点的图像帧,使观察者较好的浏览场景。 目前,场景漫游算法根据处理基元的类型不同可以分为三类:基于多边形的实时漫 游算法;基于图像的实时漫游算法和混合类型的算法。【7 】 基于多边形的虚拟漫游算法是目前的主流,它也被称作基于几何渲染的漫游 算法,基于这种算法己经有了一些产品。这种算法的基础足三维图形学。算法的 处理基元是多边形,如果输入不是多边形,则系统必须用个变换过程进行转换。 一个完整的基于多边形的虚拟漫游场景通常包含l 万个多边形,此外,为了表征 第幸绪论 丰富的物体细节,还通常要使用大量的纹理图像。系统对输入的多边形集合进行 复杂的空蚓变换和裁减等操作,最后渲染为适合于计算机屏幕显示的二维图像。 基于图像的实时漫游算法是一种高速高精度的绘制方式,但尚不成熟。这种 算法无需使用几何模型的多边形描述,只有针对该模型的图像。系统在确知视点 的位置和方向之后,从已有的图像中直接计算出相对于当前视点的图像,保证在 一定的时删限制下产生真实感的绘制效果。这种方法由于固有的特点,存在图像 匹配困难,存储数据量大,立体感不强的缺点。对于碰撞检测等空间逻辑操作, 这类算法更是无能为力。 混合类型既使用图像也使用多边形来参与绘制,试图融合前两者之长。其主 要又分为两种,一种是用模型绘制产生图像,而后再利用图像来加速绘制的过程。 由于漫游路径大多是连续的,这种算法在路径的关键点上用模型绘制产生图像, 然后在视点变换时,在一定的误差条件下简单地将绘制的图像作为纹理映射到变 化后的四边彤上,从而加速整个绘制过程。另一种是直接从图像中获取几何信息 的算法。这种算法要求输入图像信息,并在一个实际简单几何模型的比较下,从 图像中提取对应几何模型的纹理信息。当视点变化时,由几何模型来获取图像的 变化,再使用原始图像进行纹理映射,以获得最终的绘制结果。混合型算法虽然 融合了两种漫游算法,但基于图像算法的固有缺陷仍然存在,其改进之处是提高 了图像定位的精确度。 综上所述,基于多边形的算法是虚拟漫游的根本解决途径,也是该领域研究 的主流方向。本文借用。p e n g l 的函数,在基于多边形的算法上更简洁的实现场景 漫游。 1 4 本论文的章节内容安排 第一章绪论 说明提出本课题的原因及意义,简述现有虚拟场景图形绘制加速技 术,及场景漫游技术。 第二章虚拟场景实时绘制和加速技术综述现有虚拟场景常用数据结构、图形绘 制的方法和加速技术。 第三章虚拟场景显示工具主要介绍本文虚拟的雨景所使用的应用程序接口 0 p e n g l 的特点及其在本文场景显示中的编程步骤,还有其工作平台v i s u a lc + + 软件。 第四章虚拟场景漫游技术详细介绍现有场景漫游技术。 第五章虚拟场景的绘制本文虚拟场景由地形、天空云彩、雨滴水波组成。详细 介绍本文生成地形、天空云彩、m 滴水波的方法。 第六章结束语对本论文工作进行总结,并提出了些尚待解决的问题。 虚拟场景实时绘制技术”) 第二章虚拟场景实时绘制和加速技术 2 1 虚拟场景实时绘制 用计算机生成连续色调的场景真实感图形必须完成四个基本的任务口】。 l 、场景造型。场景造型是生成场景真实感图形的第一步,所谓造型即采用数 学方法建立三维场景的几何描述,并将它们输入到计算机。 2 、取景变换和透视投影。将三维几何描述转换为二维透视视图。 3 、隐藏面消除。确定场景中的所有可见面,将视域之外或被其它物体遮挡的 不可见面消除。 4 、计算机场景中可见面的颜色。根据光照明模型计算可见面投射到观察者眼 中的光亮度大小和色彩分量,并将它转换成适合图形设备的颜色值,从而确定投 影画面上每一个像素的颜色,最终生成图形。 在虚拟场景中,以上四个任务的完成不仅要有高性能的计算机,还要有好的 图形绘制算法。 就图形学发展而言,起关键作用的无疑是图形硬件加速器的发展。高性能的 图形工作站和高度并行的图形处理硬件与软件体系结构是实现图形实时生成的一 个重要途径。目前用来提高虚拟场景的实时绘制处理能力有两种方法:一种是硬件 方法,通过提高计算机硬件的图形芯片处理速度来达到实时绘制目的。基于硬件 的技术主要集中于用更少的时间绘制更多的多边形或者增加一些高性能的混合处 理方法;另一种是通过软件方法,从图形的绘制算法入手,减少图形画面的复杂度 和图形的实时生成能力。基于软件的处理方法主要分为两大类:是设计一个高效 的图形绘制管道;二是通过减少场景绘制的多边形数来实现。多边形数目减少可 以通过多边形减少算法来实现,也可以通过可见性剔除来实现。然而应用模型的 复杂程度往往超过当前图形工作站的实时处理能力,考虑到虚拟现实对场景复杂 度几乎无限制的要求,在虚拟高质量图形的实时生成要求下,如何从软件着手, 减少图形画面的复杂度,提高图形真实感,已成为虚拟场景中图形生成的主要目 标。 在研究内容方面,目前的实时图形绘制算法主要围绕着以下三个方面展开: 1 、实时消隐技术; 2 、场景简化技术; 3 、基于图像的图形绘制技术。 旃章虚拟场景实时绘制和加速技术 2 1 1 实时图形绘制管道 图形绘制管道是实时图形绘制的核心。主要任务是将给定摄像机位置下的三 维场景绘制成二维图像显示出来,主要包括以下几个处理阶段,如图2 1 吲所示。 图2 ,l 剀形绘制管道 几何数据库遍历阶段主要是遍历场景管理的树结构或其他场景数据的管理方 法,生成当前视点、视方下的场景表示数据。 多边形处理阶段主要包括:三角形顶点变换、光照计算和二维三角形设置。像 素处理阶段主要包括:深度缓冲区测试、反混淆计算、纹理映射。所有这些计算都 需要访问计算机的主存,尤其是纹理映射时,需要查找纹理像素值,这样对场景 的实时绘制性能会产生影响。像素的填充速率也依赖于场景的复杂度。 2 1 2 虚拟场景数据表示 为了让图形绘制管道有效地绘制较大的复杂的虚拟场景,对场景数据采用最 优的数据表示方法变得非常重要。这是由于虚拟场景的绘制,不仅要将几何数据 输送到图形绘制管道,而且还要进行碰撞检测和复杂的可见性计算等。因此,正 确的场景数据表示方法对整个场景绘制的实时性提高至关重要。 目前,虚拟场景中的数据都是采用层次结构的方法来表示。虚拟场景的树状 结构表示减少了可见性计算、碰撞检测,也易于对场景中的数据进行多分辨率层 次细节表示,依据视点的变化选用具有不同细节的场景模型进行渲染,从而提高 了图形的实时绘制能力。目前,通用的场景数据表示方法有:四叉树、八叉树和 b s p 树、场景图等表示。 1 、四叉树法 四叉树是一种二维表示格式,是对二维平面在两个方向上进行连续分割以形 虚拟场景实时绘制技术酬究 成象限的方式得到,如图2 2 ”0 1 所示。当用四叉树来表示一平面区域时,根据象限 与所分割的平面区域相交的程度,每一个象限是充满平面区域、部分充满或者为 空( 也分别成为黑色、灰色和白色) ,部分充满的象限再递归地分割成子象限, 直到所有的象限类型相同( 满或者为空) ,或者分割到预先设定的终止深度。当 四个同一层的相邻象限都是充满或者都是空时,删除这些象限并且让他们上一层 从部分充满的父象限改成充满或者为空( 用自下向上的方法,可以避免删除和合 并操作) 。在图2 2 中,在终止深度上所有部分充满的节点归入充满的节点类中。 递归分割的过程可以用一棵树来表示,其中部分充满的象限作为中间节点,而充 满和空的象限都为叶节点,如图2 3 所示。四叉树的各个象限常用数字o 到3 来表示。 a ) 用空间位置枚举法表示b ) 用四叉树表示 幽2 2 形体表示 图23图2 2 中所示形体的四叉树数据结构 2 、八叉树表不法 八叉树表示方式与四叉树类似,只是递归分割时沿着三个方向分割象限,即 整个三维空间被细分成小的立方体体素如图2 4 所示。通过用递归表的方式组织成 层次结构,以便对每个区域所包含的对象进行细分,直到满足所需的分辨率为止。 八叉树常用数字o 到7 来表示。场景的八叉树层次结构在预处理阶段生成,实时绘 制时,依据视点变化对树结构进行自适应的修改。 第二二章虚拟场景实时绘制和加速技术 图2 4 八义树枚举,其中刻度为0 的象限不可见 一个形体用四叉树或八叉树表示时,它的节点数分别与形体的周界或表面成 正比。这一关系是成立的,因为只是从体的边界表示的需要出发,才增加节点分 割。被分割的中间节点只是那些形体的部分边界穿过的节点。因此,在这些数据 结构上的任何操作,在执行时间上也与形体的周长、面积的大小成正比,数据结 构在它包含的节点数目上是线性的。 3 、b s p 树 b s p 树英文全称为b i n a r ys p a c e p a n i o n i n gt r e e s ,二维空间分割树,简称为二 叉树。基本思想是空间中的任何平面都将整个空间分割成两个半空间,所有位于 该平面某一侧的点定义了一个半空间,位于另一侧的点定义了另一个半空间,根 据这种对空间分割的方法,就可以建立起整个虚拟场景的描述以及场景中各种对 象的描述。 让我们选择一个平面( m ) 将空间分成两个半空间( h l 和h 2 ) ,所有位于该平面 一侧的点定义一个半空间( h 1 ) ,位于另一侧的点定义另一半空间( h 2 ) ;选择任 何半空间中的一个平面,它会进一步将此半空间分割成两个更小的子空间, 如果我们将这一过程进行下去,子空问将会越来越小,直到不可分割为止。对每 一子树,分割多边形将空间分成两个子空问,这两个子空间分别作为该子树的点: 对于与分割多边形相交的平面将被切开为两个多边形,并分别归入相应的子空间; 这样递归直到处理所有的多边形为止,最终就得到物体的对象和二叉树的结构。 如图2 5 所示。b s p 二叉树通常比与之类似的四叉树或八又树有更多的节点。但叶 子的数目并不比它们多,而且二叉树的计算处理算法可以表达得更为简洁。 虚拟场景实时绘制技术充 汕j 一) 、4 图25 空间的b s p 树结构 对于虚拟场景的实时绘制而言,b s p 树的最大优点是可以构造较好的均衡树, 尤其是当场景中对象不均衡分布时,从而减少树的深度。这样实时渲染时,可以 快速遍历整个场景树,加速场景绘制。 所有空间细分方法的缺陷是对于室外场景不能提供高性能的渲染绘制能力, 这是由于没有有效的算法对场景进行空间剖分。另外,对于场景中的动态对象渲 染需要花费昂贵的树结构更新为代价,每一次动态对象渲染时将其插入到静态树 结构中绘制,然后重新移去动态对象。 4 、场景图表示 与树结构表示相反,场景图表示企图用边界体( 边界盒) 将场景中的对象包 围起来( 如图2 6 所示) 。场景图是一有向的、简单的连接图。场景图的叶节点包 括模型的几何数据,分支节点包含一些模型聚集和变换信息。场景图表示方法最 初用在光线跟踪算法中,用束进行快速的边晁王j 相交测试。依据场景的不同,可 以采用不同的边界体来构造场景图。常用的边界体有:边界球( 边界盒) 、轴向边 界盒( a a b b ) 、方向边界盒( o b b ) 。 轴向边界盒与坐标轴的方向一致,定义了两个极值点,边界盒所包围的几何 模型的坐标位于两个极值点之间。方向边界盒的表面法向量两两正交,任意旋转 后的轴向边界盒即为一方向边界命。 幽26 场景图表示 、治一 r|上生 一 一 一c 丁, 一 d 一 号,一。一 h 、f a 、,卜, ,一 一 b 一!,rll 第一章虚拟场景实时绘制和力速技术 虚拟场景图表示的边界体也可用来剥场景进行可见性计算和碰撞检测,从而 加速场景的渲染。 2 2 实时消隐技术 有效的确定3 d 场景的可见部分是在交互式帧速率下绘制复杂场景的关键。如 果场景中的局部多边形在视域之外则不进行绘制即消隐,消隐过程也叫可见性剔 除,它是真实感图形绘制的一个重要环节。由于消隐过程涉及对场景中景物的排 序,因而它是真实感图形绘制过程中最为耗时的部分。上世纪7 0 年代,就有许多 图形学工作者对图形消隐技术进行了卓有成效的研究,提出了一大批实用的消隐 算法,其代表算法是景物空间w e 订e r _ a t h e r t o n 消隐算法和图像空间的扫描线算 法、z 缓存器及w a r n o c k 算法等。z 缓存器算法是目自订应用最为广泛的图形消隐方式, 但由于硬件z 缓存器算法逐个面片地进行扫描转换和逐个像素地进行深度比较,所 以对于高度复杂的场景,该算法仍难以满足实时绘制的要求。 依据简化的目的和适用范围,本节我们将着重讨论如下可见性剔除算法:视锥 体裁剪( v i e wf r u s t u mc u l l i n g ) 和闭塞裁剪( 0 c c l u s i o nc u l l i n g ) 。 2 2 1 视锥体裁剪 可见性剔除算法中最简单的就是视锥体裁剪。视锥体裁剪算法用来剔除视锥 体之外的多边形,以减少绘制的多边形数,如图2 1 所示。通常采用边界体层次结 构或某一空间数据结构( 诸如k d t r e e 树、o c t r e e 八叉树或b s p 树) 来裁剪多边形。 通过将视锥体与层次结构进行比较,迅速将场景中位于视锥体之外的多边形裁剪 掉。 视锥体裁剪算法首先建立一边界体树,然后遍历树结构用来测试视锥体是否 与边界体相交。如果边界体不与视锥体相交,则停止遍历树结构。因为,边界体 的子树也位于视锥体之外。由于所绘制场景中大部分多边形是静态的,因此,用 来实现快速的视锥体裁剪算法是通过一空问数据结构来实现,如八叉树0 c t r e e 结 构、二叉树b s p 空间分割法。 o 虚拟场景宾时绘j 附女术研究 图2 7 可见性裁剪算法图28 闭塞裁剪可见性计算 2 2 2 闭塞裁剪算法( o c c l u s i o nc u l l i n g ) 视锥体裁剪算法用来剔除掉视见体之外的对象,但是对于视见体之内的对象 并不总是可见的,一些物体可能被场景中其它对象遮挡或隐藏起来,因此,在场 景绘制前也没有必要输送到渲染管道进行绘制。闭塞裁剪算法是比视锥体更复杂 的裁剪算法,用来确定视见体之内那些场景多边形被其它对象遮挡而不需要绘制。 算法中用来遮挡其它对象的物体称为比赛体( o c c l u d e r s ) ,被遮挡的对象称为比 赛对象( o c c l u d e e s ) ,如图2 8 所示。闭塞裁剪技术的关键是如何确定场景中的 最佳候选闭塞体。最简单的方法是将视见体之内距离视点较近的对象作为闭塞体。 c 0 0 r ga n dt e l l e r 建议在给定视点f 对每一个可能的闭塞体计算所有可能被遮挡 的物体的区域,这些区域被闭塞体的边界平面所划分。然后将闭塞对象同这些区 域进行相交测试,如果对象的边界体完全位于这些区域内,则在该视点下对象不 可见。 g r e e n e 提出用一层次z b u f f e r 算法进行可见性剔除。陔算法用八叉树结构 对场景进行剖分,用z b u f f e r 建立一图像金字塔称为z p y r a m i d 。遍历八叉树 时,计算每个树节点的边界盒与z p y r a m i d 的相交性来确定边界盒的可见性:对 于节点内的多边形,计算每一个指向视点的多边形与z p y r a m i d 的相交性来确定 其可见性;对于每一个面,选择z p y r a m i d 中的z 值与面的最近z 值。如果面的 z 值小于体的值,则该面具有潜在的可见性,继续遍历z p y r a m jd 体中更高的细 节层次进行测试。否则,该面被闭塞停止进行可见性测试。对于严重闭塞的复杂 场景,算法通过一简单的深度测试来剔除多边形面。 由于八叉树管理的复杂性,对于动态场景层次z b u f f e r 算法不能提供实时 第一幸赢拟场景实时绘制_ 羊n 加速技术 性能。z h a n g 提出用图像空间中层次闭塞映射( h o m ) 进行可见性裁剪,来克服此 算法的缺陷,并对图形硬件和近似可见性剔除提供支持。仅仅几个像素可见的物 体用一不透明的门限值就可以剔除掉。闭塞按照层次闭塞映射( h o m ) 的方法进行 组织,然后测试场景边界体的层次与h o m 的对应关系。与层次z b u f f e r 算法不 同的是:h o m 算法仅仅存储不透明信息,闭塞体的深度信息单独存储。算法需要分 别测试物体与h o m 闭塞区域的重叠度和物体与闭塞体的深度。在预处理阶段首先 建立一潜在闭塞体数据库。实时绘制对每一帧图像,分两步处理:第一步建立层 次闭塞映射h o m ,然后用h o m 进行场景几何的闭塞裁剪。 为了建立h o m ,从闭塞体数据库中选择一闭塞体集合,绘制到帧缓冲区。由于 只需要像素的填充信息,闭塞体的纹理、光照和z 缓冲处理都不需要。闭塞体被 绘制成黑色背景下的白色区域,所生成的图像成为闭塞映射的基图像,具有最高 分辨率。通过2 2 像素的四边形对基图像进行采样,生成较粗糙的层次图像,其 分辨率为基图像的一半,依次生成更低分辨率的图像层级。对于较粗糙的层次图 像像素不仅仅用白色和黑色表示,而应用灰度来表示。每一层级像素的灰度级表 示了对应区域的不透明度。对物体进行闭塞测试时,首先,将包围物体的边界盒 投影到屏幕空问,从层次闭塞映射金字塔图像中找出与投影图像像素相同的层级 图像;然后,测试其重叠性,如果边界盒与h o m 重叠的像素是透明的,则物体是 可见的;否则具有近似可见性,需进行深度测试。该算法通过一深度估计缓冲区 用来对物体与闭塞体之间进行深度测试。 第三种闭塞裁剪算法是计算与闭塞体的阴影体相交测试来进行多边形裁剪, 该算法由h u d s 提出。其裁剪方法与视锥体裁剪相同。这是由于阴影体与视锥体相 似,唯一不同的是阴影体没有远端的包围平面且可能有多于四个的边平面。算法 利用一层次数据结构进行视锥体裁剪、确定闭塞体,然后测试剩下的物体与闭塞 体的相交性。理想的闭塞体通过将其投影到视平面,计算闭塞物体的边界包围体 的内向角的大小,角度越大,闭塞体的选择越好。 2 3 基于几何模型的实时绘制和加速技术 三角形网格是目前交互式三维计算机图形学通用的模型绘制表示方法,三角 形网格表示的多边形模型被广泛的应用于虚拟现实技术、医学可视化、科学可视 化和复杂三维模型表示。这是由于三角形基本元素和其连接结构的简洁性,使得 所有的图形库和图形硬件子系统易于实现,从而加速了三角形网格的场景渲染。 在实际应用中几何物体是通过密集的三角形网格表示。例如:细节丰富的物体三角 形网格形状可通过光栅扫描自动获取,或通过提取高分辨率模型体数据集的等值 面来得到。复杂的地形的绘制需要用大量的地形数据网格来表示;显示三维c a d 模 雕拟场景安时绘制技术f i j | _ 究 型表面也需要大量的多边形网格:三维复杂的虚拟场景显示也需要产生庞大的多 边形数据网格。所有这些大量的三角形网格数据的存储、操作和渲染处理能力, 都远远超过了计算机图形硬件实时处理能力,即便是高档的图形工作站也远远不 能满足实时、交互的虚拟环境的绘制需求。因此,多边形网格的简化成为目前实 时计算机图形绘制亟待解决的问题。 当场景中的物体远离视点或多个多边形在屏幂空间的投影为单个像素,则这 些多边形应该进行简化。多边形简化算法用来简化小的或远处的多边形几何体来 减少绘制代价,但对场景的视觉图像质量显示又没有明显的降低。依据实时应用 需求,适当改变模型或显示场景的多边形网格分辩率,是多边形简化的基本问题。 c l a r k l 3 2 1 提出的多分辨率层次细节l o d 模型简化方法是目前多边形简化方法的主 流,也是基于几何的三维模型实时绘制和加速的主要方法。 2 3 1 三角形和四边形带状简化 每一个图形库对多边形网格优化的实现,是对网格中的每一个共享顶点仅处 理一次。为了实现该优化方法,将场景数据库组织起来,以便很容易的识别出网 格中的共享顶点,对每个顶点仅处理一次。共享网格顶点的处理次数,对a g p 图形 加速功能数据总线的带宽需求也是至关重要的。三角形和四边形带状图形绘制算 法可有效的实现对多边形网格共享顶点的处理。 图2 9 a 表示一包含6 个三角形的三角形带。为了表示每一个独立的三角形,将 需要1 8 个顶点输入到图形库中。三角形带状简化算法将需要表示的三角形顶点减 至8 个,且每个顶点仅处理次。图2 9 b 中四边形带包含三个四边形,如果每个四 边形需要单独处理,将需要1 2 个顶点来表示。但是将四边形组织成四边形带状结 构,仅需要8 个顶点来表示。输入到图形绘制管道的多边形顶点数的减少可以充分 减少对数据总线的带宽需要,而且也减少了投影多边形所需的计算量。 3 57 a ) 三角形网格带状表示b ) 四边形网格带状表示 2 3 2 层次细节l o d 技术 第二章虚拟场景实时绘制和加速技术 可见性剔除和多边形简化技术经常用来对犬的多边形场景绘制进行加速。通 过采用视锥体裁剪技术,剔除掉视点之外的场景多边形来加速场景绘制:多边形 简化是用尽可能少的多边形来近似表示初始模型,以减少所绘制的多边形数目。 层次细节( 【,o d ) 技术是目前多边形简化算法中研究最多的热点之一,基于l o d 的 实时虚拟场景简化技术也是目前虚拟现实应用中的重用研究内容。l o d 简化目的是 对多边形模型或场景进行多分辨率表示,应用中依据模型与视点的距离,选择适 当分辨率的模型表示进行绘制。如果模型离视点较远,在屏幕空间的投影区域覆 盖的像素较少,则用 h 糙的模型表示;相反,如果模型离视点较近,则采用精细 的模型进行绘制。如图2 1 0 1 1 ”所示的牛的不同层次细节模型。左边最精细,右边 粗糙些,可用在场景中的不同层次。 图2 1 0 牛的层次细节模型 2 4 基于图像的实时绘制和加速技术 传统图形绘制技术均是面向景物几何模型的,因此绘制过程涉及到复杂的消 隐和光亮度计算过程。前面介绍的可见性计算技术及场景几何简化技术由于减少 了需要处理的景物面片数目,因而极大地提高了图形绘制的效率。但对高度复杂 的场景,现有的计算机硬件可能仍无法实时绘制简化后的场景,所以我们面临的 一个重要问题是如何在具有普通计算能力的计算机上实现真实感图形的实时绘 制,因此出现了基于图像的实时绘制技术。基于图像的实时绘制是用二维的场景 图像来替代包含大的静态场景多边形网格。该技术与传统绘制技术相比有着明显 的优点: 1 、绘制独立于场景复杂性,仅与所需生成画面的分辨率有关: 2 、预先存储的图像既可以是计算机合成的,亦可以是实际拍摄的画面,而且 两者可以混合使用: 3 、绘制技术对计算机资源的要求不高,可以在普通工作站和个人计算机上实 现复杂场景的实时显示。 缺点是用二维图像信息替代三维场景对象,不能满足用户同场景对象交互的 虑拟场景实拄寸绘制技术弼l 筑 需要。 基于图像的绘制技术采用三种方法来提高实时系统中场景绘制帧速率:一种 是纹理映射技术,通过在几何模型表面进行纹理映射来表示模型表面的细节;一 种方法是布告版技术,通过屏幕空问排列的多边形图像( s c r e e n a l i g n e d p 0 1 y g o n s ) 来提高场景中静态对象( 如游戏场景中的树等) 的绘制;另一种方法 用几何模型的图像来替代场景中的三维几何体。 2 4 1 纹理映射技术 纹理映射技术是用来增强场景真实感,同时提高图形绘制速率最有效的方法。 其基本原理是把体现场景模型的表面特征信息的图像映射到所绘制的几何模型表 面,以表示模型的表面细节。 根据纹理定义的不同,纹理可分二维纹理、三维纹理;基于纹理的表现形式, 纹理又可分为颜色纹理、几何纹理和过程纹理三大类。颜色纹理指的是呈现在物 体表面上的各种花纹、图案和文字等,如大理石墙面、墙上贴的字画、器皿上的 图案等都可用颜色纹理来模拟。几何纹理是基于景物表面微观几何形状的表面纹 理,如桔子、树干、岩石、山脉等表面呈现的凸凹不平的纹理细节。而过程纹理 则表现了各种规则或不规则的动态变化的自然景象,如水波、云、火、烟雾等。 伴随着纹理映射技术的发展,纹理反走样( a n t i a l i a s i n g ) 技术亦得到了极大 的发展。可以说,两者是相辅相成、密不可分的。本文运用二维纹理映射、纹理 混合、纹理反走样m i p m a p 过虑,实现场景的纹理细节。该方法在场景模拟中达到 的效果接近于运用几何纹理映射所达到的效果,但在图形绘制速度和复杂度方面 却大大优于几何纹理映射方法。下面详细介绍这三种维纹理技术。 1 、二维纹理映射 二维纹理映射实质上是从二维纹理平面到三维景物表面的一个映射。一般来 说,二维纹理定义在一个平面区域上,它可以用数学函数解析地表达,亦可以用 各种数字图像来离散定义。这样,该平面上的每一点处,均定义有一个灰度值或 颜色值,我们称浚平面为区域为纹理空阳_ | 。在本文中,二维纹理是一个二维颜色 值数组,其中单一的颜色值称作纹理元素( t e x e l ) 。每个纹理元素在纹理中都有一个 唯一的地址用于索引,这个地址是纹理元素在数组中的列和行数,分别标为u 和v , 这就是纹理坐标。 纹理坐标位于纹理空问。当把纹理应用到二维空间中的模型上时,必须把纹 理坐标映射到模型空间,然后变换到屏幕坐标。通常为了提高效率,这个过程采 用逆向映射,即对屏幕空间的每个像素,计算出纹理空间中相应的纹理坐标,并 在这个点和周围的纹理颜色取样,这个过程称作纹理过滤,参见图2 1 1 所示。 第一章虚拟场景实时绘制和加速技术 倒21l由屏幕像素映射到纹理空间的过群 纹理坐标值位于0 0 和1 o 之间,包括o 0 和1 o 。当坐标不在这一范围内时, 它们或者被夹紧( w m p = g l - c l 脚心,默认情况) ,或者重复( w r a p = g l j 也p e a t ) 。 图2 1 2 所示表明g lc i a m p 是如何工作的。当纹理坐标到了图像边界时, 它们将会在边界处停止,而不是绕传到其它边。如果定义其它边框像素,它们将 会代替像素边界被使用。 c i a m o e da r e a 图2 1 2g lc l a m p 纹理模式 对于g lr e p e a t ,纹理图像根据需要进行重复,绕转到图像的另一边。这样, 就可以看到重复的图案了。 本文用g l t e x p a r a m e t 面函数设置绕传模式: 9 1 1 色x p a r 锄e t e r i ( g l r e x t r u r e 一2 d ,g l t e x t u r e w r a p s ,w r a p ) ; g 】1 e x p a r 锄e t e r i ( g l _ t e x t r u r e 2 d ,g l _ ,r e x t u r e 厂i t a pt ,w r a p ) ; g l t e x p a r a m e t e r i 函数取不同的参数,就可以产生不同的纹理效果,如图2 1 3 所示: 2 、纹理混合 纹理混合指纹理颜色与模型材质颜色之问,或多种纹理颜色之间的混合方 式。纹理混合决定了带纹理的模型如何被绘制。四种常见的纹理混合分别是a 1 d h a 纹理混合、多遍纹理混合、多纹理馄台和凹凸纹理混合。 虚拟场景实时绘制技术磅 究 w r a dso lw r m pw 怕ps :0 l _ w r a m p w r a dto l w r m pw r a 口下g lr e p e a t 幽2 1 3 g l t e x p a r a r n e t e n 取不同参数的纹理效果 纹理颜色与像素材质颜色的混合公式可以写作: f i n a l c 0 1 0 r 二t e x e l c o l o r x s o u r c e b l e n d f a c t o r 十p i x e l c o l o r x d e s t b l e n d f a c t o r( 2 1 ) f i n a l c o l o r 是输出到目标渲染表面的像素颜色,t e x e l 是对应于当前像素的 纹理元素的颜色,p i x e l c o l o r 是当前像素的材质颜色。s o u r c e b l e n d f a e t o r 和 d e s t b l e n d f a c t o r 是混合因子,分别表示纹理元素颜色和材质颜色占最终混合颜色 的百分比。 a 1 p h a 混合通常用纹理元素的a 1 p h a 值作为s o u r c e b l e i l d f a c t o # ,用卜a 1 p h a 作为s o u r c e b l e n d f a c t o r 。 多遍纹理混合( u u l t i p a s st e x t u r eb 1 e n d i n g ) 是多遍对多边形应用多种纹理的 过程,几种纹理就对应着几次重复渲染。 多纹理混合和多编纹理混合的效果完全相同,所 不同的是多纹理混合利用硬件的支持,在一次渲染中 同时完成多个纹理的混合。目前常见的第四代3 d 加 速显示卡都在硬件层次上支持多纹理混合。不过,其 支持的多纹理有数量限制,n v i d i a 公司的最新款 g e f o r c e 4 t i 芯片能够同时支持4 层纹理混合。图2 1 4 表示了多纹理混合过程。从0 级开始,混合结果一次 流向下一级,最终在相应的多边形上形成光栅化的结 果。这个过程又被称作“纹理混合层叠”。 多纹理混合常用于实现阴影、镜面光照、满射光 照等效果。 图21 4 多纹理混合示意图 凹凸纹理混合是用来表现更具真实感的粗糙表面的特殊技术。虽然普通纹理 已经可以产生一定的凹凸表面感觉,但是真实感不够。凹凸纹理通常需要三层纹 理混合,首先是基本的普通纹理,然后是拢动纹理图案,最后是光照查找表。凹 凸纹理混合过程利用扰动纹理图案,在光照查找表中找到相应的光强信息,并与 第一章虚拟场景实时绘制和加速技术 普通纹理混合,从而产生栩栩如生的粗糙表面,例如泥地,人体皮肤等。 3 、m i p m a p 纹理过滤 纹理映射过程是一个采样过程,这个过程存在着采样误差。由于纹理坐标是 浮点坐标,因此它的值不一定对应于某一个纹理像素,如果仅仅选取最近的像素 作为纹理值,就会产生走样现象。更重要的是,屏幕上的一个像素经过纹理映射 后,变换到纹理空间,一般是一个不规则的四边形区域。在某些情况下,这个四 边形区域面积可能很大。如果仅仅按最近点采样,即以像素中心点代表整个像素, 经过变换后在纹理空间中取距离相应点最近的纹理像素点作为纹理值,就会造成 更严重误差。后果是,纹理比较细致的部分由于采样误差显得非常难看,当物体 相对于视点运动时,还会有闪烁现象。理想的采样方法是对像素四边形在纹理空 间中对应的四边形区域内的纹理像素进行平均,所得的平均值作为屏幕上像素点 的纹理。但是由于纹理映射规则的复杂性,纹理空间中对应的四边形区域形状难 于计算,而且,计算平均值是一个耗时的操作,需要访问许多纹理像素。 m i p m a p 技术由w i l l i a m s 在1 9 8 3 年首次提出,这种技术较好的解决了采样误 差,目前在三维图形学领域得到了广泛应用。m i p m a p 要求纹理图案的边长是2 的 整数次幂。以初始的纹理图案作为第一层纹理。假设其分辨率是n x n ,然后通过对 它的平滑滤波,也就是说每四个相邻的纹理像素平均后的均值作为上一层相应的 纹理像素,得分辨率是的兰兰第二层纹理图。 图2 1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 黑龙江伊春市2025年公路工程试验检测师资格考试(公共基础)综合能力测试题及答案
- 2025年水运工程试验检测师资格考试(水运结构与地基)经典试题及答案四
- 数控铣工内部技能考核试卷及答案
- 溶剂蒸煮工晋升考核试卷及答案
- 2025年浙江嘉兴公路工程试验检测师资格考试(公共基础)综合能力测试题及答案
- 镀锡工技能比武考核试卷及答案
- 配膳员职业技能考核试卷及答案
- 数控铣高级工理论试题及答案
- 漯河市2025年职业病诊断医师资格考试(职业性尘肺病及其他呼吸系统疾病)模拟练习题及答案
- 装修污染管控师职业考核试卷及答案
- 中国企业供应链金融白皮书(2025)-清华五道口
- 2025年陕西省专业技术人员继续教育公需课答案
- 2025年土方坍塌应急预案演练脚本
- 医院常用消毒液的使用及配置方法
- 2022英威腾MH600交流伺服驱动说明书手册
- 2025年中国药典培训试题及答案
- 新疆教育惠民政策课件
- 非法言论主题班会课件
- 急性呼吸衰竭的诊断与治疗
- 2025年高校教师资格证之高等教育法规题库(综合题)
- 管道保温检查管理制度
评论
0/150
提交评论