初识OpenGLES在手机游戏开发中的应用

2020-12-14 04:37王凌云吴冬妮
电脑知识与技术 2020年28期
关键词:手机

王凌云 吴冬妮

摘 要:随着信息技术的爆发式发展,人们依赖于网络和手机去实现很多需求。手机游戏作为一种休闲娱乐的方式,已成为一种媒介环境融入人们日常生活之中。与传统的PC游戏开发有较大的不同,手机游戏开发不仅受到运行环境的内存、CPU、网络状况的影响,还受到精良的游戏画面与高质量的游戏体验的影响。OpenGL ES是针对手机和嵌入式设备为目标的高级3D图形API,创造了软件与图形加速间灵活强大的底层交互接口。首先通过对OpenGL ES基本情况进行介绍,对OpenGL ES在游戏开发中的应用进行阐述,并分析OpenGL ES在游戏开发中的优势。

关键词: OpenGL ES;游戏开发;手机

中图分类号:TP37        文献标识码:A

文章编号:1009-3044(2020)28-0241-02

Abstract:With the explosive development of information technology, people rely on the network and mobile phones to achieve many needs. As a way of leisure and entertainment, the mobile game has become a media environment integrated into people's daily life. Different from the traditional PC game development, mobile game development is not only affected by the memory, CPU, and network conditions of the running environment, but also by the excellent game picture and high-quality game experience. OpenGL ES is an advanced 3D graphics API for mobile phones and embedded devices, which creates a flexible and powerful bottom-level interface between software and graphics acceleration. First of all, through the introduction of the basic situation of OpenGL ES, the application of OpenGL ES in game development is described, and the advantages of OpenGL ES in game development are analyzed.

Key words:OpenGL ES;Game development;Mobile phone

1引言

随着移动互联网时代的到来,手机作为最常见的移动终端,有着如图形图像处理技术、网络通信技术等高新技术的投入,成为发展最快速的移动设备[1-2]。手机自身硬件功能越来越完善,使得手机逐渐成为嵌入式开发平台常见选择之一。手机自身方便携带、大屏幕、高分辨率以及网费的低廉等优点,满足游戏应用的需求,游戏已经成为手机必备应用,人们空余时间玩手机游戏已经成为一种潮流,并且对于高质量的游戏需求层出不穷。手机游戏已经发展成具有很强的娱乐性和交互性的复杂形态[3-4]。

目前国内常见的移动开发平台有iOS、Android,OpenGL ES 是这些移动平台下的基础渲染接口之一,游戏界面、辅助功能等都依赖于OpenGL ES驱动硬件来加速渲染。OpenGL ES 作为在移动端上进行图形图像处理的OpenGL 三维图形API的子集接口,去除了在移动端不必存在的特性,开放、跨平台、功能完善的特性使其在游戏引擎开发,数据可视化,计算机辅助,人工智能以及混合现实等多个领域中受到广泛的重视,尤其是在游戏场景渲染和三维地形的可视化方面[5]。探究OpenGL ES的技术原理和机制,对于手机游戏设计、引擎开发,优化程序设计等具有重要意义。

2 OpenGL ES游戏开发应用

2.1 着色语言

着色语言是开发游戏的基础,是游戏开发人员的必备编程技能之一。OpenGL ES着色语言基于应用广泛的C语言,同时具备其他着色语言的特点,易被开发人员掌握。OpenGL ES提供丰富的数据类型,例如标量、向量、矩形以及采样器等,各自有特点,其中标量类型只有大小没有方向,运算遵循简单的单数法则。向量类型在着色器代码开发中十分重要,由多个相同的标量组成,可以方便地存储以及操作各个组成部分的量值。矩阵运算则实现了场景中图形的位移、旋转以及缩放等变换。丰富的数据类型使OpenGL ES在处理图形图像方面更加高效,灵活,可以实现高度并行处理,开发人员可以更加高效率地设计画面精良的游戏画面以及炫酷的特效。

2.2 模型渲染

渲染是将几何数据转换成屏幕上图像的过程。OpenGL ES在进行模型渲染时,能够实现遮挡查询以及游戏场景或角色的实例化,主要包括数据绘制、光照、纹理映射等方面的内容。当创建游戏场景或角色时,首先需要定义由空间坐标表示的摄像机位置,以及定义观察的方向,即摄像机的姿态。这样游戏场景或角色在进行无论是正交投影、透视投影等变换时,只需要进行投影矩阵计算即可实现游戏场景或角色从空间投影到平面的操作,类似于人眼观察现实世界,最终得到游戏场景或角色的绘制位置。其次,对于游戏场景或角色的绘制,直接给出颜色的方式得到的立体感和真实感较差,需要增加适当的逼真光照作用。OpenGL ES中的光照模型进行了较大的简化,分成了环境光、漫反射光以及镜面光,一般在顶点着色器中計算光线,得到最终光照强度后,通过管线插值的方式修改每个片元的颜色。通过变换以及光照可以得到相对真实的游戏场景或角色,但是颜色较为单一,因此渲染最后一步需要为其添加纹理,即为游戏场景或角色的每个顶点制定恰当的纹理坐标,通过该坐标在纹理图中找到相应区域,并将该区域的内容映射到相应物体上。在创建复杂的游戏场景或角色时,无法基于数学公式生成,此时可以通过建模工具建立模型,然后导出成指定格式的模型文件在程序中加载渲染,更为方便快捷。

2.3 辅助传感器应用

与传统游戏不同,手机游戏角色的运动及方向控制信息并不能通过鼠标和键盘输入,而需要使用其他手段,即借助传感器来实现[6]。无论是iOS、Android平台,都支持多种传感器,主要包括加速度传感器、磁场传感器、陀螺仪传感器以及光传感器等,其中加速度传感器是游戏开发人员使用最多的传感器之一,很多智能体感游戏都是采用加速度传感器进行操作的,原理十分简单,加速度传感器通过传递因手机位置改变的相应数据到相应程序中进行分析、计算得出被操控角色的运动情况,主要用于感知手机的加速度。陀螺仪传感器主要用于探测手机旋转的各个角速度,为游戏开发者提供了较大的创新空间。手机游戏通过陀螺仪传感器对动作的监测实现方向的操作,枪战类及驾驶类游戏使用居多,可得到更真实的游戏体验与刺激感。

3 OpenGL ES的特性

OpenGL ES 在游戏开发方面有着广泛地应用前景,具有开放性、强移植性以及功能完善等特点[7]。手機的运算极限在于设备的性能,越精良的游戏处理的数据量越大,消耗的资源越多,渲染的效率会影响游戏画面的效果以及流畅程度,OpenGL ES 规范定义一个开放式图形库接口,使用 GPU 硬件渲染图形,从而避免了占用CPU带来的性能高消耗,游戏响应能力更好。OpenGL ES是与硬件无关的软件接口,支持在不同平台如iOS、Android以及BlackBerry等平台上实现渲染,游戏的可移植性好。OpenGL ES发展至今,已从1.X发展到了3.X,OpenGL ES 1.X传统固定的渲染管线在OpenGL ES 2.X中得到了改善,采用的是灵活的可编程渲染管线方式,发展至今,OpenGL ES 3.X采用阴影贴图、体渲染、纹理压缩、以及独立的着色器对象等技术,重点在于降低能耗的同时改善视觉质量,例如遮挡查询可以在渲染早期过程中丢弃对完整对象的渲染,给可见对象留出更多的处理时间,增强了移动设备的计算能力,适应了手机设备的计算极限性,同时优化了游戏实际的视觉质量。

4结论

文章主要介绍了OpenGL ES开发游戏相关的知识,对OpenGL ES在游戏开发中的应用进行了简介,并分析了优缺点,最后得出其开放性、强移植性以及功能完善等特点。游戏开发人员希望开发工具容易实现开发项目管理、多平台可共享、强移植,OpenGL ES可以很好地满足开发人员的需求,并能够辅助游戏开发人员设计出外观更出色、更吸引人的游戏。

参考文献:

[1] 刘皎.基于Cocos2d-x引擎的麻将游戏设计[J].微型电脑应用,2019,35(12):5-9.

[2] 黎忠文,覃志东,王全宇,等.基于Android平台手机游戏引擎的设计与实现[J].计算机工程与设计,2014,35(1):119-124.

[3] 马欣.基于智能手机的游戏软件技术研究[D].苏州:苏州大学,2015.

[4] 曾家鹏.基于Cocos2d-x的消除益智类手机游戏设计与实现[J].软件导刊,2017,16(10):118-122.

[5] 环浩.基于OpenGL-ES的iPhone渲染技术研发与应用[D].上海:上海交通大学,2014.

[6] 田志贡,阮国庆,石峰.手机游戏开发中Android传感器的应用研究[J].无线互联科技,2015(7):123-124.

[7] 邹鹤敏.基于OpenGL ES的3D游戏技术的研究与实现[D].成都:西南交通大学,2014.

【通联编辑:唐一东】

猜你喜欢
手机
利用数码相机或手机自主开发物理教学资源的研究
手机锂离子电池充电电路的设计与实现