(计算机应用技术专业论文)基于xorp的j2me+m3g类库的设计与实现.pdf_第1页
(计算机应用技术专业论文)基于xorp的j2me+m3g类库的设计与实现.pdf_第2页
(计算机应用技术专业论文)基于xorp的j2me+m3g类库的设计与实现.pdf_第3页
(计算机应用技术专业论文)基于xorp的j2me+m3g类库的设计与实现.pdf_第4页
(计算机应用技术专业论文)基于xorp的j2me+m3g类库的设计与实现.pdf_第5页
已阅读5页,还剩99页未读 继续免费阅读

(计算机应用技术专业论文)基于xorp的j2me+m3g类库的设计与实现.pdf.pdf 免费下载

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

文档简介

论文独创性声明 本论文是我个人在导师指导下进行的研究工作及取得的研究成果。论文中除 了特别加以标注和致谢的地方外,不包含其他人或其它机构已经发表或撰写过的 研究成果。其他同志对本研究的启发和所做的贡献均已在论文中作了明确的声明 并表示了谢意。 作者签名:坌全生瘟坠同期:盘丑:里笸! 3 论文使用授权声明 本人完全了解复旦大学有关保留、使用学位论文的规定,即:学校有权保留 送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部分内 容,可以采用影印、缩印或其它复制手段保存论文。保密的论文在解密后遵守此 规定。 作者签名导师签名 日期:0 翌旦z 。翌厶11 3 摘要 摘要 随着移动设备的普及和性能的不断提高,其运行的应用程序日趋多样化。同 时j a v a 作为跨平台、面向对象的语言而受到青睐。开放式运行平台( o r p ,o p e n r a n t i m ep l a t f o r m ) 是一个高性能的可控制运行环境软件,是用来研究垃圾收集 ( g a r b a g ec o l l e c t o r ) 和动态编译技术( j u s ti nt h n e ) 的开放资源研究平台,它 支持执行类型安全字节码,能够运行j a v a 程序。经过我们的改进,它已可以运 行j 2 1 v l e ( j a v a2m i c r oe d i t i o n ) 程序。o r l 就是i n t e l 公司在改进的o r p ( 也就 是x o r p ) 之上,遵循了a e a nr o o m 的原则,严格按照s u n 公司的j 2 m e 规范, 开发出的j 2 m e 类库。而上述两项,即o r l 和x o r p ,都是i n t e l 公司基金项目 “j 2 m ec l a s sl i b sw i t hs m a l lf o o t p r i n t , l o wp o w e ra n dh i 【g hp e r f o r m a n c eo n x s c a l ep r o c e s s o r ”的组成部分。 j a v a 技术中关于移动和手持设备上的应用属于j a v a2 袖珍版( j 2 m e ) 。其底 层是相对精简的虚拟机( v m ,v i r t u a lm a c h i n e ) ,上一层根据设备情况分为有限 连接设备配置( c l d c ,c o n n e c t e dl i m i t e dd e v i c ec o n f i g u r a t i o n ) 和连接设备配 置( c d c ,c o n n e c t e dd e v i c ec o n f i g u r a t i o n ) ,在配置之上的是更加细分的移动信 息设备描述( m i d p ,m o b i l ei n f o r m a t i o nd e v i c ep r o f i l e ) 。在本文讨论的是适用于 移动设备的j a v a 技术的移动三维图形类库( m 3 g ,m o b i l e3 dg r a p h i c s ) ,它是建 立在m m p 和c u ) c 基础之上的。 虽然最终的应用程序是使用在手机这样的设备上的,但是得益于j a v a 的平 台无关性,应用程序的开发工作就可以在相对容易操作的p c 上进行。本文的主 要工作就是在w i n d o w s 平台上设计并实现这样的一个三维图形类库。 本文做了大量的工作,主要解决了对m 3 g 类库的具体设计和实现,包括了 数据的存储、图形的变换、物体的建模以及对于动画的处理。 其中为了把图形的变换中最复杂的旋转变换和动画中对于插值计算的处理 统一起来,本文引入了一个四元组( q u a t e r n i o n ) 类,同时这也降低了图形变换 中所需要的计算量。 而对于用于描述物体的m e s h 类及其子类s k i n n e d m e s h 类等,本文也详细介 绍了这些类的功能,设计与具体实现,以及与之相关联的r a y i n t e r s e c t i o n 类的内 容包括了其具体算法和代码的重构等。 摘要 同时也阐述了动画相关类之问的关系,动画的模式,插值计算,世界时间与 序列时间的转化等问题。 完成以上的实现工作后,本文对m 3 g 进行了相对完整的功能测试和性能测 试。测试分两部分:一部分是运行公开的b e n c h m a r k ,用测试数据与s u n 公司的 w t k ( w i r e l e s st o o lk i t ) 进行比较;另一部分是运行多种多样的应用程序。同 时本文也描述了在性能优化过程中所采取的一些技术,例如纹理的缓冲,数据结 构的优化等等。 文章的最后,对全文的内容作了一个总结,然后讨论了现有实现的不足,并 在此基础上结合最新的技术潮流对今后进一步的研究开发工作进行了展望。 关键词 j 2 m e ,开放式运行平台,g c ,j r r ,虚拟机,有限连接设备配置,移动信息 设备描述,m 3 g ,b e n c h m a r k ,w r k 2 d ) s t r a c t a b s t r a c t d u et ot h ep o p u l a t i o na n dh i g l lp e r f o r m a n c eo fm o b i l ed e v i c e s ,t h ea p p l i c a t i o n s r u n n i n go nt h e s ep l a t f o r m sb e c o m em u c hm o r ev a r i o u s m e a n w h i l e ,a sa l lo b j e c t o r i e n t e da n dp l a t f o r mi n d e p e n d e n tp r o g r a m m i n gl a n g u a g e , j a v ai sg e t t i n gm o r ea n d m o 佗a t t e n t i o n a n do p e nr a n t i m ep l a t f o r m ( o r p ) i sah i g hp e r f o r m a n c ea n d c o n t r o l l a b l em i m i n ge n v i r o n m e n ts o f t w a r e ,w h i c hi sd e v e l o p e dt od os o m er e s e a r c h e s a b o u tg a r b a g ec o l l e c t o r ( g c ) t e c h n o l o g ya n dj u s ti n t i m e ( m ) c o m p i l i n g t e c h n o l o g y i ti sa no p e ns o u r c er e s e a r c hp r o j e c ta n di ts u p p o r t se x e c u t i n gt y p e s a f e b y t ec o d e sa n dr u n n i n gj a v aa p p l i c a t i o n s m o r e o v e r , o r pi sm o d i f i e db yt h ei n t e l c o o p e r a t i o na n dc a l ls u p p o r tj 2 m e ( j a v a2m i c r o e d i t i o n ) n o w w ec a l lt h em o d i f i e d v e r s i o no fo r pt h ex o r p o p e nr u n t i m el i b r a r y ( o r l ) ,w ew e r ed e v e l o p i n gd u r i n g t h el a s tf o u ry e a r s ,i st h ej 2 m eh b r a r i e si nc o n f o r m i t yw i t hs u nc o o p e a r t i o n s s p e c i f i c a t i o n sa n di tf o l l o w st h ep r i n c i p l eo fc l e a nr o o m o r li sb a s e do nt h ex o r p a n db o t ho ft h e ma r et h ec o m p o n e n t so fi n t e lf u n d i n gr e s e a r c hp r o j e c t , j 2 m ec l a s s i j b sw i t hs m a l lf o o t p r i n t ,l o wp o w e ra n dh i g hp e r f o r m a n c eo i lx s c a l ep r o c e s s o r t h et e c h n o l o g i e sa b o u tm o b i l ea n dh a n d h o l dd e v i c e si nj a v aa r e ab e l o n gt o j 2 m e i tr e l i e so nt h es i m p l i f i e dv i r t u a lm a c h i n e ( 旧,w h i c hu s u a l l yh a st h es i z eo f k i l ob y t e s a n dt h ec o n f i g u r a t i o nl e v e l ,w h i c hi s b a s e do nt h ev m , i sd i v i d e di n t ot w o p a r t s :t h ec o n n e c t e dl i m i t e dd e v i c ec o n f i g u r a t i o n ( c l d oa n dt h ec o n n e c t e d d g v i c ec o n f i g u r a t i o n ( c d c ) 舡t h e i rn a m e si n d i c a t e d , t h ef o r m e ri s d e s i g n e dt o s u p p o r tt h ec o n n e c t i o n - l i m i t e dd e v i c e sa n dt h el a t t e ri sf o rt h ec o n n e c t i o n - u n l i m i t e d d e v i c e s b e y o n dt h ec o n f i g u r a t i o nl e v e l , am o r ec o m p l e xp r o f i l el e v e l ,m o b i l e i n f o r m a t i o nd e v i c ep r o f i l e ( m i d p ) ,h a sb e e nd e f i n e dt oo f f e rm o r ef u n c t i o n s i i it h i s t h e s i s , t h em o b i l e3 dg r a p h i c e s ( m 3 g ) i so n eo ft h ej a v at e c h n o l o g i e sa p p l y i n gt o t h em o b i l ed e v i c e s a n di ti st h eh i g h e rl e v e lb a s e do i lt h em i d pa n dt h ec l d c t h o u g ht h el i b r a r i e sa r eu s e do nt h ed e v i c e s ,s u c ha sc e l lp h o n e s ,w e 锄e a s i l y d 0t h ed e v e l o p m e n to nt h ep e r s o nc o m p u t e rb e c a u s eo fj a v a si n p e d e n c eo fp l a t f o r m t h em a i nj o bi nt h i sp a p e ri st od e s i g na n di m p l e m e n tm 3 g o nt h ew i n d o w sp l a t f o r m i nt h i s t h e s i s ,w ed i dal o to fw o r k , m a i n l yf o c u s i n go nt h ed e t a i l so fm 3 g f i b r a r i e s d e s i g n i n ga n di m p l e m e n t a t i o n ,i n c l u d i n gt h es t o r a g eo fd a t a , t r a n s f o r m a t i o n , m o d e l i n go fo b j e c t sa n dt h ed i s p o s a lo fa n i m a t i o n a b s t 腊c t a tt h es a m et m e ,w ei n t r o d u c e daf u n c t i o n a lc l a s s :q u a t e m i o n i th e l p st o u n i f o r mt h ei n t e r f a c e so fd e a l i n gw i t hr o t a t i o n ,t h em o s tc o m p l e xo p e r a t i o ni n t r a n s f o r m ,a n dt h ec a l c u l a t i o no ft h ei n t e r p o l a t i o no ft h ek e y f r a m ev a l u e s i ta l s o r e d u c e dt h et i m ec o m s u m e db yt h ec a l c u l a t i o ni nt r a n s f o r m a t i o n a sf o rc l a s sm e s ha n di t ss u b c l a s s e s ,s u c ha ss k i i m e d m e s h ,e r e ,w h i c ha r et o d e s c r i b et h eo b j e c t si nt h es c e n e ,w ei n t r o d u c e dt h ef u n c t i o n so ft h e s ec l a s s e sa n dt h e d e t a i ld e s i g na n ds p e c i f i ci m p l e m e n t a t i o n a l s o ,t h ea l g o r i t h m sa n dr e f a c t o r i n go f c l a s sr a y i n t e r s e c t i o n , w h i c hi sc o n n e c t e dt ot h e m ,i si n c l u d e d w ea l s og i v eap i c t u r eo ft h er e l a t i o n s h i p so fa n i m a t i o n r e l a t e dc l a s s e sa n d d i s c u s s e dan u m b e ro fp r o b l e m s :t h em o d eo fa n i m a t i o n ,t h ei n t e r p o l a t i o no ft h e k e y f r a m ev a l u e s ,t h et r a n s f o r m a t i o nf r o mw o r l dt i m et os e q u e n c et i m ea n d5 0 o n a f t e rt h e i m p l e m e n t a t i o n , w ed i dt h et e s t i n g f o rm 3 g sf u n c t i o n sa n d p e r f o r m a n c e 1 n h et e s t i n gi n c l u d e st w op a r t s :s o m eb e n c h m a r k s c o m p a r i n gt h er e s u l t w i t hs u n sw i r e l e s st o o lk i tm r r 目;v a r i o u sa p p l i c a t i o n sa n dd e m o s a tt h es a m e p a r tt h i st h e s i s ,w ed e s c r i b es o m et e c h n o l o g i e sw eu s e dd u r i n gt h ep r o g r e s so f p e r f o r m a n c et u n i n g ,i n c l u d i n gv e r t e xc a c h i n g , m o d i f i e dd a t as t r u c t u r e s a tl a s t ,w ed i ds o m ec o n c l u s i o no ft h ep a p e r , a n dd i s c u s s e dt h er a w n e s so fo u r m 3 gw ea l s og a v e s o m ee x p e c t a t i o n sa b o u to u rr e s e a r c hc o m b i n e dw i t ht h er e c e n t a n dm o s tp o p u l a rt e c h n o l o g i e s k e yw o r d s j 2 m e ,o p e nr u n t i m ep l a t f o r m ,g a r b a g ec o l l e c t o r , j u s ti nt i m e ,o p e nr n n t i m e l i b r a r y , v i r t u a lm a c h i n e ,c o n n e c t e d l i m i t e dd e v i c e c o n f i g u r a t i o n , m o b i l e i n f o r m a t i o nd e v i c ep r o f i l e ,m o b i l e3 dg r a p h i c s ,b e n c h m a r lw t k 4 第一审0 i 吉 1 1 项目背景 第一章引言 本项目是和i n t c l 北京研究中心合作的i n t e l 公司的基金项目“j 2 m ec l a s su b s w i t hs m a l lf o o t p r i n t , l o wp o w e ra n dh i g hp e r f o r m a n c eo i lx s c a l ep r o c e s s o r ”,是一 个以x o r p 作为j a v a 虚拟机平台,在其上开发高性能j 2 m 巳类库o r l 的项目。 m 3 g 是j 2 m e 类库的一个扩展组成部分,它的重要功能是向j 2 m e 应用程序提 供丰富的三维图形接口。所以,0 i 也作为符合j 2 m e 规范要求的类库,必须对 m 3 g 所需要的三维图形能力提供全面和高效的支持,同时使得o r l 能够达到高 效、低耗的设计目标。 1 1 1j 2 m e 框架嘲 j a v a 自从问世以来,就得到了人们足够的重视。j a v a 的最大目标和特点,就 是。一次编写,到处运行”( w r i t eo n c e ,r u na n y w h e r e ) 的平台无关性,网络以及 多重设备间联网的机制显然对消费类电子和嵌入式设备领域是至关重要的软件 条件这个领域内的j a v a 标准就是j 2 m e 。在这个领域,内存从几百k 到几十 m ,从没有屏幕到w e b - t v ,c p u 从低功耗的嵌入式处理器到2 0 6 m h z 的r i s c 处理器,硬件条件差异是想当大的。这就是j 2 m e 的标准需要有不同的层次和类 别来适应这个复杂的领域。 针对这个领域丰富多彩的设备和彼此相差很大的计算能力及各种硬件条件, j 2 m e 首先根据最基本的一些特征把它们划分为两类。具备间断网络通讯能力的 个人移动信息设备:如手机,双向呼机,p d a 等等。有固定的不间断网络连接 的共享连接信息设备:如机顶盒,w e b t v ,支持i n t e r n e t 的屏幕电话,汽车娱乐 导航系统等等。第一类设备往往是个人的,移动的,使用电池,体积和功耗都 有限制,因此功能和计算能力有限。第二类设备一般是固定的,因此体积没有太 大的限制。由于固定,可以有持续的电源供应,因此功耗没有太大的问题,计算 能力相对充裕。计算能力是这两类设备最大的区别,对其上可能的应用和环境显 然有着本质影响,不同类别的设备不可能采用同样的j a v a 平台,必须分别定义。 所以针对这两大类设备的平台规范就是配置( c o n f i g u r a t i o n ) 第一类设备的 5 第章,j l 鲁 c o n f i g u r a t i o n 称为c l d c ( c o n n e c t e dl i m i t e dd e v i c ec o n f i g u r a t i o n ) ,第二类称为 c d c ( c o n n e c t e dd e v i c ec o n f i g u r a t i o n ,详见1 1 1 1 2 ) 。 属于同一类的设备计算能力是相似的,但是其它功能和条件还是有很大的区 别。作为j a v a 平台必须保证相容性,这就是必须舍弃所有的设备特殊性。因此, c o n f i g u r a t i o n 就是支持一组通用设备的最小j a v a 平台( j a v a 虚拟机和核心库) , 来保证不同设备间的平台相容性。在c o n f i g u r a t i o n 中舍弃了设备的特殊性来保证 j a v a 平台的相容性,但是仅有c o n f i g u r a t i o n 显然是不够的,特殊的具体设备其 独有的功能和硬件条件都没有得到支持。为此,在c o n f i g u r a t i o n 的基础上,根据 设备具体功能再进一步划分。功能的划分也就是其他硬件条件的划分,比如内存, 屏幕大小等等都属于功能的,因此同功能的设备的硬件条件都是非常相似的。描 述( p r o f i l e ) 就是针对每一类功能设备的特殊定义的与设备特性相关的a p i ,建 筑于c o n f i g u r a t i o n 之上,称为c o n f i g u r a t i o n 的扩展和补充。例如,m i d p ( m o b i l e i n f o r m a t i o nd e v i c ep r o f i l e ,信息移动设备描述,详见 3 1 1 4 ) 就是定义关于移动 信息设备的图形界面,输入和时间处理等等的a p i ,并且考虑到了移动信息设备 的屏幕和内存限制。 :习 i s t a n d i l e d i t i o n l i ( j 2 s e ) i - 一 冈 _ _ _ _ _ _ _ 一 i。o。p。t。i。o。n。a。l。i - 一 下1 - _ - _ _ _ _ _ _ _ 一 图1 - 1 :j 2 m e 框架图 j 2 m e 并不旨在提供一种新的语言平台,而是为手持设备和嵌入式设备提供 可行的j a v a 解决方案。在j 2 m e 推出至今九年多的时间里,j c p 制定了大量j 2 m e 的a p i 规范,并获得了广泛的认同和接受,使得这些技术能够以定义良好的方式 进入市场,从而在各个不同的手机平台之间达到高程度的兼容性和互操作性。图 1 - 1 描述了为手机平台设计的j a v a2m i c r o e d i t i o n 框架,此框架是基于j t w l ( j a v a t e c h n o l o g yf o rt h ew i r e l e s si n d u s t r y ,详见f 8 1 ) ,在j t w i 中规定:c l d c1 0 为最 小配置,m i d p2 0 和w m a1 1 为必须要求,m m a p l1 1 为条件要求。这里, m i d p2 0 规范被作为一个必不可少的规范要求纳入了标准手机j 2 m e 运行环境。 6 第一章0 i 占 j s r ( j a v a s p e c i f i c a t i o nr e q u e s t ) 1 8 4 ( 详见【6 】) 规范作为三维图形库被纳入了标 准手机j 2 m e 运行环境的可选项中。 1 1 2 x o r p 与o r l o r p ,即o p e ur u n t i m ep l a t f o r m ,是由i n t e l 公司开发的一个开放源码的研 究项目,它为即时编译( j u s ti nt i m e ,j r r ) 和垃圾回收( g a r b a g ec o l l e c t o r ,g c ) 的学术研究提供了一个开放的研究平台,允许使用者通过模块的替换来研究动态 编译和内存管理等相关技术。o r p 项目起初同g n uc l a s s p a t h 这一开放源码的 j a v a 类库实现相整合,能够在i a 3 2 架构的l i n u x 和w i n d o w s2 0 0 0 平台下运行大 多数的j 2 s e 应用程序,因此可以将其视作一种j a v a 虚拟机的实现。( 详见 【1 3 1 4 1 5 1 ) 2 0 0 2 年,i n t e l 公司基金项目“j 2 m ec l a s sl i b r a r i e sw i t hs m a l lf o o t p r i n t , l o w p o w e ra n dh i g hp e r f o r m a n c eo nx s c a l ep r o c e s s o r ”启动,目的是开发一套严格遵 循s u n 公司j 2 m e 框架规范的高性能j a v a 类库o r l 该项目以c l e a nr o o m 的原则进行,鉴于o r p 的诸多良好特性,特别是其开放性和模块化设计,在底 层j a v a 虚拟机的选择中,项目组在原o r p 的基础上针对移动手持设备这一平台 的特殊性,尤其是x s c a l e 平台上,做了功能模块上的替换和增减,从而获得了 一个符合j 2 m e 规范标准的虚拟机x o r p ( x s c a l eo r p ) ,作为开发j 2 m e 类库 的基本软件环境。 m i d p 2 o c i _ d c l 1 o j a v a 虚拟机 o 本地操作系统 0 无线设备 0 i l i i j 2 m e 框架( j t w l )x o r p o r l 具体实现 图1 2 :x o r p o r l 系统与j 2 m e 框架的对应关系 o r l ,即o p e nr u n t i m el i b r a r y ,是一套完全遵循s u n 公司j 2 m e 规范的j a v a 7 第一章i 占 类库,其开发过程分为三个阶段。第一阶段是针对j 2 m e 框架中的c l d c “配置”, 开发相应的j a v a 类库;第二阶段是在c l d c 的基础上,开发符合m i d p 。描述” 规范的j a v a 类库;第三阶段则是在c l d c m 1 d p 的基础上,进一步开发其他可 选包功能,包括了三维图形库( j s r - 1 8 4 ) 和多媒体库( j s r - 1 3 5 ) 。整个x o r p o r l 系统与前文介绍的j 2 m e 框架的关系如图l - 2 所示。 在当今硬件处理能力和软件技术飞速发展的环境下,人们对消费类电子产品 性能的要求越来越高,特别是三维图形的应用环境越来越普遍,效率的提升就意 味着可以大量地缩短时间,在时间就是金钱的信息社会中无论对公司企业机构还 是个人来说,出色的三维图形处理能力是有着极大的意义的。j 2 m e 平台以及 j 2 e e 和j 2 s e 最初并不具备三维图形特性,但随着应用需求的扩充,为其提供三 维图形处理功能的要求已日益紧迫。本文作者的主要工作就是基于已经实现的 x 0 l 冲和o r l ,对x o r p 进行修改并设计和实现j 2 m e 平台的三维图形类库。 1 2 本文的目的和应用意义 j a v a 语言本身就是作为一种在嵌入式设备上使用的编程环境在上个世纪9 0 年代初被提出的,然而当时由于受到硬件设备条件的限制,使得这一超前的概念 并没有被真正的广泛运用。直到j 2 m e 的推出,才令j a v a 的使用目标得到了回 归,特别是m d p c l d c 等一系列配置标准的出台,使得j 2 m e 成为移动手持设 备上首选的应用程序运行环境,很多应用研究也都采用了基于j 2 m e 的平台。包 括s u n 公司在内的各大公司都推出了各自的j 2 m e 解决方案,其中包括s u n 公司 的k v m 和h o t s p o t 、i b m 公司的j 9 等,都对j 2 m e 进行了功能上的完整支持。 然而随着对小型嵌入式设备应用需要的增长和硬件处理能力的增强,人们希望能 将在现有的多种设备上实现功能更加强大的三维图形效果。然而j 2 m e 作为一个 标准的类库环境,除了在功能上满足规范的要求之外,还必须在性能上得到用户 的认可。特别的,由于m i d p 引入了用户界面的支持,使得图形相关的性能成为 j 2 m e 解决方案中又一个重要因素,这也令诸如j b e n c h m a r k 这样的图形评价程 序称为了业界公认的j 2 m e 解决方案的性能评判标准。目前,对于j a v a 虚拟机 的研究也不少,例如 a 6 1 ,而其中也有对j 2 m e 虚拟机的研究,例如1 1 7 1 ,然而 对于j 2 m e 虚拟机图形能力的研究工作却并不多见,尤其是三维图形能力。 x o r p o r l 作为一个j 2 m e 解决方案,同样需要解决图形方面的相关问题, 其中有以下几点必须考虑的因素。 其一,已有的j 2 m e 解决方案,往往是商用目的,其底层的图形实现逻辑与 8 第一章0 i 击 虚拟机实现逻辑往往紧密结合不可分割,即源码不可见,所以无法使用其作为 x o r p 0 r l 中的三维图形解决方案。此外,即使可以直接使用其三维图形相关 模块对x o r p o r l 中的三维图形功能进行实现,换言之,可以单独购买其图形 相关的实现技术,在本项目的运用中也有诸多法律上的不便。 其二,j 2 m e 的规范性,提出了其整个解决方案在功能和性能上的双重要求, 使得普通的三维图形类库或者无法满足其功能上的需要,或者无法适应其性能上 的需求,例如j 2 m e 对底层虚拟机的存储期的大小和运行期的大小都有严格的限 定,作为虚拟机组成部件的三维图形类库也就必须受到这个限定的约束,而一个 通用的三维图形引类库统往往无法满足这一点。 其三,移动手持设备的环境非常多样,并没有桌面p c 那样统一的硬件和软 件平台,例如手机上流行的操作系统就包括了s y m b i a n 、嵌入式l i n e x 和 s m a r t p h o n c 等等( 详见【1 8 】) ,而且并没有哪一种占绝对主导地位。所以,作为 j 2 m e 解决方案一部分的三维图形类库,必须在不同的平台上针对不同的平台特 征进行性能优化,这通常需要对该部分拥有完全的掌握能力,换言之,一个自主 开发的三维图形类库能够更好的被优化以满足性能上的要求。 综合考虑了上述几个因素,本文作者和项目组成员在经过大量细致的调研 后,决定了设计并实现x o r p 0 r l 中三维图形类库。其设计目标是:第一,在 功能上完全满足上层应用程序的需求,使得o r l 能够符合m 3 g 规范;第二,在 性能上满足m 3 g 规范对时间和空间的双重要求;第三,能够与虚拟机简单的集 成并在多平台上快速的移植。同时,该类库作为一个完全自主开发的三维图形类 库,在针对特定平台的性能优化上也将做出有益的尝试,以期能保证o r l 高速、 低耗这一设计目标的实现。 1 3 本文内容和组织结构 本文首先介绍了背景和相关技术以及促成三维图形应用于j 2 m e 平台的缘 由,然后详细描述了m 3 g 类库细节和底层所采用的库,最后描述了在性能优化 和调试中所采取的一些技术。 第一章,介绍了j 2 m e 的发展现状以及x o r p ,然后给出了论文中使用到的 各种概念和各种相关技术,并阐述了j 2 m e 平台需要三维图形功能的必要性。第 二章首先对m 3 g 和底层所采用的库进行了介绍。 本文的重点在第五、第六和第七章。第三章详细介绍了m 3 g 中对于数据存 储和提取的相关类。第四章主要对在三维图形中重要的图形变换进行描述,同时 9 第一苹0 l 苦 也引入了一个辅助功能类,该类不仅在图形变换中被使用到,同时也在第六章描 述的动画中被运用。第五章描述了对物体的建模过程,以及和r a y l n e r s e c t i o n 相 关的部分。第六章则重点描述了m 3 g 中动画的处理方式。在文章的最后第七章 对在调试和优化过程中所采用的一些方法进行了介绍。 1 4 本章小结 本章从项目背景开始,介绍了整个j 2 m e 的框架,从j a v a 介绍到j 2 m e ,然 后介绍了c l d c 和m i d p 类库,以及与之对应的k v m 虚拟机,并简述了m 3 g 的意义。最后介绍了本文所要完成的工作,同时也给出了本文的结构和重点。 l o 蒴:辛m 3 g 类库和底层类库 第二章m 3 g 类库和底层类库 2 1m 3 g 类库简介 为了使j 2 m e 支持三维图形程序,多家公司和组织联合制定了m o b i l e3 d g r a p h i c s a p i ( m 3 g ,详见1 6 】) ,规范了三维图形程序的a p i 和框架。此框架是 建立在m i d p 的基础之上的。 m 3 g 共支持3 0 个公共类,其中以o b j c c t 3 d 类为绝大部分类的基类,在下 图2 - 1 中给出了用于描述物体建模到主要类之间的继承关系。对于继承自 t r a n s f o r m a b l e 类的子类都有自己的变换矩阵,只有n o d e 类及其子类可被显示出 来,即可以被渲染。c a m e r a 类用来设定观察视角和位置;g r o u p 类用来构建渲 染场景,可以包含一组n o d e 类的对象,并且可以嵌套;l i g h t 类用来设定光照效 果;m e s h 类用来构造物体,包括物体的顶点信息,颜色,和纹理( t e x t u r e 2 d ) 信息等;s p r i t e 3 d 类用来把2 维的图片显示在3 维空间中。如果要构建一个完整 的渲染场景,所有的信息都保存在w o r l d 类的实例中,在本文中有详细的描述。 s k i n n e d m e s h 类和m o r p h i n g m e s h 类用来刻画动画的物体,前者通过制定骨骼框 架,而后者通过起始和终止位置的线性插值来决定某一时刻的物体位置。其它的 类还包括背景,雾,材料,坐标变换等辅助类。 1 l 第一二章m 3 g 娄库和底层类库 图2 1 1 与建模相关类的继承关系 在这3 0 个公共类中,o b j e c t 3 d 作为以下1 4 个类的基类: 1 1 f o g 类:是a p p e a r a n c e 类中的一个组件,封装了雾化效果的各种属性, 定义如何根据对象相对于照相机的距离来为物体画阴影。 2 ) t r a n s f o r m a b l e 类:是类n o d e 和t e x t u r e 2 d 的抽象基类,定义了节点和 纹理的转换操作的公共方法。 3 ) m a t e r i a l 类:是a p p e a r a n c e 类中的一个组件,封装了用于光照计算的材 料的属性,光照的一些信息,包括颜色和亮度。其它用于光照计算的类 有:i j g h t ,p o l y g o n m o d e ,v e r t e x b u f f e r 。 4 ) p o l y g o n m o d e 类:是a p p e a r a n c e 类中的一个组件,封装了多边形属性的 信息,包括曲线规则以及选择模式:后前面的选择( c u l l i n g ) 、多边形 缠绕( w i n d i n g ) 、光照计算、透视校正和阴影的设置等。后前面的选择 决定了多边形的哪一面将基于处理顺充从光珊化中移除:背面或者前 面。或者哪个都不选。而缠绕是用来指出了多边形的哪一面是正面( 前 面) 。 5 ) b a c k g r o u n d 类:如其名,定义了背景的颜色或者是图片 6 ) a n i m a t i o n c o n t r o l l e r 类:用于控制一个动画序列的位置,速度和权重。 同时定义了一个由世界时间到序列时间的线性映射 7 ) k e y f r a m e s e q u e n c e 类:封装了一个携带时间戳的序列,用向量的形式来 表示的关键帧,每个关键帧表示在一个特定时刻的一个动作量的值,对 于不同的动画属性,对关键帧的解释是不同,即可以是标量也可以向量。 8 ) a n i m a t i o n t r a c k e r 类:用于链接一个k e y f r a m e s e q u e n c e 对象和一个动作 属性,并且该k e y f r a m e s e q u e n c e 对象同时拥有一个链接到一个 a n i m a t i o n c o n t r o i l e r 对象。 9 ) a p p e a r a n c e 类:定义了m e s h 类或者s p d t e 3 d 类有关渲染属性的一组对 象( 包括了m a t e r i a l 对象,p o l y g o n m 0 d e 对象,c o m p o s i t i n g m o d e 对象, f o g 对象和一组t e x t u r e 2 d 对象) 。 l o ) c o m p o s i t i n g m o d e 类:一个a p p e a r a n c e 的组件,封装了每个像素的合成 属性,包含了把这个对象作为一个整体混合到场景中的信息。 1 1 ) v e r t e x a n - a y 类:该类定义了一个整数数组用来描述顶点位置、规格化坐 标、颜色或是纹理坐标。 1 2 第1 二章m 3 g 类库和底甚类库 1 2 ) i n d e x b u f f e r 类:该类是用于确定几何物体的顶点之间如何连接,是一个 没有提供任何功能的抽象类。提供了几何物体顶点在v e r t e x b u f f e r 对象 中的索引。目| 只有一个子类t r i a n g l e s t r i p a r r a y ,它定义了一个有三角 条带。 1 3 ) v e r t e x b u f f e r 类:该类维持一个对几个v c r t c x a r r a y 对象的引用,其中包 括位置,颜色,规划化坐标和纹理坐标。这些数组被称为顶点属性数组。 1 4 ) i m a g e 2 d 类:该类保存了一个2 维图片的内容,可以分为2 种:可修改 ( m u t a b l e ) 和不可修改( i m m u t a b l e ) 。 除了上述一些类之外还有4 个功能类: a ) g r a p h i c s 3 d 类:该类用于建立一个单一模式的图形上下文,用来渲染目 标,分为立即模式和保留模式。 b ) r a y i n t e r s e c t i o n 类:用于判断拾取与指定光线相交的对象的信息。 c ) t r a n s f o r m 类:定义了对4 x 4 矩阵的一些常用操作。 d ) l o a d e r 类:用于把预先建立好的场景从一个m 3 9 格式的文件中加载进 来。得到的是一棵以一个w o r l d 对象为根节点的树。 这些类构成了完

温馨提示

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

评论

0/150

提交评论