游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2746|回复: 9

[转载]3D:游戏发展必经之路

[复制链接]

64

主题

701

帖子

878

积分

高级会员

法师

Rank: 4

积分
878
QQ
发表于 2004-9-2 03:59:00 | 显示全部楼层 |阅读模式
很显然,在今年最值得期待的几个游戏中,我们可以发现2D游戏最后的几个阵地:即时战略游戏(RTS)、桌面益智游戏(PUZ)、策略模拟游戏(SLG)都已经开始全面向3D道路发展。玩家可以轻松的举出一系列的例子,比如微软的《神话时代》(Age of Mythology)、暴雪的《魔兽争霸3:动荡岁月》(Warcraft 3:Reign Of Chaos)、大宇的《大富翁6》等等。当人们刚从2D/3D游戏孰强孰弱,谁更适合那种类型游戏的讨论中刚刚回过神来的时候,却发现3D已然成为新世纪游戏的标准。为什么选择3D,现在显然已经可以给出最终的原因,但在解答这个原因之前,还是先来分析两者技术实现之间的差异。

2D技术 VS 3D技术
    对于传统的2D游戏,最基本的设计方法其实很类似卡通片的制作,设计者将所有的画面绘制成图片,玩家在参与游戏的过程中不断的触发情节,也不断的看到这些图片。当然这些图片分为两种,以角色扮演为例,一种是静态的图片主要作为展示背景、道具使用,另一种连续的图片则负责处理动态的部分。按照视觉原理,要显示一秒的动作,需要三十张各有细微变化图片,然后在一秒时间内匀速的显示这些图片,就可以实现动作的显示效果。由此玩家朋友可以得出这样一个结论,2D的策略模拟游戏,比如光荣公司的《三国志》系列,所需要的动态部分最少,所以美工有时间将人物的肖像、道具等物品绘制得光彩照人。其次是2D的角色扮演游戏,除了战斗部分的招式,魔法绘制颇为费时间,其它如走动,道具和城镇的绘制都相对简单,日式和国产的角色扮演游戏在美工方面也颇有长处。比较困难的是一些伪3D的即时战略和策略游戏,比如《星际争霸》、《帝国时代2》,为了表现一个单位在地图上向各个方向移动和攻击,则需要绘制相当多组图片。2D游戏的典范之作可算是角色扮演解密游戏《神秘岛3》(MYTH3)和最近才推出的回合制策略游戏《魔法门英雄无敌4》(Might And Magic Heroes 4),这两个游戏中图片绘制的精美程度,足以让人赞叹不已。

    3D引擎的长处一向都被认为只存在于第一人称设计游戏和体育、竞速类游戏。后来有即时战略游戏和角色扮演游戏开始使用3D引擎,最开始的一批此类的3D游戏因为对机器配置的要求高,图像质量精细度不够被玩家嗤之以鼻,事实上2D/3D之争也是从那个时候开始。但随着电脑性能的成倍提高,3D建模技术的愈加成熟,使得3D游戏在视觉外观上逐步开始超越2D游戏,特别是相当多的接口程序支持越来越多的效果,比如凹凸、镜面、金属反射,又有可以让玩家感受到流水、光影等2D难以表示的效果后,3D引擎逐步为人们所接受。3D引擎的原理是从模型数据库中取样,然后由进行即时演算、渲染后再进行显示,玩家在进行游戏的过程中,整个系统每时每刻都在进行这样的处理,所以也相当依赖硬件部分的图象处理能力。3D游戏的长处在于一次建模多次使用,随意的旋转和缩放等在2D系统难以实现的效果在3D引擎只是最基本的功能。虽然3D游戏目前仍然无法超越《神秘岛3》这个层次的2D游戏,但它们已经可以应付其它诸如即使战略或是策略游戏的需求。

开发成本决定一切
    对于国内的游戏制作水平而言,2D游戏拥有相当大的优势,3D程序设计人才短缺是最根本的原因。但反观国外的状况,3D游戏拥有更低的设计成本,特别是当游戏中动态部分随着游戏的进行时间增加的时候,这个差距更加明显。或者下面这个例子有些夸张,但事实上2D的制作方法距离玩家所要求『逼真』的游戏效果越来越远,成几何倍数增加的图片绘制量足以让所有的2D制作组成员疯狂。

    举个最简单的例子,同时用2D方式和3D方式设计一条流水的小溪,那么2D制作组的美工将会为绘制多少帧的图片才能让流水显得栩栩如生而烦恼的时候,3D制作组的成员已经开始进行图象的渲染,他们根本无须为考虑才能做出流水的效果,有足够的函数够他们使用,如果他们愿意,甚至可以考虑做永远不会有任何一帧相同的流水状态。而当2D制作组决定绘制500张图片并使用随机函数调用这些画面的时候,3D制作组的同行们已经开始为小溪装饰随波而动的水草或者是偶尔在水边逗留的蜻蜓。

    当然,同样是基于降低制作成本的考虑,设计人员不会为单一硬件的驱动程序费心,他们会选择合适的接口程序来进行开发,对于3D游戏而言,设计人员普遍接触到的接口程序有3dfx的Glide、微软的Dirext3D和下文即将提到的OpenGL。

OpenGL:3D接口王中之王
     OpenGL是一个功能强大的图形库,用户可以很方便地利用它开发出有多种特殊视觉效果(如光照,纹理,透明,阴影)的三维图形。OpenGL的前身是SGI公司为其图形工作站设计的一个图形开发软件库IRIS GL(Graphics Library),由于其性能优越,因此受到了用户的一致推崇。SGI公司有针对性地对GL进行了改进,特别是扩展了GL的可移植性,使之成为一个跨平台的开放式图形编程接口,这就是OpenGL。

    1992年,OpenGL1.0版正式发布,并立即得到了迅速的应用推广。1995年12月,由OpenGL ARB(Architecture Review Board—体系结构评审委员会)批准了OpenGL1.1版本,这一版本的OpenGL性能得到了加强,并引入了一些新特征,其中包括:在增强元文件中包含OpenGL调用,引进打印机支持,通过顶点数组的新特征,提高了顶点位置、法向、颜色及色彩指数、纹理坐标、多边形边缘标志等的传输速度。现在,OpenGL已经成为应用最为广泛的二维和三维图形编程接口。各种平台上利用OpenGL开发的图形应用软件大量地涌现出来。OpenGL的主要版本有1.0、1.1、1.2和1.2.1,其中以1.1版最为常用。

    Microsoft起先是把OpenGL集成到Windows NT中,后来又把它集成到新版本的Windows 95 OSR2中,而在Windows98中,OpenGL已经成为标准组成部分之一,其执行性能也得到了相应的优化提高。

OpenGL的应用特性
    从程序开发人员的角度来看,OpenGL是一组绘图命令的API集合。利用这些API能够方便地描述二维和三维几何物体,并控制这些物体按某种方式绘制到显示缓冲区中。OpenGL的API集提供了物体描述、平移、旋转、缩放、光照、纹理、材质、象素、位图、文字、交互以及提高显示性能等方面的功能,基本涵盖了开发二、三维图形程序所需的各个方面。与一般的图形开发工具相比,OpenGL具有以下几个突出特点:
1、应用广泛
    OpenGL是目前最主要的二、三维交互式图形应用程序开发环境,已成为业界最受推荐的图形应用编程接口。自从1992年发表以来,OpenGL已被广泛地应用于CAD/CAM、三维动画、数字图象处理以及虚拟现实等领域,Kinetix公司的3D Studio Max就是突出的代表。无论是在PC机上,还是在工作站甚至是大型机和超级计算机上,OpenGL都能表现出它的高性能和强大威力。
2、跨平台性
    OpenGL能够在几乎所有的主流操作系统上运行,包括UNIX、Mac OS、OS/2、Windows NT/9X/ME/2K/XP、Linux等;也能够与其中绝大多数的窗口系统一起工作。
3、高质量和高性能
    无论是在CAD/CAM、三维动画还是可视化仿真等领域,OpenGL高质量和高效率的图形生成能力都能得到充分的体现。在这些领域中,开发人员可以利用OpenGL制作出效果逼真的二、三维图象来。
4、出色的编程特性
    OpenGL体系结构评审委员会(ARB)独立负责管理OpenGL的规范,这使得OpenGL具有充分的独立性。
    OpenGL在各种平台上已有多年的应用实践,加上严格的规范控制,因此OpenGL具有良好的稳定性。
    良好的前瞻性、伸缩性和易使用性等也是OpenGL的突出编程特点。
5、网络透明性
    建立在客户/服务器模型上的网络透明性是OpenGL的固有特性,它允许一个运行在工作站上的进程在本机或通过网络在远程工作站上显示图形。利用这种透明性能够均衡地共同承担图形应用任务的各工作站的负荷,也能使得没有图形功能的服务器能够使用图形工具。

相对Direct3D的优势
    OpenGL的工作原理的顺序其实相当简单,就是一个从定义几何要素到把象素段写入帧缓冲区的过程。在屏幕上显示图象的主要步骤是首先构造几何要素(点,线,多边形,图象,位图),创建对象的数学描述。在三维空间上放置对象,选择有利的场景观察点。然后计算对象的颜色,这些颜色可能直接定义,或由光照条件及纹理间接给出。最后进行光栅化,把对象的数学描述和颜色信息转换到屏幕的象素。这个过程与Direct3D的原理是完全相同的,理论上Direct3D只要把初始化这个关口一过,同OpenGL几乎没什么区别。

    事实上OpenGL根本不是为游戏才存在的一套接口程序,而其一开始就提出的设备无关性要求以及不需要插手窗口管理、输入管理和事件响应机制,所以它相对过早的与硬件、COM接口等纠缠在一起的Direct3D有一下这些优势:

1、学习/入手容易,当然这个比较不是太公平,毕竟Direct3D设计的东西要多一些;
2、Direct3D运行会占用更多的内存,相对而言加重了用户的负担,这也是微软一贯的特色;
3、OpenGL提供更加细腻的图形效果和显示速度;
4、OpenGL垮平台特性可以更加方便的将平台在不同的操作系统进行移植;

    细心的朋友应该发现为什么很多第一人称射击游戏都有Linux版的原因,除了程序员的程序设计能力比较高以外,采用了OpenGL接口也是非常重要的因素之一。潜在的,OpenGL技术也为广大用户提供了在微机上使用以前只能在高性能图形工作站上运行的各种软件的机会。鉴于以上这些原因,绝大部分对图象质量要求高的第一人称射击游戏都采用OpenGL作为主要的程序接口,而另一些对图象要求不太高的游戏则会考虑Direct3D作为程序接口,这样做还有一个好处就是更容易支持DirectDraw方式。

32

主题

377

帖子

378

积分

中级会员

Rank: 3Rank: 3

积分
378
发表于 2004-9-2 20:27:00 | 显示全部楼层

Re:[转载]3D:游戏发展必经之路

感觉楼主要说的完全是显而易见的……地球人都知道……

不过2d是不会磨灭的一种游戏表现形式……

139

主题

2005

帖子

2057

积分

金牌会员

Rank: 6Rank: 6

积分
2057
QQ
发表于 2004-9-2 22:29:00 | 显示全部楼层

Re:[转载]3D:游戏发展必经之路

支持一下

14

主题

283

帖子

293

积分

中级会员

Rank: 3Rank: 3

积分
293
QQ
发表于 2004-9-2 23:40:00 | 显示全部楼层

Re:[转载]3D:游戏发展必经之路

我只看,不说话:)

28

主题

685

帖子

703

积分

高级会员

Rank: 4

积分
703
发表于 2004-9-2 23:48:00 | 显示全部楼层

贴子有点老了。

rt

139

主题

2005

帖子

2057

积分

金牌会员

Rank: 6Rank: 6

积分
2057
QQ
发表于 2004-9-2 23:50:00 | 显示全部楼层

Re:[转载]3D:游戏发展必经之路

3D是趋势

14

主题

283

帖子

293

积分

中级会员

Rank: 3Rank: 3

积分
293
QQ
发表于 2004-9-3 00:00:00 | 显示全部楼层

Re:[转载]3D:游戏发展必经之路

3D是人类无休止的追求完美的表现

139

主题

2005

帖子

2057

积分

金牌会员

Rank: 6Rank: 6

积分
2057
QQ
发表于 2004-9-3 00:04:00 | 显示全部楼层

Re:[转载]3D:游戏发展必经之路

因为人类世界是三维的

14

主题

283

帖子

293

积分

中级会员

Rank: 3Rank: 3

积分
293
QQ
发表于 2004-9-3 00:22:00 | 显示全部楼层

Re:[转载]3D:游戏发展必经之路

人类世界是4D的,时间:),当然游戏中也有第4维,时间维。
我感觉上,3D是包含2D的吧?所以3D/2D没什么好争的,只要硬件跟上去了,程序当然是3D的漂亮

50

主题

992

帖子

1012

积分

金牌会员

Rank: 6Rank: 6

积分
1012
发表于 2004-9-3 01:09:00 | 显示全部楼层

Re:[转载]3D:游戏发展必经之路

路过
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-8-18 00:39

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表