一、简介
3D游戏就是三维游戏简单的游戏引擎,3D中的D是Dimensional(维度)的缩写。 3D 游戏中点的位置由三个坐标确定[1]。 客观存在的真实空间是三维空间,具有长、宽、高三个维度。 三维游戏(3D 游戏)与二维游戏(2D 游戏)进行比较。 由于它们采用了三维空间的概念,因此更加真实,在空间操作上具有更大的随机性。 也更容易吸引人们。 特点是可以随意改变游戏的视角,具有很强的视觉冲击力。 3D游戏中的游戏引擎是整个游戏的核心[2],一个好的游戏引擎可以给游戏带来很大的优势。
2. 3D图形和3D游戏引擎的讨论
早期曾有一段时间,游戏开发商只关心开发尽可能多的新游戏并将其出售给玩家。 尽管当时的游戏大多简单粗糙,但每款游戏的平均开发周期却要达到8-10个月以上[3]。 一方面是技术原因,另一方面是因为几乎每个游戏都要从头开始编写代码,造成大量重复劳动[3]。 渐渐地,一些有经验的开发人员找到了一种“偷懒”的方法。 他们借用了之前一款类似主题游戏的部分代码作为新游戏的基本框架,以节省开发时间和开发成本。 游戏引擎的概念就是在这样的背景下诞生的。 游戏引擎是指一些已编写好的可编辑游戏系统或一些交互式实时图像应用程序的核心组件[4]。 游戏引擎实现的功能主要是地形、天空、建筑、任务、动画、声音、环境等游戏元素,这些都是三维游戏所不可缺少的。
从编程的角度来看,游戏引擎是游戏开发的通用核心。 它将游戏编程中最常见、最常用、最核心的功能集成到一个通用的游戏开发平台和集成环境中。 在此基础上简单的游戏引擎,游戏程序员在开发游戏时,不需要从头开始,通过API、COM接口等直接调用游戏引擎提供的强大功能,就可以方便快捷地开发新游戏。开发时,引擎相当于游戏的底层框架平台。 框架平台搭建完成后,填写内容即可。 如果将游戏引擎比作“游戏操作系统”,那么最终的游戏产品就可以与在“游戏操作系统”上运行的各个应用程序进行比较。 [3]
近年来,由于3D硬件图形技术的突破,实时画面变得越来越精细,3D玩法也变得更加多元化、更加贴近现实世界。 因此,在游戏行业中,3D游戏已经逐渐取代2D游戏,成为游戏市场的主流,甚至网络游戏也在逐渐走向3D。 在3D游戏制作方面,欧美和日本的一些厂商拥有自己成熟的3D游戏引擎,其制作的游戏也拥有庞大且固定的玩家群体,例如《虚幻》系列、《合金装备2》等。 》等作为经典,市场潜力巨大。 近年来,国产3D游戏也诞生了优质产品,比如广受好评的《轩辕剑》、《仙剑》系列,都开始向3D游戏转型。 目前流行的3D游戏开发技术主要有Direct3D和OpenGL。 OGRE和OSG本身定位为纯粹的图形引擎游戏动态,其中OpenSceneGraph(简称OSG)是利用OpenGL技术开发的,是一套基于C++平台的应用程序编程接口(API)。 OSG发展的主要意义是将3D场景定义为空间中一系列连续的对象来管理3D世界。 由于场景的特点及其参数定义,OSG还可以通过状态转换、绘制管道、定制等操作来优化渲染性能。 OGRE(Object-Oriented Graphics Rendering Engine,即:面向对象图形渲染引擎)是一个用C++开发的面向场景、非常灵活的3D引擎,旨在让开发者更简单、更直接地使用硬件加速的3D图形系统开发与应用[5]。 该类库隐藏了底层系统库(例如:Direct3D和OpenGL)的所有细节,并提供了基于世界对象和其他直观类的接口。
OSG引擎由一系列与图形相关的功能模块组成,主要为图形图像应用的开发提供场景管理和图形渲染优化功能[6]。 它是用可移植的 ANSI C++ 编写的3D动画,并使用行业标准的 OPENGL 底层渲染 API。 OSG具有跨平台的特点,可以运行在大多数类型的操作系统系统上,并且采用了抽象层的概念,使得OSG的功能接口可以独立于用户本地操作系统而使用; 但OSG还包含相关的支持代码。 OSG主要有以下优点:
快速发展。 OSG场景图内核封装了Openggl几乎所有的底层接口,并随时支持最新的扩展功能。 应用程序开发人员可以专注于3D程序开发的实质性内容以及与各种场景对象交互的方法,而不用过多关注底层代码。 [2]高品质。 OSG经历了众多开发成员的反复检查、测试和改进,直接参与和贡献OSG核心代码开发的开发人员有近400名。 [7]
高性能。 OSG核心代码支持多种场景裁剪技术、细节层次节点、渲染状态排序、顶点数组、现实列表、VBO、PBO、FBO、Opengl着色语言等; 还有文字显示、粒子系统、阴影系统、雨、雪、火焰、烟雾等特效模拟、场景动态调度、多线程渲染等机制。 它们共同使 OSG 成为高性能 3D 图形引擎。
高质量的代码。 想要写出高质量的程序,开发者必须了解自己所使用的引擎结构。如果引擎代码不开放,那么与之相关的开发信息就会被关闭,用户只能依赖开发信息
有关开发信息,请参阅开发人员的文档和客户支持。 开源代码允许程序员检查和调试所有开发套件的源代码,并充分了解代码的内部信息。
可扩展性。 基于场景图扩展的思想,OSG提供了强大的可扩展性,包括各类扩展节点、扩展渲染属性、扩展回调、扩展交互事件处理程序等,为用户程序开发提供灵活的支持。
可移植性。 OSG 提供 Windows、UNIX、Linux、Mac OS X、IRIX、Solaris、HP-UX、AIX 和 FreeBSD 系统的可移植性。 基于OSG开发的程序只要编写一次就可以在这些平台上编译运行。 需要注意更多代码移植细节。
三、总结
随着CG行业的不断发展,OSG和OGRE将会更加完善和高效,游戏引擎对它们的依赖也会不断增加。 只有不断学习,才能掌握这个图形引擎的精髓。 为了被我利用,做我想做的事,我们需要有足够的耐心、细心和决心。 相信只要我们努力,OSG、OGRE和游戏行业将会有更广阔的发展空间,OSG和OGRE的发展终能为3D游戏带来更可喜的变化!