(计算机应用技术专业论文)基于cell宽带引擎的娱乐平台的设计与实现.pdf_第1页
(计算机应用技术专业论文)基于cell宽带引擎的娱乐平台的设计与实现.pdf_第2页
(计算机应用技术专业论文)基于cell宽带引擎的娱乐平台的设计与实现.pdf_第3页
(计算机应用技术专业论文)基于cell宽带引擎的娱乐平台的设计与实现.pdf_第4页
(计算机应用技术专业论文)基于cell宽带引擎的娱乐平台的设计与实现.pdf_第5页
已阅读5页,还剩55页未读 继续免费阅读

(计算机应用技术专业论文)基于cell宽带引擎的娱乐平台的设计与实现.pdf.pdf 免费下载

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

文档简介

基于c e l l 宽带引擎娱乐平台的设计与实现 摘要 随着微电子学科的进步,在单个芯片中集成多个运算和控制核心的多核处 理器已经问世。在这种条件下,如何充分利用芯片上的多个核心设计出高效率 的算法和程序,是当前产业界和学术界普遍关注的问题。在各种已经商用的多 核处理器中,i b m 的c e l l 芯片具有功能强大,价格低廉的特点,本文利用该芯 片的超强并行流数据处理能力设计了一套较完善的娱乐平台,该平台主要包括 图形学子系统与图像特效子系统两大模块。 图形学子模块的主要目标有两个:实时和真实。实时,指的是希望图片的 生成速度能达到实时的要求,在严苛的速度要求下可以放弃一些渲染图片的真 实性。真实,指的是在几乎完全不考虑时间要求的情况下,按照光学规律生成 几乎可以与照片的真实感媲美的图片。但是,由于计算机硬件的限制,上述两 个要求往往是矛盾的,只能根据应用的场合和领域进行平衡,而c e l l 芯片的出 现则可以大大缓解这一对矛盾,本文将利用该芯片的非凡并行处理能力加速光 线追踪算法,达到了较高的渲染效率。 除了图像学子系统以外,本系统还提供了图像特效模块。目前完成的主要 是图像抽取和图像补全两大模块。 图像抽取( i m a g em a t t i n g ) 指的是图像的前、背景分离,即根据有限的用户输 入,确定图像中用户真正感兴趣的区域。对于单个像素来说,每个像素的颜色 都可以理解为背景颜色和前景颜色的线性组合,图像抽取的目的就是要确定每 个像素点上的前景颜色和背景颜色) 以及线性组合的系数( 口) 。 图像补全技术指的是在输入一张原始图片及其中未知区域位置的情况下确 定未知区域每个像素的颜色,本文将提出一个自动找出图像结构的方法,更加 自动化的实现图像未知区域的补全。 关键字:多核处理器、c e l l 处理器、图形学系统、视频图像处理系统、图像 补全、图像抽取 中图分类号;t p 3 9 1 7 基于c e l l 宽带引擎娱乐平台的设计与实现 a b s t r a c t a b s t r a c t w i t ht h ep r o g r e s so fm i c r o - e l e c t r o n i c s ,s i n g l ec h i pm u l t i p r o c e s s o rh a sc o m e i n t ot h em a r k e t u n d e rs u c hs i t u a t i o n b o t l li n d u s t r ya n da c a d e m yi si n t e r e s t e di n d e s i g n i n gm o r ee f f e c t i v ea l g o r i t h ma n ds o f t w a r e a m o n ga l lt h e s es i n gc h i p m u l t i p r o c e s s o re n t r i e s i b mb r o a d b a n de n g i n ei sap o w e r f u lb u tr e l a t i v e l yc h e a p c h o i c e s oi nt h i sp a p e r , w ew i l li n t r o d u c ea l le x t e n s i b l ee n t e r t a i n m e n tp l a t f o r m u t i l i z i n gt h ep o w e r f u lp a r a l l e ld a t ap r o c e s s i n ga b i l i t yo fi b mc e l lb e t h ep l a t f o r m i sc o m p o s e do f t w os u b s y s t e m s :g r a p h i c ss y s t e ma n di m a g ep r o c e s s i n gs y s t e m t h e r ea r et w om a i np u r p o s e so f t h eg r a p h i c ss u b s y s t e m :r e a lt i m ea n dr e a l i t y t r a d i t i o n a l l yt h e s et w or e q u i r e m e n t sc o n f l i c tw i t he a c ho t h e ra n dw ec a no n l y b a l a n c eb e t w e e nt h e s et w or e q u i r e m e n t sa c c o r d i n gt oc e r t a i na p p l i c a t i o n s w i t ht h e a p p e a r a n c eo fc e l lb e ,s u c hac o n f l i c t i o nc a l lb eg r e a t l yr e s o l v e d i nt h i sp a p e r , w ew i l la c c e l e r a t er a yt r e e i n ga l g o r i t h mb a s e do nc e l lb e t h em a i np u r p o s eo fi m a g ep r o c e s s i n gs u b s y s t e mi st ot r a c kt h em o t i o no ft h e u s e ra n dc a p t u r eu s e r sm o t i o nw i t h o u tm a k e r m e a n w h i l et h es u b s y s t e ma l s o p r o v i d e sm a n yo t h e ri m a g ee f f e c t sm o d u l e ,s u c h a si m a g em a t t i n ga n di m a g e c o m p l e t i o n i m a g em a t t i n gm e a n se x t r a c t i n gaf o r e g r o u n do b j e c tf r o ma l li n p u ti m a g eb a s e d o nl i m i t e dh s e a i n p u t w ea s s r m et h ec o l o ro f e a c hp i x e li st h el i n e a rc o m b i n a t i o no f f o r e g r o u n dc o l o ra n db a c k g r o u n dc o l o ra n dt h ep u r p o s eo fi m a g em a t t i n gi s t o d e t e r m i n et h ef o r e g r o u n dc o l o r ( f ) ,b a c k g r o u n dc o l o r ( b ) a n dl i n e a rc o m b i n a t i o n p a r a m e t e r ( a ) f o re v e r yp i x e li n s i d ea ni m a g e i m a g ec o m p l e t i o nm e a n sd e t e r m i n i n ge v e r yu n k n o w np i x e t sc o l o ro fa ni n p u t i m a g e w ew i l li n t r o d u c eam e t h o do ff i n d i n gt h es t r u c t u r eo fa ni m a g es oa st o c o m p l e t ead a m a g e di m a g em o r ea u t o m a t i c a l l y k e yw o r d s :s i n g l ec h i pm u l t i p r o c e s s o r , c e l lb r o a d b a n de n g i n e , g r a p h i c s s y s t e m ,v i d e o i m a g ep r o c e s s i n gs y s t e m ,i m a g ec o m p l e t i o n r e p a i r i n g ,i m a g em a t t i n g s u b j e c tc l a s s i f i c a t i o n :t p 3 9 1 7 i i 论文独创性声明 本论文是我个人在导师指导下进行的研究工作及取得的研究成果。论文中除 了特别加以标注和致谢的地方外,不包含其他入或其他机构已经发表或撰写过 的研究成果。其他同志对本研究的启发和所做的贡献均己在论文中傲了明确的 声呢并表示了谢意。 作者签名j 丞磊疆 论文使用授权声明 日期骅f f 露 本人完全了解复旦大学有关保留、使用学位论文的规定,即:学校有权保留 送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部分 内容,可以采用影印、缩印或其他复制手段保存论文。保密的论文在解密后遵 守此规定。 名:划组生嗍班日 基于c e l l 宽带引擎娱乐平台的设计与实现 引言 第一章引言 1 1 背景介绍与系统整体架构 自世界上第一块微处理器芯片i n t e l4 0 0 4 于7 0 年代问世以来,芯片上集成 的晶体管数量一直遵循摩尔定律的速度发展,即每1 8 个月左右,主流芯片上集 成的晶体管数量翻一翻,性能提高一倍,价格便宜一半。在这个大趋势下,不 仅芯片的运算速度和核心频率迅速提高,而且其功能也日趋复杂。随着单个芯 片内集成的晶体管数量的迅速提高,人们发现每个芯片中仅有一个控制运算核 心往往并不合适,放入更多的计算核心才能更有效地发挥芯片上大量晶体管的 作用,因此目前微处理器的主要方向发展为单芯片多核处理器,其中比较有代 表性的有l b mc e l lb r o a d b a n de n g i n e ,i n t e lc o r e2p r o c e s s o r , a t h l o n 6 4x 2 , m e r r i m a c 流处理器等等。 从芯片的硬件特点上来说,目前的单芯片多核处理器可以分为同构多核处 理器和异构多核处理器两类 3 6 】。同构多核处理器( 如i n t e lc o r e2p r o c e s s o r ) 指的是在一个芯片内集成了多个同构( 或者相同) 的处理核心。究其本质,这种 多核处理器实质上是将以前的对称多处理器( s m p ) 集成到同一个芯片中,每个 处理核心的工作负载完全相同。这样做最主要好处在于设计简单,而且能够兼 容以前的程序和软件,程序设计人员不需要太大的改动就能方便的将单核多芯 片的程序移植到多核单芯片上而获得软件性能和运算效率的提升。 异构多核处理器则是指在一个芯片内部集成了多个不同指令集和体系结构 的处理器核,不同结构的处理器核负责处理不同类型的操作。对于开发人员来 说,这种结构的处理器的开发难度比较大,为了充分发掘芯片的潜力,程序编 写人员必须了解每种处理核心的特点和指令集。但是,利用异构多核处理器带 来的好处也是十分明显的,由于每个异构核心有不同的针对性,在同样的时钟 频率下,这种处理器比同构多核处理器能发挥出更高的性能。 i b mc e l lb e 高性能处理器就是这样一款功能强大而价格却比较低廉的异 构多核处理器。由于i b m 推出c e l l 平台的时间很短,因此目前基于c e l l 芯片 的大多数软件和程序并没有完全挖掘出其强大的并行处理能力。在这一背景下, 我们在c e l l 平台上设计并初步实现了一套扩展性比较好的娱乐平台,图1 1 展 示了该系统的整体框架。 基于c e l l 宽带引擎娱乐平台的设计与实现 引言 尽弑赫赢磊日阿丽霜硎精面雨翮同而嗣嗣 l t r a n s f o r m ji c o n v e r s i o * a il k c 6 ll 壁删垃坠j 图1 1 :c b e p 系统框图 本系统主要分为两个子系统,图形学子系统以及图像特效子系统。图形子 系统的功能是发挥c e l l 的并行处理能力将图像尽量快速、真实的渲染出来:图 像特效子模块的主要功能是为用户处理图像提供一些比较有用的工具。 图1 2 和图1 - 3 分别展示了这两个子系统的整体框图。 圈匿圆 圈圈 基于c e l l 宽带引擎娱乐平台的设计与实现 引言 图i 2 :图形学子系统的整体框图 该子系统主要分为实时图形学模块,照片级真实感图形学模块以及场景管理模块。实时 图形学模块主要负责与用户的交互、物理系统以及角色动画等需要实时生成数据的功能;照 片级真实感图形学主要负责场景的离线渲染,其结果还可以为实时图形学模块进行预渲染或 者场景的光学参数采集;场景管理模块则注重于整个场景的构建以及场景中物体和渲染图元 的管理。 基于c e l l 宽带引擎娱乐平台的设计与实现 引言 :瓦= j 圈圜 r 1 面;1l 即蕊面硼 l 堕些型刈睦垒笆型婪苎 :围固型 二圈圈。矧 l l a e m o n a 图1 3 :图像特效子系统的整体框图 图像特效子模块的主要功能是为用户处理图像提供一些比较有用的工具, 从而使整个娱乐系统的功能更为完善。该子系统的功能目前尚未完全实现。目 前完成的主要是图像抽取以及图像补全这两个子模块。 本娱乐平台的硬件系统是基于c e l l 宽带引擎的游戏主机。该主机的核心 c p u 为一片c e l l 多核芯片,内存为2 5 6 m 高速r a m b u s 内存,系统的硬件平台 如图1 4 a 所示。该系统运行的操作系统为y e l l o w d o gl i n u x5 ,其登录界面如图 曲 图1 4 :c e l l 主机与y e l l o wd o gl i n u x 4 b 1 基于c e l l 宽带引擎娱乐平台的设计与实现 引言 1 2 研究背景与基本概念 1 2 1c e l l 高性能处理芯片 c e l l 高性能处理器研发的最初目的是为了提高游戏终端和高清电视等多媒 体设备性能的。但是c e l l 的应用并不仅限于此,i b m 宣称c e l l 是“片上超级计算 机”( s u p e rc o m p m e ro nc h i p ) 【3 7 。 该芯片内含九个共享内存的处理核心。每个c e l l 芯片由一个6 4 位p o w e r p c 处 理器核一t l , ( p o w e r p cp r o c e s s o re l e m e n t ,p p e ) 和8 个s i m d 型向量协处理器核 ( s y n e r g i s t i cp r o c e s s o re l e m e n t , s p e ) 构成。这些协处理器互相之问都有连接,并通 过总线连接到外部设备和主存储器。其总体框架如下图所示: 曰日曰固 i 囱囱由由 图1 5 :c e l l 芯片整体结构 从上图可以看到,每个c e l l 芯片包括: p p e ( p o w e r p cp r o c e s s o re l e m e n t ) 一p o w e r p c 处理器单元。这是该c p u 的 主处理核心,其中包括一个6 4 位p o w e r p c 架构的r i s c 核以及一个完整的虚拟 内存管理子系统。p p e 的主要功能是控制密集型操作,例如运行操作系统、管 理系统资源、控制其它核心的调度等。 s p e s ( s y n e r g i s t i cp r o c e s s o re l e m e n t s ) 一协处理器单元。从图1 5 可以看出 这种类型的核心一共有8 个。由于制造工艺上的原因,用户只能用这8 个核心 中的6 个。s p e 设计的主要目的是进行数据密集型操作。每个s p e 都由一个 r i s c 的s i m d 核和一个2 5 6 k 的局部内存空间组成。s p e 与主内存的数据交换 是通过异步d m a 传输完成的。 e i b ( e l e m e n ti n t e r e o n n e e tb u s ) 一单元连接总线。该总线连接了p p e 和每 个s p e 并与主存储器以及外部的i o 设备连接。e i b 的带宽是每个命令周期9 6 个字节,也能支持超过1 0 0 个s p e 和主存储设备的d m a 请求。 m i c ( m e m o r y i n t e r f a c e c o n t r 0 1 ) 一内存界面通道。该通道提供了e i b 与主 内存的接口。 基于c e l l 宽带引擎娱乐平台的设计与实现引言 b e i ( c e l l b r o a d b a n d e n g i n e i n t e r f a c e ) 一c e l l b e 宽带引擎接口。该接口的 主要功能是在e i b 和外部设备之间传输数据。 1 2 2 计算机图形学模块 如前文所述,本文系统的主要目的之一是实现一个比较完整的图形系统, 更快地生成具有真实感的图片。本节将简单介绍一下目前光学渲染技术的发展 情况。 计算机图形学的主要研究目标有两个,一是在没有时间要求的情况下,根 据光学原理生成更逼真、更自然、更真实、更接近于照片的图像,这一部分的 研究,被称为照片级真实感的计算机图形学( p h o t or e a l i s t i cg r a p h i c s ) 。另一个 则是在有实时性要求的条件下,如何利用现有的硬件尽量快速的生成具有一定 真实感的图片。 随着r a y - t r a c i n g 4 6 4 8 ,r a d i o s i t y 4 7 4 0 和p h o t o nm a p p i n g 【4 9 这三大真 实感图形学技术的出现,利用光的几何特性渲染出的图片已经非常接近真正的 照片了。著名的c o m e l lb o x 实验【4 5 】证明了利用计算机完全可以在有限的时间 内生成可以“欺骗”人的眼睛的图片。 虽然真实感图形学的发展已经能解决大部分光学模拟问题,并能生成非常 真实的图片了,但是算法复杂度都非常高,只能在有限的时间内生成图片,距 离实时的要求( 每秒2 0 帧以上) 相差甚远。在这种要求下,人们又发展了实时计 算机图形学,实时图形学的第一要求是生成图片的速度,在满足速度要求的情 况下再追求生成图片的质量。因此,实时图形学不会模拟场景中光的能量传播 过程,而是估计场景中每个可以见到的物体的光影情况,并在屏幕上将这个物 体“画”出来。 从上面的简单分析可以看出来,图形学的发展是计算机生成的图像质量的 “快”与“好”的平衡。随着多核处理器时代的降临,渲染的质量和速度这一 对矛盾已经大大缓解了。而本文的主要工作之一也正是利用高效且廉价的c e l l 宽带引擎加速光线追踪算法,从而更快地渲染出具有一定真实感的图片。 1 2 3 图像特效模块 为了更好的给用户提供视觉体验和娱乐效果,本系统也将提供一些对图像 进行特效处理的方法。目前已经完成的主要有图像抽取模块和图像补全模块。 所谓图像抽取,指的是根据有限的用户输入在图像中确定前景区域范围的 方法。目前主流的图像抽取方法主要是通过蓝幕或绿幕确定背景区域的方法。 6 基于c e l l 宽带引擎娱乐平台的设计与实现引言 也就是说,演员在蓝幕或绿幕前表演,计算机通过逐像素的比对找出目前演员 的位置。这种方法的主要优点是实现简单,但是其缺点也是非常明显的,由于 颜色渗透现象的存在,直接用这种方法找出的前景区域其边缘往往不是很光滑, 经常会有毛糙的边界出现,大大降低了该方法的效果。本文则将采用改进的 口一m a t t i n g 算法对自然背景图片进行前景的选择与抽取,达到了非常好的效果。 把图像的前景区域抽取出来以后,本文将利用图像补全的方法自动的将该 区域补全,从而实现将物体从图像中擦除( o b j e c tr e m o v i n g ) 的效果。 图像补全这个问题由来已久,从中世纪文艺复兴开始,就有专门人员从事 修复破损的古代图画的工作。但是,当时人们的做法是纯手工的,虽然很多时 候能够得到不错的效果,但是非常费时费力。 图像自动补全技术的研究始于2 0 0 0 年 1 】,当时的方法只考虑了图片中结构 信息,在未知区域不大的情况下能获得理想效果。但是,由于该方法忽略了图 片中纹理信息对视觉观感的影响,在未知区域较大的情况下,得出的图片的纹 理往往比较模糊( b l u r ) ,给人感觉比较不真实,同时由于该方法利用了欧拉方法 解偏微分方程的思想需要在每个未知像素上叠代,因此效率低下,速度较慢。 本文方法的主要想法是将结构信息与纹理信息结合起来。利用纹理合成技 术填补未知区域,从而产生视觉上比较可信的图片。纹理合成技术一直都是计 算机图形学研究的热点问题,近年来基于块( p a t c h ) 的纹理补全方法和图像修复 方法 2 7 】由于具有速度快,生成图片效果好的特点而得到广泛的应用,本文在 处理纹理补全这个问题时,利用的也是基于块的纹理补全方法,达到了较好的 效果。 1 3 本文的研究工作 本文的研究重点是基于c e l l 宽带引擎设计了一套较完整的娱乐平台,该平 台主要包括两个子系统。 1 ) 图形学子系统 本文在对光线追踪算法的主要性能瓶颈进行分析以后,设计了利用c e l l 宽 带引擎的强大并行处理能力对光线追踪进行加速的算法,提高了系统性能,达 到了较好的效果。文章还对比了光线追踪在各平台上的实现,给出了算法效率 的比较并分析了主要的问题。 同时本系统还在此基础上完成了角色动画,粒子系统以及织物模拟等模块, 丰富和完善了整个图形系统。 2 ) 图像特效子系统 7 基于c e l l 宽带引擎娱乐平台的设计与实现引言 本子系统目前主要完成了图像抽取和图像补全两大模块,该系统的主要研 究目标是更加自动化的将用户选定的前景区域去除。 本文解决图像抽取这一问题的主要方法是改进了口m a t t i n g 算法,使之更 适合于在图像补全之前帮助使用者确定前景区域。确定前景区域之后,图像补 全模块通过结构线的寻找、预测、补全以及纹理补全这几个步骤将前景区域无 缝、自然的从图片中去除,得到了较好的结果。同时本文还对比了这两个模块 在各个平台上的运行效率并进行了详细的分析。 1 4 论文结构 本文共分为六个章节,每一章的重要内容如下: 第一章节主要介绍了i b mc e l l 架构的主要特点,并且论述了在c e l l 平台上 加速光线追踪的主要优势。同时简单介绍了图像补全技术的发展背景,介绍了 本文的主要研究内容,最后给出了本文的正体组织形式。 第二章阐述了图形学子系统的整体设计和实现,分析了传统光线追踪算法 的优缺点,并设计了利用c e l l 强大的并行计算能力加速光线追踪的方法,同时 对比了在各平台上系统的运行效率。 第三章探讨了角色动画以及物理特效子系统的设计以及实现。 第四章介绍了图像特效子系统的整体设计以及图像抽取技术( i m a g em a t t i n g ) 的相关理论基础及具体方法。重点介绍了自然图像的图像抽取技术及其在图像 补全中的应用。 第五章着重讨论了图像补全模块的设计与实现,利用图像抽取的结果自动 将图像补全,给出了实验结果并对比了文章的方法在各个平台上的运行效率。 第六章是小结部分,对本文工作进行了总结。 基于c e l l 宽带引擎娱乐平台的设计与实现图形系统的设计与光线追踪技术 第二章图形系统的设计与光线追踪技术 从第一台有显示器的电脑诞生至今,人们一直努力利用计算机生成能够 渲染出非常接近真实世界的图片。随着计算机图形学的发展,如果不计较时间 的话,目前的照片级真实渲染( p h o t or e a l i s t i cg r a p h i c s ) 算法已经能够生成足以 乱真的图片了。 但是,图形学的发展总体来看一直是朝又快又好两个方向发展的。虽然目 前非实时渲染的结果已经非常令人满意了,但是由于硬件的限制,其生成图片 的速度还远未达到实时的要求,渲染一帧需要花费一两个小时甚至一两天时间。 为了平衡“快”和“好”这样一对矛盾,本文将利用c e l lb e 架构的超强并行 性对光线追踪算法进行加速。图形学子系统的整体框架如图1 2 所示,该子系 统的整体数据流如图2 1 所示。 图2 1 :图形学子系统的整体数据流图 9 基于c e l l 宽带引擎娱乐平台的设计与实现 图形系统的设计与光线追踪技术 2 1 图形子系统与光线追踪模块的整体设计 图形子系统主要包括如下一些模块:照片级真实图形学模块,场景管理模 块以及物理以及动画系统模块。 照片级真实图形学模块主要负责对场景进行离线渲染。本文的这一模块主 要利用c e l lbe 的并行处理能力提高光线追踪算法的运算效率,达到了比较好 的效果,本章接下来的部分将主要讨论这一问题。 场景管理模块主要负责管理整个场景的各种元素及物体,包括摄像机管理、 光源的管理以及物体的管理这几部分。 物理以及动画系统模块则主要提供场景中各种运动物体的模拟,主要实现 了角色动画模块以及火焰、布料模拟模块,这些元素的加入使整个场景更具可 信度,更真实,这一部分将在下一章节展开讨论。 本章讨论的重点是光线追踪模块,该模块在整个图形学子系统中的作用和 数据流如下图所示: 梦”掣。一、嚣瑶”一“孽“乎一一攀鬻! 孵# 搿搿蠡瓣 1 雾 m 哗 i t 一;il 。竺= _ h1 ”一咄一“l i 一k 麓:黧ll 蔫 i 蠡攒m m 删”“,宝 一髻鬟鏊纛盛蕊# 僦;# i 触。删鼎女藏攀鬟黝 i 薹 十一:| ! i 。丑一l 刻吣胁一t 【 i 未i i 量ol,一 一 摹牌。; 一i ljl - j 一m j 。“l 隆f 兰兰 二一x ii ;= 碧乡霉。找竺! n a g e r a e r a 小 ; “举= 寸卜1 rl h 7a r d d i 。一k 。 ? l 。一盘蒜 一“气il 图2 2 :光线追踪模块的整体数据流图 整体数据流程如下:关卡管理模块将整个场景的配置信息读入。其他一些 1 0 k 。 瓣 基于c e l l 宽带弓i 擎娱乐平台的设计与实现 图形系统的设计与光线追踪技术 模块( 下一章将主要介绍的角色动画等模块) 根据场景的配置信息将场景中物体 的几何信息( 通常为多边形面片) 和纹理信息传给场景管理模块。 场景管理模块根据场景的配置信息设置好场景中光源和摄像机的状态,并 根据这些状态调用光线追踪模块对场景进行渲染,最后将结果输出到屏幕上。 2 2 光学渲染背景介绍 为了获得比较真实的图片,首先必须对光的物理和几何性质有一定的了解 3 9 4 0 】。从光的物理性质来说,我们可以把每个发光物体理解为一个不断向外 辐射能量的辐射源,该辐射源向外发出的能量随着距离的增长而衰减;从光的 几何性质来说,从光源射出的每份能量都是以光子( p h o t o n ) 的形式射到空间中 的。当这样带有能量的光子“碰撞”到一个本来不发光的物体以后,根据这个 物体本身的属性,会有如下一些事情发生: 1 ) 如果该物体不是完全透光的,则物体会吸收一部分入射光的能量,也就 是说光在经过物体以后辐射的能量会大大减弱,如下图所示: 图2 2 :光透过物体以后,能量的衰减 2 ) 物体能够反射一部分入射光的能量。如果物体表面粗糙,则会向各个方 向反射能量( 漫反射) 。如果物体表面比较光滑( 如镜子) 则反射的能量主要集中在 镜面反射方向( 镜面反射) 。一般来说,物体反射的能量以镜面反射方向为主, 其他方向也有,其经验模型为l a m b e r t 公式:l p = l c o s 。,a 越大则越接近完 全镜面反射,a 越小越接近完全漫反射,如下图所示,左图为a = l 的情况,右图 为a = 2 的情况; 侈 蕊 侈 愈 图2 3 :随着入射光与物体法向量夹角的不同,出射光的能量也不同 基于c e l l 宽带引擎娱乐平台的设计与实现图形系统的设计与光线追踪技术 3 ) 如果物体有一定的透光性和厚度,并且光的入射方向不是物体法向量的 方向,则会产生折射现象( 因为光在物体中的传播速度和在空气中的传播速度是 s i n f c 不同的) 。折射现象遵循折射定理:= - - ( f r e s n e l 公式) ,其中i 为入射角, s l i l ,-y r 为折射角,c 为入射物质中的光速,r 为折射物质中的光速。 从上述分析可以看到,要“真正的”模拟光源辐射出的能量在整个场景中 的分布,就必须从光源出发去追踪其每根光线的“运动”。但是事实上由于光源 发出的光予绝大部分不会被摄像机感受到,因此这样做是没有意义的。我们只 需计算能够被摄像机感知到的光线就可以了。由于光传播路径的可逆性,我们 可以从摄像机出发,追踪光线的运动,这就是反向光线追踪算法的总体思路和 整体出发点。 2 3 反向光线追踪技术 为了得到摄像机真实感受到的光线,首先必须确定摄像机在空间中的位置 以及摄像机的观察角度,然后将摄像机栅格化,并追踪每个像素射出的光线到 底是什么颜色的。其具体步骤如下: 1 将摄像机成像平面栅格化为矩形的像素。从上面的分析可以知道,我们 的最终目的确定这些像素的颜色。 2 从每个像素点出发,引一根射线出来。 3 检查这根射线是否跟场景中的物体相交,如果有相交的话,则将最近的 交点记录下来,并转到第4 步。如果没有相交则将背景颜色赋给这个像素,转 到第2 步计算下一个像素。 4 如果该射线与场景中的物体相交,则计算交点p 的颜色。由于p 点就是 摄像机上像素的投影,因此p 点的颜色也就是摄像机上该像素点的颜色。根据 物体的性质,这个颜色通常由三部分组成。 如光源照射到物体上的能量。为了知道每个光源l ( 假设是点光源) 对p 点颜 色的贡献程度,从p 点出发连接一根到l 的射线( s h a d o w r a y ) ,并判断这根射线 是否跟场景中的物体相交,如果相交,则说明p 点处在l 的阴影当中,将背景 颜色加到p 的亮度上。如果没有相交,则利用光照模型计算光源l 对p 点颜色 的贡献程度并加到p 的亮度上。 b 如果物体具有反射性质,则从p 点出发,根据p 点的法向量以及当前光 线的方向计算反射光线的方向,并递归调用第3 步,确定反射光的颜色。 c 如果物体具有折射性质,则从p 点出发,根据s n e l l 定理,计算折射光 基于c e l l 宽带引擎娱乐平台的设计与实现图形系统的设计与光线追踪技术 的方向,并递归调用第3 步,计算折射光的颜色。 d 当光源照射下物体的颜色i i ,反射的颜色i f 和折射的颜色i r 都确定了以 后,将这三者根据预先给定的系数线性叠加起来。 基础光线追踪算法的效果图如下所示: a ) 单纯光照的情况b ) 添加了反射和折射以后 图2 4 :光线追踪结果 2 4 光线追踪算法的瓶颈及其加速 基础光线追踪算法是非常费时的,其主要的计算瓶颈是: 1 ) 基础光线追踪算法逐像素追踪光线在场景中的传播。由于图片中的像素 往往非常之多,因此非常费时。渲染一张1 0 2 4 7 6 8 ,做2 * 2 的反走样,即使只 跟踪初始光线和阴影光线,对每帧的渲染需要跟踪6 1 0 6 根光线。如果要达到 实时的要求,以最低要求每秒2 0 帧来计算,则每秒需要跟踪1 2 1 0 8 根光线。 其计算量非常惊人。 2 ) 场景需要渲染的图元和光线往往都非常之多,如果简单的一个个求交, 则往往会严重影响效率。 3 ) 计算光线与多边形的交点是非常费时的。假设光线的起始点为( x ,y ,z ) , i r x = x + t d x 光线的方向为( d x ,d y ,d :) ,则光线的参数方程为: 毋= y + 耐,( 其中f2o ) 。三角 i r z = z + 吐 基于c e l l 宽带引擎娱乐平台的设计与实现图形系统的设计与光线追踪技术 形三个顶点为( x l ,y 1 ,z i ) ,( x 2 ,y 2 ,z 2 ) 和( x 3 ,y 3 ,z 3 ) ,则三角形内每个定点都可以用三个 顶点坐标线性表出: f 巧= 嵋毛4 - w e x 2 4 - ( 1 一w l w 2 ) x 3 耳= w 1 m 4 - 奶+ ( 1 一w l w 2 ) y , ( w l ,1 一w l w 2 【o ,1 】) a 【巧= w i 毛+ w 2 2 24 - ( 1 一叫一心) 乃 这样计算光线与该三角形交点问题转化为求解三元一次方程: ix + t d , = w 1 五4 - w 2 x 2 + ( 1 一w l 一心) 恐 x + t d , = m m + w 2 y 2 + 0 - w , 一w 2 挑,( 其中三个未知数满足f o ,w l w 2 ,1 一嵋一w 2 【o ,1 】) 【z + t d , = w :1 4 - 乙+ ( 1 一w 1 一w 2 ) z 3 对于大量的光线和三角形应用上述方程往往需要耗费大量的时间。 下面针对这三个主要问题提出各自的解决方案,以求尽量提高系统效率: 1 ) 针对屏幕像素非常多的问题,本文主要的解决方法是利用c e l l 芯片的超 强并行计算能力,将整个屏幕分为六个区域交给六个s p u 分别进行计算。具体 的实现是第n 号s p u 只计算6 * n 行的像素值。这样理论上讲,整个图像的渲染 速度将提高6 倍。但实际实现过程中,我们发现并没有达到这样的效果,后文 会详细分析原因。 2 ) 针对场景中存在大量渲染图元这个问题。解决这一方法的主要途径是构 建层次结构,例如b s p , o c tt r e e 等等,将对图元的查找过程由o o d 提高到 o ( 1 0 9 2 b 0 ,以提高效率。 3 ) 针对跟踪过程中有大量光线的问题。目前主要方法是利用光线束( r a y p a c k e t ) 的方法 5 1 1 ,每次处理一束光线而不是一根,从而提高跟踪的效率。本 文则将利用z - b u f f e r 方法进行预处理,从上文的分析可以看出,光线跟踪的真 正目的是要知道每根光线最先接触的是哪个面元。从这个思路出发,每次真正 做跟踪之前,首先将场景中所有的多边形投影、光栅化到屏幕上并根据其与屏 幕的距离排序,这样在真正渲染过程中,就能大大提高每根光线的跟踪速度。 2 5 光线追踪的实现以及渲染流水线 上面的讨论针对的是在场景已经构建完毕的情况下,如何渲染出一幅图像。 本文利用了渲染流水线的想法使整个场景的构造更加模块化。整体的流水线如 下所示: 1 4 基于c e l l 宽带引擎娱乐平台的设计与实现图形系统的设计与光线追踪技术 囝侣一图霍 凰圆圈 图2 5 :光线追踪流水线 图2 5 红框中的部分为场景构建步骤;绿框中的部分为逐像素光线追踪步 骤。 光照模型:本系统用的光照模型是c o o k - t o r r a n c e 模型【5 6 】。这种光照模型 比2 2 节中提到的经验公式j r 。= tc o s 4 ( 9 ) ( l a m b e r t 公式) 对模型表面光照的 模拟更为精致、细腻。c o o k - t o r r a n c e 光照模型不只考虑了模型表面上法向量 与光源向量的夹角而且还考虑了观察者的观看方向,因此这种模型能够模拟出 非常真实的高光效果。 同时,c o o k - t o r r a n c e 光照模型还考虑了物体表面的微平面的倾斜程度,用 微平面的平均斜率来衡量物体表面的光滑程度。通过调节参数,c o o k - t o r r a n c e 光照模型可以比较逼真的模拟塑料、金属等材质。 该光照模型与经典l a m b e r t 光照模型的比较如下图所示: a )” 图2 6 :l a m b e r t 与c o o k - t o r r a n c e 光照模型的比较力为l a m b e r t 光照模型b ) 为c o o k - t o r r a n c e 光照模型 可以看到,利用c t 光照模型以后,模型更有质感,而且有了高光效果。 基于c e l l 宽带引擎娱乐平台的设计与实现图形系统的设计与光线追踪技术 2 。6 光线追踪的结果及分析 针对图2 6 右图的场景,在2 * 2 反走样的条件下,本文在各个平台上运行 的时间对比如下表所示: 运行的c p u 内核屏幕分辨率渲染一帧的时间 p 4 1 5 04 0 0 * 4 0 07 0 5 s 8 0 0 * 8 0 02 9 0 3 s 1p p u4 0 0 * 4 0 04 3 6 8 s 8 0 0 * 8 0 0 1 6 3 5 s 1s p u4 0 0 * 4 0 06 4 9 s 8 0 0 * 8 0 02 0 4 5 s 6s p u4 0 0 * 4 0 01 7 5 7 s 8 0 0 * 8 0 06 8 9 s 袁2 1 可以看到,由于光线追踪算法具有很好的并行性,因此利用越多的s p u 计 算,则效率显著提高,但由于系统总线带宽的限制,用六个s p u 系统的效率也 只能提高一倍左右。 本文的计算的其他一些算例如下: 图2 7 :其他一些结果 这些结果在各平台上的渲染效率如下: 算例三角形p 4 1 5 gc e l l b e1 s p u c e l i b e6 s p u 数目 p l a n e + h e a r t2 3 1 33 5 6 4 7 s3 4 7 3 8 s 1 0 4 5 6 s s p h e r e + c a r 1 8 6 23 0 4 2 0 s2 9 8 4 3 s9 0 0 4 s p l a n e + c a r2 4 4 63 6 0 4 8 s3 5 6 1 9 s 1 1 3 7 6 s 从上表中可以看出,即使只用一个s p u ,由于其有较高的主频,因此也已 1 6 基于c e l l 宽带引擎娱乐平台的设计与实现图形系统的设计与光线追踪技术 经比普通的p 4 提高了一些。如果利用6 个s p u 加速,则可以使运算的时间降 到1 3 左右,大大提高了运行效率。 前文已经提到过,即使是利用了6 个s p u 仍不能将渲染效率提高六倍。经 过对c e l l b e 架构的仔细研究,我们发现这主要是由于每个s p u 必须通过d m a 方式经过系统总线才能访问主内存。可是,整个系统的e i b 总线是由四根顺 时针的9 6 位总线构成的,因此同一时刻往往只有4 个s p u 在真正的进行运算 而其他两个在等待e i b 总线,这样可以看到即使用了6 个s p u ,整体渲染的效 率只提高了2 3 倍左右。 1 7 基于c e l l 宽带引擎娱乐平台的设计与实现动画及物理系统的设计与实现 第三章动画及物理系统的设计与实现 在整个场景的构建和设计中,除了光学引擎模块以外还包括很多其他模块, 这些模块一起协同合作,构建起了一个更具真实感的虚拟世界。本章主要介绍 动画和物理模块的设计以及实现。 该子模块的整体结构以及数据流图如下所示: k * m m ls o h m o no f d i f f c r e m ,a lh l “ 一 h “国 l 图3 1 :动画及物理系统的整体框架 该子系统主要包括:角色动画模块,粒子系统模块以及布料模拟模块这几 部分。 3 1 角色动画模块 为了在虚拟世界中表现出真实人物的动作,本系统利用了骨骼动画来对虚 拟人物的动作进行模拟。 所谓的骨骼动画,指的是将角色的动作与模型的几何信息分离开,渲染的 时候实时计算出模型上各个顶点真正的几何位置。这样做相比传统的关键帧动 画的好处之一是能够大大减少动画模型的数据量,只需少量的骨骼信息就能控 制模型的动作,另一个重要的好处在于用户能够更好的控制模型的动作。 1 8 基于c e l l 宽带引擎娱乐平台的设计与实现动画及物理系统的设计与实现 3 1 1c a l l y 骨骼模型 随着计算机游戏行业的发展,骨骼动画已经是比较成熟的技术了,随之而来 诞生了很多不同的文件格式,主要有c a l l y 模型,微软的x 文件,m d 2 m d 3 文 件,m d l 文件等等。 本系统利用的骨骼动画模型格式主要是c a n y 模型。这是一种完全开源的骨 骼模型格式。对于一个完整的c a l l y 模型来说,主要有如下几种文件组成: 后缀描述 功能 c f g c a l l y 模型的配置文件系统通过读取该文件获得模型的几何模型文 件、骨骼模型文件以及骨骼动画文件的具体路 径和名称。 c m f c a l l y 模型的子网格信息这种类型的文件记录了c a l l y 文件的几何信息。 由于每个模型可能拥有不止一个子网格,因此 对于一个模型来说这种文件可能有很多个。每 个子网格文件描述了模型各个子部分网格的几 何信息。 c s f c a l l y 模型的骨骼信息文件这种类型的文件记录了骨骼的几何信息。每个 模型只有一个骨骼几何信息文件。 c a fc a n y 模型的骨骼动作文件这种文件类型记录了骨骼在每个时间点上的动 作情况。每个模型都可能有多个动作文件对应 于不同的动作。 x r f模型的材质信息文件记录了模型上各个子网格的材质以及纹理信 息。 表3 1c

温馨提示

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

评论

0/150

提交评论