【Android论文栏目提醒】:网学会员为广大网友收集整理了,基于Android系统3D引擎 - 硕士论文,希望对大家有所帮助!
分类号—— 密 级UDC—— 武多萎理歹大浮 学 位 论 ‘文题 目 基王△旦垡〔Qi鱼系统墨Q呈l墼的设让皇实现英文Design and Implementation of题 目 尘曼三旦曼ngi壁曼曼垦墨曼亟Qn△盟亟殴i亟墨Y墨!曼也研究生姓名 . . 魏文耀 .指导教师姓名—立_赵一职称.—舅址学位—j匠L 430070申请学位级别 工堂亟士 学科专业名称 通信皇信息系统
论文提交日期 2Q三2生墨且
论文答辩日期 至Q至2笙墨且学位授予单位 武这理王太堂 学位授予日期答辩委员会主席.趔鱼 评阅人 型亟 隧监 2012年5月 独创性声明 本人声明,所呈交的
论文是本人在导师指导下进行的研究工作及取得的研究成果。
尽我所知,除了文中特别加以标注和致谢的地方外,
论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得武汉理工大学或其它教育机构的学位或证书而使用过的材料。
与我一同工作的同志对本研究所做的任何贡献均已在
论文中作了明确的说明并表示了谢意。
签名:鲡丝喳日期:丝噬血型兰塑I 学位
论文使用授权书 本人完全了解武汉理工大学有关保留、使用学位
论文的规定,即:学校有权保留并向国家有关部门或机构送交
论文的复印件和电子版,允许
论文被查阅和借阅。
本人授权武汉理工大学可以将本学位
论文的全部内容编入有关数据库进行检索,可以采用影印、缩印或其他复制手段保存或汇编本学位
论文。
同时授权经武汉理工大学认可的国家有关机构或
论文数据库使用或收录本学位
论文,并向社会公众提供信息服务。
(保密的
论文在解密后应遵守此规定)研究生(签名):姚导师(签名): 武汉理工大学硕士学位
论文 摘要 随着人们生活水平的提高与科学技术的高速发展,在嵌入式设备上开发3D应用程序将会成为亮点,把3D技术应用到Android产品中,会极大的提高产品的竞争力。
而3D图形开发的过程中所涉及的知识相当广泛,加大了快速开发产品的难度。
基于此问题,本文研究3D引擎技术对常用组件进行封装,以降低产品开发难度,提高开发速度。
首先,本文分析和总结了国内外在Android系统上的3D引擎开发、应用现状,研究表明目前国内在Android系统的3D引擎的研究处于起步阶段,为此本文研究基于Android系统3D引擎能够缩小与国外的差距。
然后,主要分析了基于Android系统3D引擎关键技术。
先从总体上分析了在Android系统上3D引擎的框架结构,以及3D引擎各个部分的功能:而后,研究了向量、矩阵、四元数等三维图形学相关的数学知识;接着,分析了3D图形库OpenGL ES固定渲染管线:最后,详细分析了光照技术、纹理映射和混合等3D技术。
在此基础上,设计实现基于Android系统3D引擎。
主要设计实现了:接口模块、数学库、天空盒、公告板、粒子系统、文字显示系统。
文中对比了几种常见的天空模拟方法,综合效率和渲染效果,选取天空盒作为最终的实现。
公告板技术是一个简单实用的组件,用来模拟森林、火苗、立柱。
然后从简化物理模型和对死亡粒子的处理方式等方法上对粒子系统的算法进行了优化,并设计实现了基于粒子系统的雪景。
最后结合了FreeType和OpenGL的优势,实现了一个文字显示系统,能够实时生成文字对应图片,无需事先完成,节省了内存空间,由于使用的是TrueType字体,放大也不会产生模糊锯齿等现象。
最后,在PC机上搭建Android系统仿真平台,测试了各个模块的功能。
实验结果表明,天空盒能较为逼真的模型天空;粒子雪景、雨景也较为逼真的模拟,文中对比了粒子系统算法改进前后,帧率有明显提升;文字显示系统能够清晰、无锯齿的在三维空间中显示多种中文字体。
本文中采用C/C++作为编程语言,执行效率高于Java语言,适合于在嵌入式Android设备上开发3D应用程序。
因此本文研究基于Android系统的3D引擎技术,能够使开发更加便捷、高效。
关键词l Android 3D引擎OpenGL ES粒子系统FreeType 武汉理工大学硕士学位
论文 Abstract With the improvement of people’S living standard and the rapid development ofscience and technology,the development of 3D applications will be the highlight onembedded devices.The products used 3D technology,will greatly improve thecompetitiveness of their products.But,3D graphics development involves a widerange of knowledge,SO development of 3D applications is very difficult.Based onthis problem,this paper,research the 3D engine technology,package commonly usedcomponents to reduce development effort and to increase development speed. First,this paper analyzes and summarizes the 3D engine development on theAndroid system at home and abroad,and pointed out that domestic research in theAndroid system,the 3D engine in its infancy,this paper studies the 3D engine basedon the Android system to narrow the gap、析tll foreign countries. Secondly,analyzes the key technology of the 3D engine.From the overallanalysis of frame structure and various parts about 3D engine on the Android system;Follow,3D mathematical knowledge,vector,matrix and quaternion,Was analysised;Then we analyzed the fixed rendering of 3D graphics library OpenOL ES pipeline;Finally,a detailed analysis of lighting technology,texture mapping and blending 3Dtechnology. The main objective of this article focuses on the design and implementation of a3D engine based on the Android system.The main modules ale:Interface Module,the math library,sky box,billboarding,particle systems,text display system.Comparison of several common sky simulation method,the overall efficiency andrendering,select the sky box as a realization.Billboarding technology is a simple andpractical component,used to simulate the forest,fire,columns.The particle systemalgorithm Was optimized by the simplified physical model and the approach of deathparticle,designed and implemented snow scence based on the particle system.Finally,the advantages of FreeType and OpenGL,the text display system Can generatereal-time text pictures,without prior completed,saving memory space.Whenmagnified,it would not produce phenomena such as fuzzy and zigzag,due to the use一一 武汉理工大学硕士学位
论文 一—————-—●----_--_—-_—●_—__—_--—————-—-_-—--—-____—__—_-_●_____●_—●———_——一of TrueType fonts. Finally,the simulation platform of the Android system was build,which to testthe function of each module.The experimental results show that the sky box can bemore realistic;particle snow and particle rain are also more realistic。
in contrast to theframe rate has improved significantly before and after the improvement of the particlesystem algorithm;text display system to be able to clear the jagged three.dimensionalspace display.In this paper,C/C++programming language Was used,SO theimplementation has high efficiency,which suitable for the development of 3Dapplications on embedded devices.In this paper,based on the Android system’s 3Dengine technology,will enable the development more convenient and efficient.Keywords:Android,3D engine,OpenGL ES,Particle system,FreeType 武汉理工大学硕士学位
论文 目 录第1章绪论……………………………………………………………………………l 1.1课题研究背景及意义………………………………………………………….1 1.2国内外研究现状…………………………………………………………………2 1.3
论文的工作及章节安排……………………………………………………….3第2章3D引擎关键技术分析………………………………………………………5 2.1 3D引擎…………………………………………………………………………..5 2.1.1 3D引擎结构………………………………………………………………一5 2.1.2基于Android系统3D引擎结构…………………………………………6 2.1.3 Android系统中的JNI技术………………………………………………。
7 2.2 3D数学模型……………………………………………………………………8 2.2.1向量………………………………………………………………………………………………..8 2.2.2矩阵………………………………………………………………………………………………。
9 2.2.3四元数…………………………………………………………………………………………….9 2.3 OpenGL ES…………………………………………………………………………………………..1 1 2.4 OpenGL ES渲染管线……………………………………………………………ll 2.4.1固定管线渲染流程………………………………………………………ll 2.4.2光照技术…………………………………………………………………1 3 2.4.3纹理映射…………………………………………………………………….1 5 2.4.4混合………………………………………………………………………………………………l 6 2.5本章小结……………………………………………………………………….17第3章3D引擎设计与实现………………………………………………………….1 8 3.1 3D引擎需求分析…………………………………………………………………18 3.2接口模块设计与实现……………………………...……………………………1 8 3.3基本数学库实现……………………………………………………………….19 3.4渲染系统………………………………………………………………………..22 3.4.1视窗模型………………………………………………………………………22 3.4.2天!空………………………………………………………………………………………………2:I 3.4.3公告板………………………………………………………………………26 武汉理工大学硕士学位
论文 3.5粒子系统………………………………………………………………………28 3.5.1粒子系统原理……………………………………………………………一29 3.5.2基于粒子系统的雪景设计………………………………………………30 3.5.3基于粒子系统的雪景实现……………………………………………….31 3.5.4粒子系统改进算法……………………………………………………….34 3.6文字显示系统…………………………………………………………………35 3.6.1 FrecType…………………………………………………………………………………………35 3.6.2 FreeType主要接口介绍………………………………………………….36 3.6.3基于FreeType文字生成…………………………………………………37 3.6.4滚动文字实现……………………………………………………………。
39 3.7本章小结………………………………………………………………………40第4章仿真及结果分析…………………………………………………………….41 4.1仿真平台搭建…………………………………………………………………4l 4.2实验效果及结果分析………………………………………………………….42 4.2.1天空盒……………………………………………………………………42 4.2.2粒子场景………………………………………………………………….43 4.2.3文字显示………………………………………………………………….48 4.3本章小结……………………………………………………………………….50第5章总结与展望………………………………………………………………….5 l 5.1全文工作总结…………………………………………………………………5 l 5.2下一步工作展望………………………………………………………………52致谢………………………………………………………………………………………………………….53参考文献…………………………………………………………………………….54 武汉理工大学硕士学位
论文 第1章绪论1.1课题研究背景及意义 本课题“基于Android系统3D引擎”是在某公司3D UI开发项目中提出来的。
随着计算机技术的发展,硬件性能可谓是突飞猛进,软件日新月异、丰富多彩。
计算机的发展同时促使了图形学飞速发展,现在各行业中的都有广泛的应用,而且三维计算机图形学的时代已经到来,三维图形已经深入到我们生活工作的方方面面IlJ。
随着社会的进步,用户对游戏、用户界面等的视觉效果要求越来越高,如今三维游戏、三维用户界面已经是一个不可逆转的趋势。
三维图形开发过程中经常要涉及大量的算法、计算机图形学和图形库(API)的知识【2】【3】,因此要快速开发三维应用程序是有相当的困难的,就需要一个封装了硬件操作和图形库的开发环境,这个环境对于应用开发人员来说,简单易用、功能丰富,不需要知晓计算机图形学的实现细节。
这样的一个开发环境可以被称作为三维引擎(即3D引擎)。
3D引擎是软件工程中的软件复用思想在3D场景开发中的表现形式之一。
它把最常用、核心的功能进行了有效的封装,形成通用的框架模块。
这样,场景开发人员就可以不必去关心场景的底层实现细节,而直接调用3D引擎提供的现成功能,在短时间内高质量地开发出新场景新游戏【41151。
总的来说引擎应当具有以下几个特点: (1)驱动性:在功能上支持某方面应用,但是实现细节却是依赖于应用。
(2)完整性:完整的实现某个功能。
(3)独立性:不依赖于某一个具体的应用程序。
【6胴 3D引擎技术不仅在游戏领域有了广泛深入的发展,而且在虚拟现实、建筑虚拟、城市规划、房地产开发、教育等各方面都有广泛的实际应用。
IS】 随着嵌入式设备的性能提高和3D图形技术在嵌入式领域的应用,在嵌入式设备上开发3D场景和3D游戏将会成为一个新的亮点。
经过多年的发展,无论从技术上还是市场消费趋势,智能手机已经成为手机发展的主要潮流。
而当下的手机系统中,Android无疑是最流行,也是最受大家欢迎的一款手机操作系统。
武汉理工大学硕士学位
论文由于Android系统底层是基于Linux内核的,而且是开源、免费向广大用户开放,因此它很快得到了广大开发者和众多手机厂商的支持f9】。
因此对基于Android系统的3D引擎的研究势在必行,能够使开发更加便捷、高效。
1.2国内外研究现状 目前,国外研究嵌入式3D游戏引擎的热情是非常活跃的。
国外研究三维游戏引擎的公司主要有,3D Realms,Id Software,Valve等等【l们,这些公司研发了一批非常优秀的三维引擎,大家熟知的有Quake,Quake II,QuakeIII,Half-Life等等。
自2000年后,随着游戏产业的发展,相继出现了很多开源的游戏引擎开发组织,也研发出了一些非常优秀的开源游戏引擎,如ORGE、Irrlicht等等。
【ll】虽然开源引擎在品质上无法与商业引擎相比,但其免费性和开源性的优势,受到大批人士的热捧。
商业引擎和开源引擎共同推动了三维游戏引擎的发展和壮大。
麻省理工学院(MIT)是一个一直走在最新技术前沿的科学研究机构。
MIT原先就是研究人工智能、机器人和计算机图形学以及动画的先锋。
这些技术都是虚拟技术(VR)的基础。
1985年成立了媒体实验室,进行虚拟环境的正规研究。
媒体实验室建立了一个名叫BOLIO的测试环境,用于进行不同图形仿真技术的实验。
利用这一环境,MIT建立了一个虚拟环境下的对象运动跟踪动态系统。
【12】 SRI研究中心建立了“视觉感知计划”,研究现有VR技术的进一步发展。
1991年后,SRI进行了利用VR技术对军用飞机或车辆驾驶的训练研究。
另外,SRI还利用遥控技术进行外科手术仿真的研究。
【12】 著名的Fathammer公司开发的X.Forge引擎拥有一套全面的开发技术和工具集,使它能够在多种现有的嵌入式平台上开发出高品质的3D游戏。
X.Forge采用了两层构架,底层提供硬件抽象和对操作系统的支持,上层提供与平台无关的3D图形场景管理和游戏世界管理模式。
X.Forge 2引擎对开发者来说更加易于使用,更加注重于美术工具,实现更逼真的3D效果。
X.Forge 2引擎仍然保留了上一版的模块可裁剪性,因此引擎有很大的灵活性。
【131 随着Android系统的发展,在Android系统上也已经涌现出一批非常小巧实用的图形引擎,如ES3D、Catcake、Rokon、Libgdx等。
实质上ES3D都不能算是一个引擎只是对OpenGL EStl4】【15l【161做了一个简单的封装;Catcake是一款跨平 2 武汉理工大学硕士学位
论文台的Java 3D图形引擎;Rokon和Libgdx是Android 2D游戏引擎;从实现上来看这些游戏引擎都较为简单,长远看很难满足后续的发展。
随着游戏产业的迅猛发展,国内开发拥有自主知识产权的3D游戏引擎,特别是3D图形引擎的呼声越来越高,因为3D图形引擎是整个3D游戏产业的核心技术【l‘71,它的发展总是伴随着计算机软硬件领域的最新研究成果,其品质的高低直接决定着游戏质量和价值。
就国内情况而言,2000年后,出现了一些独立自主研发游戏引擎的企业,但是都是投入不大,很难与国外相比,如金山、巨人网络和网易等互联网公司118】。
国内研发的手机3D游戏引擎的有:龙骨(Dragon Bone)是北京数位红软件应用技术有限公司;X.Factory是天津市天大北洋软件开发有限公司开发的基于Symbian平台的高性能手机游戏开发引擎。
【I9】但是国内大部分的游戏开发公司都采用国外的游戏引擎,或者是在开源引擎的基础上进行开发,对3D游戏图形引擎的研究还是停留在初级阶段,大多仅限于使用现成的3D引擎,来开发3D应用程序、游戏等等,目前无法与国外的3D引擎相抗衡,使得开发成本大幅度增加,阻碍了在国际市场上与国外的竞争。
当下,嵌入式设备的软硬件性能越来越高,3D图形技术应用越来越广泛,以及Android系统的迅速发展,在Android上开发3D场景和3D游戏的需求将会越来越大【2们,因此对于Android系统上的3D引擎的研究将是研究的热点,而且具有明显的现实意义。
1.3
论文的工作及章节安排 本文在Android系统的基础上较为全面的介绍了3D图形引擎的结构、功能以及相关的3D关键技术,并且给出了关键技术的实现方法。
本文是在充分研究了OpenOL ES 3D图形库的基础上,理论结合实践,对关键部分大场景渲染进行了详细的论述。
还介绍了在Android系统上C/C++3D引擎的架构等。
本文的创新点是在Android嵌入式系统上实现了一个大场景绘制的图形引擎。
在本文中没有采用Android系统的J2ME的原因是,Java程序执行效率低下,C/C++更适合于在嵌入式设备上开发3D应用程序,底层采用的是OpenGL ES标准,这样能够实现高效性和与具体的硬件设备无关,方便于更新升级。
本文中的具体章节安排如下: 第一章主要介绍了3D引擎的基本概念,3D引擎国内外研究发展现状,后 3 武汉理工大学硕士学位
论文面介绍了
论文的主要工作和创新点,给出了
论文各章节的安排; 第二章主要详细研究了3D引擎技术。
3D引擎的构架以及在Android系统上3D引擎的构架进行详尽介绍;研究了3D数学相关知识、3D图形API,以及三维图形库OpenGL渲染技术。
第三章主要是实现3D引擎关键技术。
设计实现了3D引擎与Android系统的接口模块,以及几个重要的组件:数学库、天空盒、公告板、粒子系统、文字显示系统。
第四章主要是搭建Android系统仿真平台以及对实验结果进行分析。
第五章主要是对全文的总结和未来工作的展望。
对全文进行总结,之后指出文中需要进一步完善的地方,最后展望后续研究工作。
4 武汉理工大学硕士学位
论文 第2章3D引擎关键技术分析 3D引擎是3D游戏或者3D应用程序中最关键的一个部分,有超过50%的CPU时间是花费在图形渲染上面的【211。
若是没有3D引擎我们将什么都看不到,3D引擎让整个场景可以看得见摸得着,用户可以通过显示的状态进行选择,完成想要的操作。
2.1 3D引擎 3D引擎是3D应用程序的核心代码,能够控制整个程序的执行流程。
对三维图形库进行了有效的封装,因此开发人员不需要花太多的时间和精力去关注系统构架、资源加载、内存使用、以及如何调用三维图形API(应用程序接口)进行图形绘制,从而可以节省大量的时间缩短3D应用程序的开发时间。
2.1.1 3D引擎结构 3D引擎主要功能模块基本上包括:场景管理,GUI系统,交互系统,内存管理系统,资源管理系统,数学库,调试系统,3D图形库等八部分。
如图2.1所示: 核心模 场景管理 GuI系统I I交互系统 (SceneNemager) l粒子系统l|文字显示系统I l模型管理 网网回网 r。
。
。
’_·_ I。
_-o一●1_ _-_。
。
‘。
。
一●o-_ ‘。
。
。
。
‘ ‘一 兰竺!!竺兰 〕〔 I内存管理l l资源管理||数学库||调试系统II图形库l L————————————J .