(计算机应用技术专业论文)高质量的实时直接体绘制算法.pdf_第1页
(计算机应用技术专业论文)高质量的实时直接体绘制算法.pdf_第2页
(计算机应用技术专业论文)高质量的实时直接体绘制算法.pdf_第3页
(计算机应用技术专业论文)高质量的实时直接体绘制算法.pdf_第4页
(计算机应用技术专业论文)高质量的实时直接体绘制算法.pdf_第5页
已阅读5页,还剩64页未读 继续免费阅读

(计算机应用技术专业论文)高质量的实时直接体绘制算法.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 体绘制技术是科学计算可视化领域一个重要的研究方向,近年 来,由于计算机图形处理器( g r a p h i cp r o c e s s i n gu n i t ,简称g p u ) 的高 速发展,使得基于g p u 的实时绘制成了当前计算机图形学的热门研 究领域之一,本文着重研究基于通用图形处理器的直接体绘制技术, 力求在绘制的真实感与交互性能之间寻求一个良好的平衡。 本文介绍了三维可视化和可编程图形处理器的概况,分析了可视 化的主要流程与基于可编程图形处理器的图形流水线,总结了几种基 于目前最新的可编程图形处理器的实时高质量体绘制算法。同时也给 出了这些算法的完整实现和对比结果。本文还分析了传统基于g p u 三维纹理体绘制算法的优缺点,并根据绘制质量和速度提出改进传统 算法的技术。 由于目前g p u 的并行和专注计算的架构,使得g p u 的浮点运算 速度远大于c p u 。在g p u 中己实现的基于纹理面片的体绘制算法, 其主要工作都在片段着色器上进行,而顶点着色器只进行少部分的工 作。为克服图形硬件对传统纹理映射体绘制的限制,提出并分析讨论 了采用顶点编程来有效地实现基于纹理的体绘制中的切片组与包围 盒相交过程的方法。由此保证顶点处理器、片段处理器与内存带宽间 工作量的平衡,并结合空区域跳跃法与o p e n g l 的顶点缓冲对象 ( v e r t e xb u f f e ro b j e c t ) 技术,进一步加快了绘制速度。传统三维纹理映 射算法是以面绘制为基础的固定管线,因而难以实现体数据中的光照 计算,而本算法可使用自定义光照算法,弥补了原先固定管线中,没 有像素级光照的缺点,增强了算法的局部照明效果,实现p h o n g 光照 模型,提高了重建的真实感效果。 为了追求更高质量的绘制结果,保证交互性的前提下,在基于 3 d 纹理的体绘制过程中考虑光的散射,从而得到阴影效果,并考虑 现实图像合成中的可视化感知,提出将高动态范围色调映射技术应用 到高动态范围体绘制得到的结果图片中。实验结果表明图像的质量得 以较大提高。 关键词体绘制,图形处理器,三维纹理,顶点着色器,高动态范围 a bs t r a c t v o l u m er e n d e r i n gi sa ni m p o r t a n tr e s e a r c ht o p i ci nt h ef i e l do f v i s c w i t ht h er a p i dd e v e l o p m e n to fg p ui nr e c e n ty e a r s ,r e a l - t i m e r e n d e r i n gb a s e do ng p uc o m e su pa sa h o tt o p i cf o rr e s e a r c hi nc o m p u t e r g r a p h i c s i nt h i st h e s i s ,w ef o c u so nt h et e c h n i q u e so fg p u ( g r a p h i c s p r o c e s s i n gu n i t ) b a s e dv o l u m er e n d e r i n ga n dp r o p o s e t os e e kf o ra t r a d e o f fb e t w e e nt h er e a l i s t i ce f f e c t sa n di n t e r a c t i v ep e r f o r m a n c e t h i sp a p e rg i v e sa no v e r v i e wo ft h ev i s u a l i z a t i o no f3 da n d g p u t h e n ,a n a l y s i st h em a i nf l o wo fv i s u a l i z a t i o na n dt h eg p u b a s e d g r a p h i c sp i p e l i n e s e v e r a l r e a l t i m ea n dh i g hq u a l i t yv o l u m er e n d e r i n g a l g o r i t h m sb a s e do nt h eb r a n dn e wp r o g r a m m a b l eg r a p h i cp r o c e s s i n g u n i tw e r es u m e r i z e d t h ec o m p l e t ei m p l e m e n t sa n dc o m p a r a t i v er e s u l t s w e r ea l s od e s c r i b e d t h e s t r o n g p o i n t a n dt h ew e a k p o i n t o ft h e g p u - b a s e d3dt e x t u r ev o l u m e r e n d e r i n ga l g o r i t h m s w e r ea l s o a n a l y s e d ,t h ei m p r o v e da l g o r i t h m sa b o u tr e n d e r i n gq u a l i t ya n ds p e e dw e r e p u tf o r w a r d a st h eg p uh a st h ep a r a l l e la n dc o m p u t a t i o n s p e c i f i e da r c h i t e c t u r e , i t sf l o a tp o i n to p e r a t i o ns p e e di sm u c hh i g h e rt h a nc p u d u r i n g3 d t e x t u r eh a r d w a r ev o l u m er e n d e r i n g ,o n l yv e r yl i t t l ew o r k l o a di sa s s i g n e d t ot h ev e r t e xp r o c e s s o r p u tf o r w a r dav e r t e xp r o g r a mw h i c he f f i c i e n t l y c o m p u t e st h es l i c i n gf o rt e x t u r e d - b a s e dv o l u m er e n d e r i n gt oh a n d l et h e l i m i t e do fg r a p h i cc a r d t h i st e c h n i q u ee n a b l e su st ob a l a n c et h e w o r k l o a db e t w e e nv e r t e xp r o c e s s o r , f r a g m e n tp r o c e s s o ra n dm e m o r yb u s w i t hs p a c el e a p i n ga n dv b o ( v e r t e xb u f f e ro b je c t ) t e c h n i q u ei nt h e o p e n g l ,t h es p e e di s f u r t h e ra c c e l e r a t e d t h et r a d i t i o n a l3 dt e x t u r e b a s e da l g o r i t h mc a n tf u l l yi m p l e m e n tt h es h a d i n gm o d e ld u et ot h ef i x e d p i p e l i n e t h ep r e s e n t e da l g o r i t h mi sa b l et od e f i n el i g h t i n ga l g o r i t h m ,a n d m a k eu pt h el a c k n e s so fn op i x e l l e v e ls h a d i n gi nt h ef i x e dp i p e l i n e m o r e o v e r , t h el o c a ll i g h t i n ge f f e c tw a se n h a n c e d ,t h ep h o n gl i g h t i n g m o d e lw a sr e a l i z e da n dt h er e a l i s t i cf e e l i n go ft h ee f f e c tw a si m p r o v e d i nt h ep u r s u i to fah i g h e rq u a l i t yo ft h er e n d e r i n gr e s u l t sa n de n s u r e i n t e r a c t i v e ,c o n s i d e r i n gs c a t t e r i n g i n3 dt e x t u r eh a r d w a r ev o l u m e - r e n d e r i n g t a k i n gi n t oa c c o u n ta s p e c t so fv i s u a lp e r c e p t i o nb ym e a n so f r e a l - t i m eh i g h d y n a m i cr a n g et o n em a p p i n gi nt h er e s u l t so fh i g h d y n a m i cv o l u m e r e n d e r i n g e x p e r i m e n t s d e m o n s t r a t e dt h a tt h e s e t e c h n i q u e sc a ni m p r o v et h er e n d e r i n gq u a l i t yg r e a t l y k e yw o r d sv o l u m e r e n d e r i n g ,g r a p h i cp r o c e s s i n gu n i t ,3 dt e x t u r e , v e a e xs h a d e r h i g hd y n a m i c r a n g e 1 1 1 原创性声明 本人声明,所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。尽我所知,除了论文中特别加以标注和致谢的 地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包 含为获得中南大学或其他单位的学位或证书而使用过的材料。与我共 同工作的同志对本研究所作的贡献均己在论文中作了明确的说明。 作者签名:审塞墨一 眺珥吐月互日 学位论文版权使用授权书 本人了解中南大学有关保留、使用学位论文的规定,即:学校有 权保留学位论文并根据国家或湖南省有关部门规定送交学位论文,允 许学位论文被查阅和借阅;学校可以公布学位论文的全部或部分内 容,可以采用复印、缩印或其它手段保存学位论文。同时授权中国科 学技术信息研究所将本学位论文收录到中国学位论文全文数据库, 并通过网络向社会公众提供信息服务。 期毕年血丛日 硕士学位论文 第一章绪论 1 1 研究背景及意义 第一章绪论 2 0 世纪8 0 年代后期,随着计算机软硬件技术的不断发展、科学和工程计算 规模和复杂度不断增加,以及各科学领域新型实验手段不断丰富,所产生的大量 数值数据与无法有效解释和有效利用之间的矛盾日益尖锐。科学计算可视化i i j ( v i s u a l i z a t i o ni ns c i e n t i f i cc o m p u t i n g ) 在这种背景下应运而生1 2 捌。它是指运用计算 机图形学和图像处理技术,将隐含在大量科学数据中的复杂物理现象和自然现象 转化为直观的图形及图像,并进行交互处理的理论、方法和技术。随着计算机相 关技术的发展,十年来,科学计算可视化一直是计算机图形学的研究热点【4 】。欧 洲图形学组织开辟了一年一度的可视化专题讨论会,i e e e 则自从1 9 9 1 年起,定 期每年召开一次可视化会议,并于1 9 9 5 年新增一个刊物i e e et r a n s a c t i o no n v i s u a l i z a t i o na n dc o m p u t e rg r a p h i c s ) ) ,可视化领域许多新研究进展的文章都发表 在上面。欧美许多发达国家的科研机构、大学和著名的公司均对可视化技术进行 了大量研究。科学计算可视化在计算流体力学、有限元分析、医学图像处理、数 学、物理、地质学、气象预报、生命科学等领域已广泛应用。 目前可视化技术领域的研究热点是医学影像可视化技术。美国国家医学图书 馆( n l m ) 于1 9 8 9 年在委托科罗拉多大学医学院建立一男一女的全部解剖结构数 据库,开始实施可视化人体计划( v h p ) 。将一具男性和一具女性尸体做全身c t 和m 刚扫描,所得数据共5 6 g b ( 男1 3 g b ,女4 3 g b ) ,用于教学和科学研究。 v h p 数据集的出现,标志着计算机三维可视化技术和虚拟现实技术进入了医学 领域,进而促进了医学的发展和普及。 进行科学计算可视化研究具有重要意义。首先,可视化大大加快数据的处理 速度,使产生于超级计算机、卫星、先进医学成像等先进设备与日俱增的海量数 据集得以有效利用。第二,通过可视化海量数据使其变成人类可感知的形象体, 可更加形象地显示海量数据内的信息,激发人的形象思维。第三,方便人们从表 面上看似杂乱无章的海量数据中,认识客观事物的本质并找出其中隐藏的规律, 从而为发现和理解科学规律提供有力工具,进步达到为科学发现、工程开发、 医疗诊断和业务决策等提供依据的目的。推动可视化方法在医学领域的应用,对 于提高医疗诊断和治疗规划的准确性与科学性,也具有重要的现实意义。对于医 学图像的可视化就是对c t 、m r i 等图像序列进行处理构造三维几何模型,将看 不见的人体组织以三维形式显示出来,这对于诊断医学、整形与假肢外科手术规 硕士学位论文第一章绪论 划、辐射治疗规划等技术有重要辅助意义。 1 2 研究进展及现状 目前国外已有了一些医学影像可视化处理的商品化系统。有些是一个独立的 系统,如英国的v o x a r l ,美国的v i a t r o n i x ,v i t a li m a g e s ,t e r a r e o n ,以及加拿 大的c e d a r a 等,根据用户需要,它们能与不同厂家的c t 或m i u 配合使用。有 些则是医疗设备的一个组成部分,如美国通用电气( g e ) 、荷兰飞利浦( p h i l i p s ) 和德国西门子( s i e m e n s ) 等生产的螺旋c t 扫描设备均带有基于图形工作站 ( s g i ,s u n ) 的内置式医学图像可视化系统。将扫描图像输入计算机以后,利用 这些系统采取不同方法构造出三维形体,并对三维图像由外向内按层剥离或对任 意位置作剖分来分析内部结构,也可以完成实时的平移、旋转、放大或缩小操作, 还有测量距离、计算体积等功能。显然,如此功能强大的三维医学图像处理系统 将给诊断和治疗提供极大方便。但是,这种系统需要运算速度很高、存储容量很 大的计算机系统,连同软件在一起,价格非常昂贵,影响了可视化技术在实际临 床的普及。此外,还有一些软件工具库用于可视化系统的开发,比如v t k 、i t k 在盘 守。 国内在三维重建及可视化方面也颇有建树,浙江大学、清华大学、东南大学、 复旦大学、大连理工、中科院自动化所等单位均投入资金和人力进行了大量研究, 开发出一些实验系统,如中科院自动化所的3 d m e d t 5 1 ,清华大学计算机系研制的 人体断面解剖图像三维重建系统等。但它们还存在系统功能不完善、缺乏临床应 用的指导等缺陷,尚无成熟的商用系统。 可视化方法分为间接体绘制技术和直接体绘制技术。间接体绘制技术中最典 型的就是移动立方体m c ( m a r c h i n gc u b e ) 算法【6 】,该算法在体数据中先提取等值 面构成三角面片,再使用面绘制来进行体重建。为了方便地进行观察和分析,可 用真实感技术生成高质量的图像。其突出的问题是只能显示表面的信息,不能反 映原始数据场中数据之间的内部关系且要想得到较好的结果,绘制前需对原始数 据进行精确的分割。直接体绘制技术最有代表性的是光线投射算法1 7 1 。它不需要 提取面,而是把单个体数据模拟成一个粒子,赋予其光的吸收和发射特性,通过 计算光穿过整个体数据时辐射能量的累积值来进行绘制。 本文主要研究基于g p u 的直接体绘制技术,下面简要介绍目前的典型软件 类算法。 硕十学位论文第一章绪论 1 2 1 典型的软件类直接体绘制算法 ( 一) 空间域体绘制 1 ) 光线投射法( r a y c a s t i n g ) 1 7 j 大部分有关体绘制的文献是对此算法的研究。它是图像空间中的经典算法, 是一种基于图像空间扫描,能生成高质量图像的典型的体绘制算法,基本思想是 从图像平面的每个像素沿着视线方向发出一条射线,此射线穿过体数据集,按一 定步长进行采样,由内插计算每个采样点的颜色和不透明度值,然后由前向后或 由后向前逐点计算累计的颜色和不透明度值,直至光线完全被吸收或穿过物体。 该方法能很好地反映物质边界的变化,如果再使用p h o n g 模型,引入镜面反射、 漫反射和环境反射就能得到很好的光照效果,在医学上可将各组织器官的性质属 性、形状特征及相互之间的层次关系表现出来,从而丰富了图像的信息。 2 ) 足迹法( s p l a n i i l g ) 1 3 ,川 足迹法首先由w e s t o v e r 提出,它是物体空间的经典绘制算法,思路与r a y c a s t i n g 不同,它按照物体顺序扫描每个体素,并将其投影到图像平面上,由于每 个体素要影响到图像平面上的好几个像素,所以算法的名字为s p l a t t i n g 。其原理 是将体数据表示为一个由交叠的基本函数构成的矩阵,基本函数通常选择幅值由 体素值表示的高斯函数核,然后根据一个预先计算的基本函数投射到像平面生成 图像。其实质为体数据与函数核卷积运算,然后再沿视线的反方向投射积累到像 平面的过程。 3 1 剪切啾( s h e a r - w a r p ) t 1 0 1 剪切曲变法是综合了图像空间与物体空间优点的混合绘制方法,被认为是 目前一种速度最快的基于软件实现的体绘制算法。它采用种关于体素和图像的 编码方案,在遍历体素和图像的同时略去不透明的图像区域和透明的体素。预处 理时,体素经过不透明度初分类,再按行程长度编码( r l e ) ,然后用类似于射线 投射法的方法进行绘制。其绘制过程可简化为通过剪切出适当的编码体素使射线 正交于所有的体素层,利用双线性插值在遍历的体素层内得到它们的采样值,再 通过曲变将体素平行于基准平面的图像转换为屏幕图像。此算法既可以很好地利 用c p u 的c a c h e 来获得内存访问性能,又能够利用提前射线终止等图像空间算法, 并且所有的计算都降到两维来完成,因此拥有非常快的绘制速度。但得到的图像 质量较差。文献【l l 】中提出了一些提高绘制质量的方法,同时尽可能减少算法在 速度上的损失,文献【1 2 】将p r e i n t e g r a t i o n 集成进原始的s h e a r - w a r p 算法框架,进 一步提高算法的绘制质量。 ( 二) 变换域的典型算法 硕士学位论文 第一章绪论 l1 频域体绘制法( f r e q u e n c yd o m a i nv o l u m er e n d e r i n g ) 1 3 】 频域体绘制法的基本原理是首先用三维傅立叶变换将空域的体数据f ( x ) 变换 到频域得到离散频谱f ( s ) ,然后沿着经过原点并与视正交的抽取平面对离散频谱 f ( s ) 进行插值,重新采样插值后的频谱得到一个二维的频谱,对其作二维傅立叶 反变换即可得到该视方向上的空间域投影图。 2 ) 基于小波的体绘制法( w a v e l e t b a s e dv o l u m er e n d e r i n g ) 目前,基于小波的体绘制方法主要有两种:小波域射线投射法( r a yt r a c i n gi n w a v e l e ts p a c e ) t 1 4 】和小波足迹法( w a v e l e t b a s es p l a t t i n g ) i i s , 1 6 1 。前者的基本思想是 将体数据的三维离散小波变换的近似结果直接代入到体绘制方程中求解,本质上 看它是射线投射法在小波域的实现;后者的基本思想是利用傅立叶频域绘制先得 到每个小波和尺度函数的足迹,再通过小波系数加权得到投影图像。 上面介绍的两大类算法均基于纯软件。由于运算量巨大,国内外研究者提出 了很多对以往算法的改进,如物体空间法中的空间跳跃算法、像空间法的光线提 前结束法等。针对绘制中大量的计算和对带宽的极高要求,基于图形硬件纹理映 射的体绘制逐步成为对规则网格体数据绘制最为实际可行的方法f 1 7 】,并且随着硬 件技术的发展,基于图形硬件的体绘制算法已逐渐成为主流。顶点处理和像素处 理阶段提供了灵活的可编程性。这使得获得高质量的实时体图形变成现实。世界 上唯一的图形学硬件会议( s i g g r a p h e u r p g r a p h i c s ) 连续几年关注的重点都 是g p u 的应用。有人提出,g p u 将变成通用处理器。19 9 4 年b r i a nc a b r a l 等人提 出使用纹理映射i l8 j 来加速体绘制,但此算法只能运行在昂贵的图形工作站的显卡 上,因此其重要性被忽略。由于显卡的三维加速能力与纹理映射所需的二维光栅 处理能力越来越强,采用图形硬件来改进体绘制也变得更为可行。1 9 9 8 年, w e s t e r m a n n 等人基于文献f 1 0 】的思想,实现了一个较实用的基于硬件的体绘制算 法,之后又加入了基于硬件加速的分类和光照计算【1 9 l 。随后,g r a p h i c sh a r d w a r e 年会的最佳论文均是基于硬件的体绘$ 1 j 2 0 - 2 3 1 ,作者将p r e i n t e g r a t i o n 集成到基于硬 件的体绘制算法中,从而显著提高了绘制质量。随着n v i d i a 和a t i 对三维显卡 的不断更新换代,目前显卡已经具备了很强的计算能力。已在g p u 上实现r a y c a s t i n g 算法1 2 4 l 与加速的r a yc 嬲t i n g 算法【2 5 1 。下面介绍图形硬件的相关知识。 1 2 2g p u 发展简史及图形编程语言简介 1 9 9 9 年n v i d i a 公司推出的g e f o r c e 2 5 6 图形芯片是第一款集成硬件t & l ( t r a n s f o m a t i o n & l i g h t i n g ,多边形变换和光照) 功能的图形显示芯片,从这款芯 片开始,n v i d i a 开始将图形硬件称为g p u ( g r a p h i cp r o c e s s i n gu n i t ) b p 图形处 硕士学位论文第一章绪论 理单元【2 引。 多年来g p u 以大大超过摩尔定律的速度高速发展,每隔6 1 2 个月g p u 的 性能就提高一倍,极大地提高了计算机图形处理的速度和图形质量,并促进了计 算机图形相关应用领域的发展。目前p c 的图形处理器已经达到相当高的性能, 2 0 0 4 年推出的n v i d i ag e f o r c e 6 5 0 0 u l t r a 图形处理器峰值可达到4 0g i g a f l o p s ( 1 0 i g a f l o p s = 1 秒钟进行l o 亿次的浮点运算) ,2 0 0 5 年发布的n v i d i ag e f o r e e 7 8 0 0 g t x 更是将峰值提高到令人惊讶的1 6 9 g i g a f l o p s ,2 0 0 7 年推出的n v i d i a g e f o r e e 8 8 0 0 u l t r a 其核心频率达到了6 1 2 m h z ,运算峰值达到4 0 0 g i g a f l o p s 以上, 而i n t e l3 g h zp e n t i u m 4 采用s s e 指令集也只能达到6 g i g a f l o p s 。 目前为止,g p u 的发展已经经历了五代,每一代都拥有比前一代更强的性 能和更加完善的可编程能力。每一代图形处理器都影响和集成了两个主要的三维 编程接口:o p e n g l 和d i r e c t x 。o p e n g l 是一个为w i n d o w s 、l i n u x 、u n i x 和 m a c i n t o s h 上三维编程服务的开放式标准。d i r e c t x 是m i c r o s o f t 的不断发展的多 媒体编程接口,其中包括的d i r e c t 3 d 是用来进行三维编程【2 6 】。 ( 1 ) 第一代图形处理器( 1 9 9 8 年) 包括n v i d i a 的t n t 2 ,a t i 的r a g 和3 d f x 的 v o o d 0 0 3 。这些图形处理器拥有硬件三角形处理引擎,能使用一或两个纹理,这 大大提高了c p u 处理三维图形的速度。它们还实现了d i r e c t6 的特征集。当运 行大部分三维和二维应用程序的时候,这些图形处理器完全把中央处理器从更新 单独像素中解放出来。但是,这一代图形处理器缺乏顶点变换的能力,顶点变换 还是在c p u 中进行的,更多只是起到三维加速的作用1 2 6 , 2 7 】,而且它们只有一些 有限的数学操作集合来结合纹理计算光栅化后像素的颜色,这时还没有被冠以 “g p u ”的名字。 ( 2 ) 第二代图形处理器( 1 9 9 9 2 0 0 0 年) 包括n v i d i a 的g e f o r c e 2 ,a t i 的 r a d e o n 7 5 0 0 和s 3 的s a v a g e 3 d 。这些图形处理器从中央处理器那里接管了顶点 变换和光照的工作。在这一代之前,快速的顶点变换是高端工作站区别于个人计 算机的关键性能之一。相应的图形a p i 即o p e n g l 和d i r e c t x 7 都开始支持硬件 的顶点变换功能。虽然用来结合纹理和给像素着色的数学操作,在这一代包括了 立方图纹理和带符号数学操作,能够完成的工作仍然有限。这一代图形处理器能 够进行更多的设置,但仍然不是真正的可编程。 ( 3 ) 第三代图形处理器( 2 0 0 1 年) 包括n v i d i a 的g e f o r c e 3 和g e f o r c e 4 t i , m i c r o s o f t 的x b o x 和a t i 的r a d e o n 8 5 0 0 。这一代图形处理器支持顶点级编程, 而不是仅仅提供更多的可设置性。这些图形处理器允许应用程序调用一组自定义 的指令序列来处理顶点数据,而不是支持由o p e n g l 和d i r e c t x 7 指定的传统的 变换和光照模型。但是片段操作阶段仍然不具备可编程架构,只是提供了更多的 硕士学位论文 第一章绪论 配置选项,访问纹理的方式和格式受到一定限制,并且只能用定点数。开发人员 可通过d i r e c t x8 和o p e n g l 的a r bv e r t e x 扩展来开发简单的顶点着色program 程序,d i r e c t x8 的像素着色引擎和各个开发商制定的扩展也提供了片段级的设 置能力。 ( 4 ) 第四代图形处理器( 2 0 0 2 2 0 0 3 ) 包括n v i d i a 使用c i n e f x 体系结构的 g e f o r c ef x 系列和a t i 的r a d e o n 9 7 0 0 9 8 0 0 。这些图形处理器拥有项点级和片段 级的可编程性,将大部分复杂的顶点变换和像素着色操作从c p u 转移到g p u , g p u 具备了浮点功能。d i r e c t9 和各种o p e n g l 扩展( a p - bv e r t e xp r o g r a m 、 a r b f r a g m e n t _ p r o g r a m 、n v _ v e r t e x _ p r o g r a m 2 、n v _ f r a g m e n t _ p r o g r a m ) 可帮助开 发人员利用这种特性来完成原本只能在c p u 上进行的复杂顶点像素操作。c g 和 h l s l 等高级着色语言开始得到应用。 ( 5 ) 最近图形处理器的发展( 2 0 0 4 至今) :n v i d i a 相继推出了g e f o r c e6 、 g e f o r e e7 和g e f o r e e8 系列,a t i 公司也推出了r a d e o n1 8 0 0 x 和r a d e o n1 9 0 0 x 系列。它们中g p u 的核心频率可高达6 1 2 m h z ,有1 2 8 条渲染管线。同时也提 供了更强大的可编程性,顶点程序可以访问纹理,支持程序的动态条件分支,像 素程序也开始支持分支操作,支持子函数的调用,在纹理滤波和融合过程中支持 6 4 位浮点精度,同时支持多个渲染目标。 今后的图形处理器将进一步提高其可编程性,开发人员利用各种高级着色语 言,能开发出电影级效果的三维图形和计算机动画。在不久的将来,随着g p u 可编程能力的加强,g p u 不再只用于加速图形方面的计算,作为一个高效且功 能强大的协处理器,它能够适用于更多完全不同的应用,承担更多的通用计算的 任务。 对于可编程的图形处理器,最初程序员只能用有限指令集的汇编语言来开发 图形处理器程序。理论上,汇编语言有强大的功能和很高程度上的灵活性,但由 于是一种低级语言增加开发的难度和成本。这促使了类c 的高级着色语言的诞 生。使用高级着色语言可以方便用户书写各种不同功能的着色程序并对着色程序 提供各种控制,从而使g p u 硬件的具体功能对于用户而言更具有透明性。高级 渲染语言比低级汇编语言有以下几个优势【2 8 j : 1 着色器( s h a d e r ) 程序的编写过程不断地在重复编写_ 看效果一修改_ 看效 果的循环,使用高级语言可以加快着色器的开发周期。 2 编译器可以自动优化代码并执行底层任务,例如寄存器分配,那是很容易出 错且乏味的操作,也减少了出错的可能。 3 高级语言编写的着色代码更容易被阅读和理解,更容易二次开发。 4 高级语言编写的着色器更能够适用于广泛的硬件平台。 硕十学位论文第一章绪论 着色器( s h a d e r ) 设计的思想来源于早年p i x a r 设计的r e n d e r m a n 着色语言, 它是一种非交互的着色语言,它使用复杂的着色来为电影和商业制作高质量的计 算机动画。近年来,高级渲染语言迅速发展,主要有m i c r o s o f t 的h l s l ( h i g h l e v e l s h a d i n gl a n g u a g e ) ,n v i d i a 公司的c g ( cf o rg r a p h i c s ) ,和o p e n g l 的g l s l ( o p e n g ls h a d i n gl a n g u a g e ) 。尽管还未形成统一的绘制语言,但对这些语言的研 究和应用给用户提供了直接基于a p i 编程的较为方便和高层次的工具。文献 2 9 】 给出了c g 设计过程中需考虑的有关因素,并与其他几种实时绘制语言进行了充 分的比较。由于c g 同时支持o p e n g l 和d i r e c t 3 d ,并且语法形式和基本原理与 c 语言非常类似,所以本文选择c g 作为可编程硬件部分的开发语言之一。c g 编 译器将c g 着色语言程序翻译成o p e n g l 的底层汇编语言。图1 1 说明了c g 工 作流。 图卜lc g 工作流 编译j 优化 底层汇编代码 内部机器码 有关c g 的详细资料,请参见 2 6 】和【3 0 】。下面简单介绍c g 语言的特点: ( 1 ) c g 代表“用于图形的c 语言”是由n v i d i a 公司推出的图形硬件高级着色 语言,专门为图形处理器设计,正式的1 0 版本于2 0 0 2 年1 2 月推出。c g 的核 心是c g 运行库( c gr u n t i m e ) ,是一个用来加载、编译、操作和设置c g 程序在 g p u 上执行的标准子程序集合。c g 编译器则负责将c g 程序编译成对应的低级 着色语言。 ( 2 ) c g 代码是以独立的源程序文件的形式出现,以对象的形式嵌入三维图形 程序,依赖于o p e n g l 或d i r e c t 3 d 运行。与普通c 程序类似,有入1 3 函数( 不特 硕士学位论文 第一章绪论 别指定默认为m a i n ) ,入1 :3 参数分为两类,一类是可变参数,包括顶点位置、法 线、纹理坐标等,对于每个顶点这些相关的输入都不一样,还有一类是恒定参数, 包括视点位置、变换矩阵等,在程序的整个运行过程中,一般是不变的。c g 程 序的返回结果也有两种方式,一种是在输入参数中直接定义输出变量,在变量前 加o u t 作声明,计算结果存入这些变量,还有一种是直接在程序中定义输出变量, 用r e t u m 语句返回。 ( 3 ) 编写c g 程序需要分别编写顶点和片段程序,并且也要分别编译他们。 因为各个厂家的产品对g p u 的支持程度不同,不像c p u 那样统一,所以,并不 是用c g 写的所有程序都可以在任意的一个图形处理器上被编译执行,c g 包含了 一个硬件配置的概念,即p r o f i l e ,当编译一个c g 程序的时候,必须指定一个 p r o f i l e ,每个p r o f i l e 是c g 所有特征的一个子集,对应一种特别的硬件和图形a p i 的组合,决定了编译器使用什么低级着色语言作为目标语言。这种设计看来会产 生一些限制,但是它并不是c g 造成的,而是当前图形处理器的限制造成的,当 g p u 的功能发展的越来越全面的时候,p r o f i l e 也会变的不重要了。 ( 4 ) c g 语言的另一个特别之处就是采用了语义绑定( b i n d i n gs e m a n t i c s ) 机制, c g 中预定义了一些专有名词,对应底层硬件中的一些输入输出寄存器,要获得 寄存器的值,必须使用绑定。绑定语义出现在变量声明时,跟在变量的后面,如 下定义的最简单的结构体: s t r u c tv e r t e x o u t p u t f l o a t 4p o s i t i o n :p o s i t i o n ;f l o a t 4c o l o r :c o l o r ;) ; 定义了一个绑定到位置寄存器的四元浮点型向量p o s i t i o n 和一个绑定到颜色 寄存器的四元浮点向量c o l o r 。 ( 5 ) c g 支持向量和矩阵类型的数据,其标准库中包含大量的内建数学函数 ( a b s 、d o t 、e x p 、l o g 、m u l 1 ,大大简化提高了g p u 的数据处理效率。 其他的语义和语法相对于普通c 来说基本大同小异。利用高级语言实现不 依赖于具体硬件( g p u ) 及计算平台的编程自然是使用g p u 的努力目标。为此目 标在绘制语言( s h a d i n gl a n g u a g e ) 和实时绘制语言方面所作的研究一直在进行之 中。 1 3 论文的主要研究内容与章节安排 本文主要研究基于g p u 的高质量实时体绘制算法。首先简要介绍g p u 的相 关知识,然后较全面地介绍及实现现有的主要基于g p u 的直接体绘制算法。最 后分析当前直接体绘制算法中存在的问题,在第4 章与第5 章从速度和质量上提 出改进方法。全文共分为6 章,章节安排具体如下: 硕士学位论文第章绪论 第1 章是绪论。介绍了软件类的体绘制算法,分析了三维体绘制技术面临的 主要困难,对图形加速硬件和g p u 编程语言的发展作了一个历史性的回顾与介 绍,阐述了g p u 对三维实时绘制技术的重要意义。 第2 章详细阐述图形硬件的相关知识,其能提供加速技术的原理及存在的局 限性。同时讨论了传统图形流水线的基本理论和实现技术。研究了可编程图形流 水线中两个核心环节,包括顶点处理器与片段处理器。 第3 章讨论体绘制理论及基于g p u 体绘制算法,重点综合分析评价了基于 g p u 的体绘制算法,给出了实现算法后的相关结果与讨论 第4 章根据体绘制中负载不平衡的问题,针对大规模数据集提出基于顶点编 程的高质量体绘制算法。参照给出的实验结果和分析比较,可知该算法能明显地 提高绘制图像时的速度。 第5 章高质量的三维纹理体绘制算法较大地提高了绘制图像的质量,最后给 出了实验结果和分析比较。 第6 章对本文进行总结并展望了有待进一步深入的研究工作。 硕士学位论文第二章可编程图形硬件概述 第二章可编程图形硬件概述 2 1g p u 加速原理和编程模型 2 1 1g p u 加速原理与特征 图形处理的并行性与可编程功能一直是图形硬件发展所追求的目标。g p u 的主要作用为通过流水化与并行化两大加速手段,消除图形处理流水线中的效率 瓶颈,并接管原来由c p u 驱动的图形处理流水线。g p u 中的流水线技术与工厂 里的流水线作业原理上类似。假设生产装配一台汽车需1 0 个时间单元,则分成 1 0 个流水线阶段,每个阶段对应一个时间单元,过一定时间那么一条流水线每 一个时间单元就可以生产一辆汽车。毋庸置疑,理想状态的流水线生产模式比普 通的串行方式快十倍。 为提高流水线的速度,可将任务划分成更小的单元,这样流水线的级数也相 应增加。相比于普通c p u 只有几十级的流水线而言,g p u 却有几百级的流水 线,如g e f o r c e 3 的流水线有8 0 0 个处理阶段。g p u 能有这么多流水线级数也是 它与c p u 的不同架构决定。利用图形硬件来做通用计算和体绘制主要原因是提 供了加速功能,加速的动力来自其具有的如下优势【3 1 3 2 】: ( 1 ) g p u 程序中分支语句很少,早期g p u 甚至不支持动态分支语句。因此, g p u 流水线级数的加深大大提高了整体性能。 ( 2 ) 一定的并行性。尽管g p u 指令执行速度很快,但访问内存时存在性能瓶 颈,因此出现存取内存数据相关指令时,整条流水线会出现长时间停滞。为解决 此问题,使流水线保持繁忙状态,设计者往g p u 中引入了多线程机制。并行性主 要是通过多个渲染管道和r g b a 4 个颜色通道同时计算实现的,此外一个时钟周 期内可同时获取两个甚至更多纹理。顶点程序的多个渲染管道一个时钟周期内可 并行处理多个顶点,对于像素程序同样如此。相比较于并行机,图形卡提供的并 行性虽然很弱,但它是在格外廉价的基础上为许多应用提供了一个很好的并行方 案,尤其是对于图形本身的应用来说。 ( 3 ) 高密集的运算。由于图形卡内部的内存接1 :3 位宽大于c p u 上的位宽,如 g e f o r c ef x 的内存位宽达2 5 6 位,显然高于c p u 上3 2 位的位宽,这大大提高了整 个计算的带宽。与c p u 相比,g p u 更适用于传输大块的数据,虽然c p u 上6 4 k b 的c a c h e 也可加速整个运算过程,但相对于图形卡显存来说是微乎其微,现在的 显存大抵都在6 4 m b 以上,由此可见一斑。 硕士学位论文第二章可编程图形硬什概述 ( 4 ) 减少了g p u 与c p u 间的数据通信。尤其是将g p u 应用于针对图形生成 的时候,不再需要在c p u 与g p u 之间进行多次数据交换,从而可以将c p u 解放出 来做其他的事情。这些优势使得g p u 比c p u 更适用于流处理计算,因此g p u 也被 认为是一个s i m d 的并行机或者流处理器1 3 1 1 ,可用于处理大规模数据集,使应 用得到加速。相比之下,c p u 本质上是一个标量计算模型,而且计算单元偏少, 主要针对复杂控制和低延迟而非高带宽。 目前最新的可编程图形硬件带来了一些新的特征,概括起来有以下几个方面 1 3 2 3 3 】: 1 ) 在顶点级和像素级提供了灵活的可编程特性; 2 ) 在顶点级和像素级运算上都支持i e e e3 2 位浮点运算,可进行高精度的绘 制; 3 ) 完全支持4 元向量的数据格式( 齐次坐标,法向等) ,方便了图形程序的设 计与开发; 4 ) 具有高带宽的内存传输能力,具备强大的数据吞吐能力: 5 ) 支持多遍绘制的操作,避免了c p u 与g p u 之间的多次数据交换; 6 ) 支持绘制到纹理的功f l 皂( r e n d e r - t o t e x t u r e p b

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论