浅析3D游戏引擎

时间:2022-06-21 08:54:11

浅析3D游戏引擎

摘要:游戏引擎是游戏开发的技术核心。为了更好地理解游戏引擎,根据游戏引擎的特点,介绍3D游戏引擎,并从实时渲染、交互性、多人参与、碰撞检测四个方面简要阐述了3D游戏引擎的特点。为理解3D游戏引擎技术提供了一个理论支持。下一步将对3D游戏引擎的关键技术进行研究。

关键词:3D;游戏引擎;特点;技术核心;理论支持

中图分类号:TP391文献标识码:A文章编号:1009-3044(2011)17-4189-02

A Brief Introduction of 3D Game Engine

XU Lei1, FAN Liu-qing2

(1.Engineering College of Armed Police Force, Xi'an 710086, China; mand College of Armed Police Force, Shijiazhuang 050061, China)

Abstract: Game engine is the core technology of game development. In order to understand the game engine better, according to the characteristics of the game engine, this paper introduces 3D game engine, and has a brief introduction of characteristics of 3D game engine from real-time rendering, interactivity, multi-participants and collision detection. So it provides a theoretical supporting to understand the 3D game engine. The key technology of 3D game engine will be researched in the next step.

Key words: 3D; game engine; characteristics; core technology; theoretical support

游戏引擎是当今游戏产业发展的核心技术驱动力。一款优秀的游戏的引擎不仅能够极大地提高游戏开发效率,而且能给开发者带来丰厚的版权收益,这使得国内外的游戏公司纷纷投入到游戏引擎的研究开发中。简单的说,游戏引擎就是“用于控制所有游戏功能的主程序”,从计算碰撞,物理系统和物体的相对位置到接受玩家的输入,以及声音的输出等等功能都是游戏引擎需要负责的事情[1]。而3D游戏引擎则是整个游戏产业的核心技术。3D游戏引擎技术是一门结合技术,涉及了计算机图形学、网络、人工智能等领域,是当前研究的热点之一。本文主要讨论的就是3D游戏引擎的特点及其优势。

1 3D游戏引擎的优点

1.1 实时渲染

添加诸如阴影、纹理等一些视觉特征,可以使三维模型看起来更加的直观和现实。将一个通过计算使三维模型外观转化成为一个可以在二维屏幕上显示的图像的全过程称为渲染[2]。具体来说,渲染就是将三维对象的数学模型通过数据转换成显示的二维图像的过程。图形渲染模块支持固定渲染方式和图形处理器的可编程渲染方式。这不仅使得引擎的渲染效率大大提高,而且能实现阴影,动态纹理贴图,颜色渐变效果。除此之外,还有许多的着色(渲染)处理技术,比如平面着色、Lambert 着色、高氏着色、Phong着色、材质贴图、凹凸贴图、Mip贴图等等。

我们可以通过实时渲染效果来衡量一个3D游戏引擎的性能。Mullen(1998)提出了一个标准:3D游戏引擎在计算机上运行的性能可以通过测量每秒屏幕上所产生的图像的帧数来进行。通常,当开发一个3D模型时,随着真实性的增加,也使得复杂程度提高,这也便利实时渲染的难度上升,因此一般情况下降低了帧速。如果帧的速率从每秒15帧降低到3-4帧的时候,这个时候显示一个三维模型,直觉的视观图则表示的不流畅,而且模型表示结果也十分的不理想[3]。许多目前正在使用的3D游戏引擎均可以保持在每秒30帧图像渲染。它们可以在一个单一的场景处理多个的三角形及多边形。

1.2 人机交互

交互是指计算机和用户之间的相互作用和沟通,处理来自键盘、鼠标、摇杆和其他外设的信号。游戏引擎可以接受和响应每秒30帧的实时交互性操作。交互性对于用户来说是十分重要的,因为这将直接影响到用户可以通过虚拟的场景看到一个真实的世界。这种真实性可以促使用户感到所面对的不再是电脑控制下的环境,而是一个真正的“现实世界”[4]。

交互控制可以通过鼠标的点击和拖动来完成。一些控件,如编辑框,用户还需要通过键盘输入一些文本。有些控件是已经包含了使用目的的内置标签,有的会要求用户创建一个伴随非交互式控件提供一个标签。非交互式控件,顾名思义,是用来显示信息,而不是用来捕捉用户输入及操作。

1.3 多人参与

在一个虚拟环境当中,用户自定义角色可以有智能特征(即AI角色或机器人),或者只是简单地提出了一个虚拟表示由用户的输入控制[5]。角色可以代表一个用户在一个有一组或单独的虚拟工厂之旅。当然这其中许多涉及角色以及其他行为动作、事件均可以通过使用内置的游戏引擎所提供的工具进行模拟。

分布式虚拟系统允许多个用户同时进行实时协作。这种实时协作可以通过文字聊天、语音通信等方式,也可以能过共享设计组件的方式进行交互。这样多个用户就可以在一个实时虚拟仿真环境下进行设计。3D CAD系统不支持这种实时协作,但提供给了用户异步协作。通常这是通过文字注释和白板类型标记的功能实现。

同步或异步通信的软件,对于协作来讲,以支持多种类型文件的属性是一个重要的影响因素。在这方面3D CAD比传统的虚拟环境系统有更好的支持。然而随着开放式通用文件格式的出现,这种情况迅速的改变。比如,IFC标准和Khronos开发的Collada[6]。

1.4 碰撞检测

碰撞检测可以描述为“在一个模拟的环境中,检测两个或多个对象接触到彼此是否相交的过程”[7]。碰撞检测可以使交互变得更加真实。日前,许多的商业引擎开发工具中的碰撞检测都是由程序员在设计进程中进行定义的。在计算机游戏中,碰撞检测将保证真实世界的正确虚拟化(例如,禁止人物穿越墙壁,或者防止人物坠落至地板之下)。同时,碰撞检测还提供了某种视线查询,通知敌人是否发现玩家并改动攻击。

某些应用程序,例如路径规划和动态渲染,并不需要其碰撞检测系统的实时特性,而有些应用程序,特别是计算机游戏,则十分强调碰撞检测系统的实时性能。一些基于计算机或游戏机平台的动作类游戏所涉及的模型计算数据量,则要求以每秒30帧-60帧的帧速率进行计算。在这种实时状态以及游戏和物理引擎中碰撞检测占优状态下,碰撞检测系统将占用游戏一帧中的大量时间消耗[8]。

2 结论

游戏产业是近年来IT业关注的焦点,游戏给人们的业余生活带来了丰富的娱乐体验,因此具有广阔的发展前景。游戏引擎能够给游戏开发带来很大的便利,越来越受到国内产业界和学术界的重视。介绍3D游戏引擎的特点和优势,具有理论培养和核心技术积累两方面的重要意义,下一步的研究工作将是深入3D游戏引擎关键技术和引擎内部的各个核心模块。

参考文献:

[1] 耿卫东.三维游戏引擎设计与实现[M].杭州:浙江大学出版社,2008.

[2] Finney K C.3D game programming all in one[M].2nd ed.Boston,MA: Thomson Course Technology,2007.

[3] Miliano V.Unrealty: application of a 3D Game Engine to enhance the design,visualization and presentation of commercial real estate[EB/OL]./oldportfolio/unrealty/vsmm99/.

[4] Mays P.Making virtual reality real[J].Architecture,1998,87(10):162.

[5] Vince J.Virtual reality systems[M].Addison Wesley Longman,1995.

[6] Kitchens K,Shiratuddin M F.Interactive home design in a Virtual Environment[C].7th International Conference on Construction Applications of Virtual Reality (CONVE),2007:10-19.

[7] Maurina E F.The game programmer's guide to Torque: under the hood of the Torque Game Engine[M].Wellesley,MA: A K Peters Ltd.2006.

[8] Shiratuddin M F,Thabet W.Virtual office walkthrough using a 3D Game Engine: Special Issue on Designing Virtual Worlds[J].International Journal of Design Computing (IJDC),2002,4.

上一篇:关于模拟类游戏和教育类游戏比较的相关研究 下一篇:基于Visual C++的矢量地图绘制及应用