【Android论文栏目提醒】:网学会员Android论文为您提供Android平台下3D游戏引擎技术的研究及应用综述 - 期刊论文参考,解决您在Android平台下3D游戏引擎技术的研究及应用综述 - 期刊论文学习中工作中的难题,参考学习。
学术研究DOI: 10. 3969 / j. issn. 1001-3824. 2012. 05. 006
Android 平台下 3D 游戏引擎技术的研究及应用综述 李红波,吴雨芯,赵 宽,李宏浩 ( 重庆邮电大学 网络智能研究所,重庆 400065) 摘 要:
Android 游戏近几年受到疯狂追捧,但手机资源的局限给 3D 游戏引擎提出了更高要求。
结合
Android 平台 下 3D 游戏引擎的现状, 对 阐述了游戏引擎结构的演变,
Android 平台主流引擎进行了对比和分析,并对引擎中涉及 场景渲染的包括游戏地形渲染、碰撞检测、遮挡剔除及可见性裁剪在内的多项关键技术进行了简介和分析,同时介 绍了给游戏锦上添花的粒子系统和人工智能技术,总结了引擎渲染存在的问题并给出解决方法。
关键词:
Android; 3D 游戏; 游戏引擎; 碰撞检测; 遮挡剔除; 可见性裁剪 中图分类号: TN929 文献标识码: A 文章编号: 1005-3824( 2012) 05-0028-06 戏引擎授权费用高昂,这无疑给 3D 游戏开发带来0 引 言 了很大的经济压力。
因此,必须掌握游戏引擎核心
Android 游戏 近 几 年 已 受 到 疯 狂 的 追 捧,An- 技术,加大研究力度。
droid 手机用户数量也在急速增加,这使得
Android 然而,开发并维护一个功能强大的 3D 游戏引手机应用和硬件优化供不应求。
不久前
Android 平 擎并不是件容易的事。
因此,慢慢出现以开发及维板电脑的问世以及小米手机的疯狂抢购,更是让众 护 3D 游戏引擎为主的公司。
3D 游戏引擎的发展多开发商看到了商机。
Android 市场应用的大量需 会日趋成熟,游戏开发的困难度也将随着 3D 游戏求和硬件技术的飞速发展,使得在手机上开发 3D 引擎的成熟而逐渐降低,同时将使得游戏开发厂商游戏成为 必 要 和 可 能。
而 一 款 3D 游 戏 引 擎 的 架 将开发重心放在游戏内容及游戏设计上。
因此,未构〔1-2〕和渲染系统直接决定了它今后的市场走势和 来游戏厂商将可以摆脱 3D 绘图程序设计复杂、沟整体质量层次,所以对游戏引擎渲染及关键技术的 通不易、跨平台等困扰,更容易地设计出画面华丽、研究显得很有必要。
内容充实的游戏。
由于玩家要求的提高,游戏采用的技术越来越复杂,手机资源有限这一局限给游戏产业界带来了 1 3D 游戏引擎构架的演变极大的挑战。
游戏引擎提供了游戏开发的主要技 1. 1 传统游戏引擎的结构术框架,使开发者能够将主要精力放在游戏的可玩 传统的引擎基本上是针对单机的 2D 游戏进行性和内容上。
一款优秀的游戏引擎能够有效地提 开发。
它是在对部分通用技术细节进行整理和封高游戏的开发效率并缩短开发周期。
游戏引擎近 装的基础上,形成一个面向游戏应用的应用程序接几年得到了快速发展,例如,北京数位红推出的龙 口( API) 函数〔4〕,使游戏开发人员不必再关心底层骨〔3〕、浙江大学的 CAP 小型 3D 游戏引擎、电子科技 大 技术的实 现 细 节, 大 降 低 了 开 发 人 员 的 工 作 难大学的网络游戏引擎等。
但是,目前国内仍缺乏成 度,减少了工作量,缩短开发周期。
传统游戏引擎熟的自主研发的商用游戏引擎,现有引擎大部分是 地 物 碰 一般包含 渲 染、 图 编 辑 工 具、 理 学、 撞 检 测利用开源引擎进行的个性化定制。
国外公司的游 等,其常用的渲染接口一般是 DirectX 和 OpenGL,而收稿日期: 2012- 01 08- 游戏场景是游戏渲染最核心的部分。
场景模块作 — 28 — DIGITAL COMMUNICATION /2012. 10 学术研究为游戏引擎的核心部分,是游戏开发者们调用最多 性能提升的主要动力,也会是手机娱乐特性最好的的一个模块。
为了进一步提高游戏开发者的效率, 体现之一。
游戏引擎模块的高隐藏性和游戏引擎的可拓展性 综上所述,游戏的性能随着用户的要求越来越显得至关重要。
常见的游戏引擎结构如图 1 所示。
高,唯一支撑游戏运行的核心就是引擎。
目前针对 不同的游戏开发需求,需要对引擎做不同的扩展, 新增的粒子系统、人工智能让游戏的特效画面更加 华丽。
可以毫不夸张地说,正是游戏的发展促进了 3D 引擎的转变。
其 3D 游戏引擎体系结构如图 2。
图1 传统游戏引擎结构1. 2 当前 3D 游戏引擎结构的转变 随着手机硬件的发展,智能手机的处理能力得到很大的提高。
针对不同的开发需求,游戏引擎也发生了很大的改变,以达到更高的游戏效果体验。
图2 3D 游戏引擎体系结构主要发展趋势如下。
1) 向专业化、大规模化转变。
1. 3
Android 平台主流引擎对比和分析 随着各平台对 OpenGL ES 支持能力的加强,更 目前
Android 平台上比较成熟的 3D 游戏引擎还多显 示 芯 片 对
Android 的 支 持, 来 越 多 在 PC, 越 大部分是自主开发的开源游戏引擎。
主要有 很少,PSP,PS3,XBOX360 等各游戏平台占有领先地位的 Angle,Rokon, LGame, AndEngine, Libgdx, Jpct,专业游戏公司将向
Android 等手机平台领域快速渗 而非开源的商业游戏引擎能用在 Catcake 等, Alien3d,透,使得游戏的规划更加向专业化方向发展。
Android 平台上的只有 Unity Technologies 开发的 Uni- 2) 从 2D 向 3D 转变。
ty3D。
在这些开源的引擎当中,其中 Angle,Rokon, 由于 3D 描绘的技术更新越来越快,使得游戏 LGame, libgdx 为 2D 游戏引擎, AndEngine, 主要针对的开发难度日渐升高,因此将常用的部分慢慢地抽 一些 2D 手机游戏的开发, Alien3d, jpct, Catcake 和 U-离出来以提高重用性是一个降低开发成本的好方 各引擎对比如表 1。
nity3D 为 3D 游戏引擎,法,这些模块集合起来之后便形成为 3D 游戏引擎 表1
Android 平台开源游戏引擎对比的雏形。
3D 游戏引擎的优点就在于提供稳定的游 引擎名称 引擎介绍 优缺点戏开发平台,具有最新的动画或绘图功能,以及与 基于 OpenGL ES 技术游戏引擎互相搭配的游戏制作工具及跨平台等强 开发的 2D 游戏引擎。
文档不足,而且下载的代码 该引擎全部用 Java 代大功能。
因此,利用 3D 游戏引擎来开发游戏已经 Angle 中仅仅包含有少量的示 例 并 码 编 写, 且 可 以 根 教程 据自己的需要替换里成为一股新的游戏开发趋势。
面的实现 3) 从单机向网络化转变。
基于 OpenGL ES 技术 开发的 2D 游戏引擎, 开发文档相当之完备, 对反 随着各平台对无线通信网络、 Fi 网络、 Wi- 蓝牙 Rokon 物理引擎为 Box2D,能 馈 Bug 的修正速度快,框架 够实现一些较为复杂 使用广泛网络的良好支持,游戏将创新出更好的游戏性和用 的物理效果户体验。
网络游戏、多人游戏、联机对战等将进一 国内自主 开 发 的 Java步强化玩家对游戏的粘着度,并且容易通过对道具 有 游戏 引 擎,
Android 底层 绘 图 器 封 装 有 全 部 LGame 及 PC( J2SE) 2 个开发 封 Graphics API, 装 了 大 量等的控制产生营利模式。
玩家之间对交互能力的 两 版 本, 版 本 间 代 码 常用组件,兼容性好 能够相互移植需求也会促成未来的游戏向网络化发展进程的加快。
相信不久的将来,游戏可能成为推动手机硬件 — 29 — 学术研究续表 1 离视点近的细节等级高,远的细节等级低。
其算法 引擎名称 引擎介绍 优缺点 基本思路是把地形一分为二,然后对于每一个三角 AndEngine 基于 OpenGL ES 技术, 框架性能 普 通, 档 缺 乏, 文 形,从它的顶点到对面边的中点分割三角形为 2 个 物理引擎同样为 Box2D 示例较为丰富 新的正等边三角形,分割是递归进行的,直到达到 基于 OpenGL ES,物理 精灵类等相关组件在使 用 Libgdx 引擎为 Box2D,引擎性 上 不 够 简 化, 档 也 较 为 文 希望的细节等级,其分割过程如图 3。
能较强大 匮乏 基于 OpenGL 技 术 开 发的 3D 图形引擎,拥 惊人的向下兼容性,多平台 JPCT 有功能强大的 Java 3D 运行 解决方案 基于 OpenGL ES 技术 图3 三角形分割 Alien3d 体积小 开发 跨平 台 的 Java 3D 图 渲染三角网格时,由于视点不断的变化,需要 易用性和运行性能上皆 很 形引擎, 目前 支 持 PC Catcake ( J2SE ) 及
Android 环 支 出 色, 持 常 见 游 戏 开 发 对三角形进行分割 / 合并操作,也就是删除或者添 功能 境运行 加一些顶点,目的是让远近不同距离的地形产生不 多平台的综合型游戏 能够实现诸如三维视频 游 Unity3d 全 开 发 工 具, 面 整 合 戏、建筑可 视 化、 时 三 维 实 同的细节等级,减少三角面的渲染数量。
然而,这 的专业游戏引擎 动画等类型互动内容 样不连续 的 分 割 便 产 生 了 T 形 裂 缝 问 题。
所 以, LOD 渲染算法应避免在裂缝的基础上分割 / 合并三2 3D 引擎关键技术 角形。
对任何一款游戏引擎而言,它必须具备一整套 2. 2 碰撞检测游戏开发所需的基本组件和模块,部分引擎针对特 游戏场景中通常包含有静态物体和动态物体,物定的个性化游戏,可适当做出扩展。
其中,数据量 体的移动难免会产生碰撞,所以 3D 游戏中碰撞检测最大、耗费资源最多、用时最长的便是游戏场景渲 显得至关重要。
目前成功商业 3D 游戏普遍采用的碰染。
渲染效率的高低直接影响游戏响应时间,渲染 此方式是当今各种物理引 撞检测方法是包装盒方式,画面的效果直接影响用户体验,所以渲染器是引擎 是采用一个描述用的正方 擎和碰撞检测流行的做法, 碰中最关 键 的 模 块。
它 包 括 游 戏 地 形 渲 染、 撞 检 体或者球型体包裹住 3D 物体对象整体( 或者是主要测、遮挡剔除与可见性裁剪等组件,以及给游戏锦 之后根据“描述用” 部分) , 包装盒的距离、位置等信上添花的粒子系统和人工智能组件。
针对手机资 主要类型如下。
息来计算是否发生碰撞,源的局限性,需要对渲染过程做出优化,优化效率 1) 与坐标轴对齐的包围盒( axis aligned boun-与整合程度直接决定了游戏的整体质量层次。
ding box,AABB) : 是一个正立方体结构,它的 3 条轴2. 1 LOD 地形渲染 向量分别平行于世界坐标的坐标轴,所以仅用 2 个 在 3D 游戏开发中,会遇到不同规模的室外地形 点的坐标就能完整地描述一个 AABB 包围盒。
它的渲染, 这些由大量网格组成的地形渲染是影响游戏速 构建很简单,只需要遍历所有顶点,分别取出最大度的重要因素。
目前地形渲染技术主要有 Voxel 和 和最小的 x 值、 值、 值( 共 6 个值) , y z 求得最大和最LOD 2 种。
LOD( level of detail) 即层次细节〔5〕,是一 小的 2 个顶点,连接这 2 个顶点的线段的中点,便是种使用多边形的 3D 渲染技术,它根据一定的规则 包围盒的中心。
来简化物体的细节,可以根据需要来选择不同细节 OBB) 〔6〕: 本 2) 有向包围盒( oriented bounding box,程度的表现。
例如,离观察者近时选择较高的细节 它用来描述几何节 质上是一个最贴近物体的长方体,程度,距离更远时则选择较低的细节程度,以此控 点的包围盒信息, 个 OBB 包围盒之间的相交检测是 2制场景的渲染,更加方便地使用显卡的硬件加速功 整个碰撞检测系统的最后一个环节,它将具体确认相能并提高渲染速度。
应的 2 个几何节点是否相交。
OBB 包围盒通过 3 个 当对大规模的地形进行绘制时,把整个地形作 向量和这 3 个方向上分别的长度进行构建,它的计算为一整块来处理是不合适的,需要分块处理,根据 并确定在该方向上包围对象的 关键是寻找最佳方向,每块到视点的距离来给每块赋予不同的细节等级, 其空间结构如图 4。
包围盒的最小尺寸, — 30 — DIGITAL COMMUNICATION /2012. 10 学术研究 在进行遮挡判断时,根据地形的可见区场景的 复杂程度,可采用分层的方法,即包含物.