求教 现在的主流3D网络游戏开发都使用哪些技术.docx
- 文档编号:29454801
- 上传时间:2023-07-23
- 格式:DOCX
- 页数:13
- 大小:29.65KB
求教 现在的主流3D网络游戏开发都使用哪些技术.docx
《求教 现在的主流3D网络游戏开发都使用哪些技术.docx》由会员分享,可在线阅读,更多相关《求教 现在的主流3D网络游戏开发都使用哪些技术.docx(13页珍藏版)》请在冰豆网上搜索。
求教现在的主流3D网络游戏开发都使用哪些技术
求教现在的主流3D网络游戏开发都使用哪些技术
2011-04-22
求教:
现在的主流3D网络游戏开发都使用哪些技术?
引擎开发使用哪些语言,或者如果直接使用的引擎有哪些?
模型开发大多使用哪些工具?
3DMAX?
MAYA?
或者其他什么?
数据存放一般使用什么?
MySQL?
DB2?
还是自定义一种存储规范?
外围脚本使用什么语言?
VB?
E语言?
其他?
有比较好的开发平台?
比较新的学习资料?
可以自己找一些游戏的客户端和服务器端研究研究嘛,
学习资料的话,很乱的,因为涉及很多个方面,具体可以找些培训课程资料,
这样就比较系统一些,自己找的话很零散的,不好学
游戏开发中的程序开发主要由如下几个方面组成:
1.图形引擎主要包含游戏中的场景(室内或室外)管理与渲染,角色的动作管理绘制,特效管理与渲染(粒子系统,自然模拟(如水纹,植物等模拟)),光照和材质处理,LOD(LevelObjectDetail)管理等,另外还有图形数据转换工具开发,这些工具主要用于把美工用DCC软件(如3DSMax,Maya,SoftXSI,SoftImage3D等)软件制作的模型和动作数据以及用Photoshop或painter等工具制作的贴图,转化成游戏程序中用的资源文件。
2.声音引擎主要包含音效(SoundEffect简称SE),语音(VOICE),背景音乐(Backgroundmusic简称BGM)的播放。
SE是指那些在游戏中频繁播放,而且播放时间比较短,但要求能及时无延迟的播放,VOICE是指游戏中的语音或人声,这部分对声音品质要求比较高,基本上用比较高的采样率录制和回放声音,但和SE一样要求能及时无延迟的播放,SE在有的时候因为内存容量的问题,在不影响效果的前提下,可能会降低采样率,但VOICE由于降低采样率对效果影响比较大,所以一般VOICE不采用降低采样率的做法。
BGM是指游戏中一长段循环播放(也有不循环,只播放一次)的背景音乐,正是由于BGM的这种特性,一般游戏的背景音乐是读盘(光盘或硬盘)来播放。
另外一些高级声音特效,如EAX,数字影院系统(DTS5.1),数字杜比环绕等。
3.物理引擎主要包含游戏世界中的物体之间、物体和场景之间发生碰撞后的力学模拟,以及发生碰撞后的物体骨骼运动的力学模拟(比较著名的物理引擎有havok公司的gamedynamicssdk,还有opensource的ODE-OpenDynamicsEngine)。
4.游戏引擎主要是把图形引擎、声音引擎、物理引擎整合起来,主要针对某个游戏制作一个游戏系统,其包含游戏关卡编辑器,主要用途是可以可视化的对场景进行调整,光照效果和雾化等效果调整,事件设置,道具摆放,NPC设置,另外还有角色编辑器,主要用于编辑角色的属性和检查动作数据的正确性。
5.人工智能和游戏逻辑开发,这部分日本和欧美的游戏开发模式也有很大不同,在欧美游戏公司中运用脚本语言开发很普遍,所以这部分程序开发主要是用脚本语言编写,而且脚本程序和游戏程序的耦合性很低,有单独的编辑、编译和调试环境,这样比较利于游戏程序和关卡设计开发分开,同时并行开发,所以一般他们都会有专门做关卡设计的程序员岗位。
而日本游戏公司脚本语言一般和游戏的耦合性比较高,一般通过一些语言的宏功能和一些编译器的特定功能来完成一个简单的脚本系统,所以一般这些脚本程序只能在游戏程序中进行调试,而不能在一个单独的脚本编辑,编译环境中进行开发。
6.游戏3DGUI界面。
7.游戏开发工具主要包含关卡编辑器,角色编辑器,资源打包管理,DCC软件的插件工具等开发。
8.支持局域网对战的网络引擎开发,主要解决局域网网络发包和延迟处理,通讯同步的问题,有同步通讯和异步通讯两种做法,异步通讯用于那些对运行帧速要求比较高的游戏,同步通讯相对异步通讯来说效率相对低,但是同步通讯的编程模型相对异步通讯来得简单一些。
9.支持互联网对战的网络引擎开发,目前大部分网游都是C/S结构的,服务器端软件配置管理,服务器程序的最优化,还有游戏大厅、组队、游戏逻辑处理、道具管理、收费系统等。
另外还有一些网络系统是C/S和P2P两种结构混合的,如XBOXLive等.
网游开发之如何建造3D世界
下面我们将从游戏设计者的角度讨论创造3D世界的一些细节,你也应该看一看DaveSalvator所写的"3D管线导论",以便对3D图象生成的主要过程有一个整体的了解。
3D物体(对象)被储存成3D世界中的一系列点(被称为顶点),彼此之间有相互关系,所以计算机知道如何在世界中的这些点之间画线或者是填充表面。
一个立方体由8个点组成,每个角一个点。
立方体有6个表面,分别代表它的每一个面。
这就是3D对象储存的基础。
对于一些比较复杂的3D物体,比如说一个Quake的关卡,将有数以千计(有时数以十万计)的顶点,和数以千计的多边形表面。
参见上图的线框表示(注:
原文在这里有一幅图)。
本质上与上面的立方体例子类似,它仅仅是由许许多多的小多边形组成的一些复杂场景。
模型和世界如何储存是渲染器的一部份功能,而不属于应用程序/游戏部份。
游戏逻辑不需要知道对象在内存中如何表示,也不需要知道渲染器将怎样把他们显示出来。
游戏只是需要知道渲染器将使用正确的视野去表示对象,并将在正确的动画帧中把正确的模型显示出来。
在一个好的引擎中,渲染器应该是可以完全被一个新的渲染器替换掉,并且不需要去改动游戏的一行代码。
许多跨平台引擎,而且许多自行开发的游戏机引擎就是这样的,如Unreal引擎,--举例来说,这个游戏GameCube版本的渲染器就可以被你任意的替换掉。
让我们再看看内部的表示方法-除了使用坐标系统,还有其他方法可以在计算机内存里表示空间的点。
在数学上,你可以使用一个方程式来描述直线或曲线,并得到多边形,而几乎所有的3D显示卡都使用多边形来作为它们的最终渲染图元。
一个图元就是你在任何显示卡上面所能使用的最低级的绘制(渲染)单位,几乎所有的硬件都是使用三个顶点的多边形(三角形)。
新一代的nVidia和ATI显卡可以允许你以数学方式渲染(被称为高次表面),但因为这不是所有图形卡的标准,你还不能靠它作为渲染策略。
从计算的角度来看,这通常有些昂贵,但它时常是新的实验技术的基础,例如,地表的渲染,或者对物件锐利的边缘进行柔化。
我们将会在下面的曲面片小节中更进一步介绍这些高次表面。
剔除概观
问题来了。
我现在有一个由几十万个顶点/多边形描述的世界。
我以第一人称视角位于我们这个3D世界的一边。
在视野中可以看见世界的一些多边形,而另外一些则不可见,因为一些物体,比如一面看得见的墙壁,遮挡住了它们。
即使是最好的游戏编码人员,在目前的3D显卡上,在一个视野中也不能处理300,000个三角形且仍然维持60fps(一个主要目标)。
显卡不能处理它,因此我们必须写一些代码,在把它们交给显卡处理之前除去那些看不见的多边形。
这个过程被称为剔除。
如果你没有看到物体,那么物体就不在那里。
通过剔除3D世界钟不可见的部分,游戏引擎可以减少可观的工作负载。
来看上面的场景和图像,在建筑下面在一个屋子后面有另外一个屋子,但是如果从有优势的点看过去它并不可见,那么另外一个屋子的几何和其他三维数据就可以被忽略。
有许多不同的剔除方法。
在深入了解这些之前,让我们探讨一下为什么图形显示卡不能处理超高数量的多边形。
我是说,最新的图形卡每秒钟不能处理几百万个多边形吗?
它不应该能够处理吗?
首先,你必须理解市场销售宣称的多边形生成率和真实世界的多边形生成率。
行销上宣称的多边形生成率是图形显示卡理论上能够达到的多边形生成率。
如果全部多边形都在屏幕上,相同的纹理,相同的尺寸大小,正在往显示卡上传送多边形的应用程序除了传送多边形以外什么也不做,这时显卡能处理多少多边形数量,就是图形芯片厂商呈现给你的数字。
然而,在真实的游戏情形中,应用程序时常在后台做着许多其他的事情--多边形的3D变换,光照计算,拷贝较多的纹理到显卡内存,等等。
不仅纹理要送到显示卡,而且还有每个多边形的细节。
一些比较新的显卡允许你实际上在显卡内存本身里面储存模型/世界几何细节,但这可能是昂贵的,将会耗光纹理正常可以使用的空间,所以你最好能确定每一帧都在使用这些模型的顶点,否则你只是在浪费显示卡上的存储空间。
我们就说到这里了。
重要的是,在实际使用显卡时,并不必然就能达到你在显卡包装盒上所看到的那些指标,如果你有一个比较慢速的CPU,或没有足够的内存时,这种差异就尤为真实。
基本的剔除方法
最简单的剔除方式就是把世界分成区域,每个区域有一个其他可见区域的列表。
那样,你只需要显示针对任何给定点的可见部分。
如何生成可见视野区域的列表是技巧所在。
再者,有许多方法可以用来生成可见区域列表,如BSP树,窥孔等等。
可以肯定,当谈论DOOM或QUAKE时,你已经听到过使用BSP这个术语了。
它表示二叉空间分割。
BSP是一种将世界分成小区域的的方法,通过组织世界的多边形,容易确定哪些区域是可见的而哪些是不可见的–从而方便了那些不想做太多绘制工作的基于软件的渲染器。
它同时也以一种非常有效的方式让你知道你位于世界中的什么地方。
在基于窥孔(Portal)的引擎(最早由3DRealms已经取消的Prey项目引入游戏世界)里,每个区域(或房间)都建造有自己的模型,通过每个区域的门(或窥孔)能够看见另外的区段。
渲染器把每个区域作为独立的场景单独绘制。
这就是它的大致原理。
足以说这是任何一个渲染器的必需部份,而且非常重要。
尽管一些这样的技术归类在"遮挡剔除"之下,但是他们全部都有同样的目的:
尽早消除不必要的工作。
对于一个FPS游戏(第一人称射击游戏)来说,视野中时常有许多三角形,而且游戏玩家承担视野的控制,丢弃或者剔除不可见的三角形就是绝对必要的了。
对空间模拟来说也是这样的,你可以看见很远很远的地方–剔除超过视觉范围外面的东西就非常重要。
对于视野受到限制的游戏来说–比如RTS(即时战略类游戏)--通常比较容易实现。
通常渲染器的这个部份还是由软件来完成,而不是由显卡完成,由显卡来做这部分工作只是一个时间问题。
基本的图形管线流程
一个简单的例子,从游戏到多边形绘制的图形管线过程大致是这样:
&-183;游戏决定在游戏中有哪些对象,它们的模型,使用的纹理,他们可能在什么动画帧,以及它们在游戏世界里的位置。
游戏也决定照相机的位置和方向。
&-183;游戏把这些信息传递给渲染器。
以模型为例,渲染器首先要查看模型的大小,照相机的位置,然后决定模型在屏幕上是否全部可见,或者在观察者(照相机视野)的左边,在观察者的后面,或距离很远而不可见。
它甚至会使用一些世界测定方式来计算出模型是否是可见的。
(参见下面这条)
&-183;世界可视化系统决定照相机在世界中的位置,并根据照相机视野决定世界的哪些区域/多边形是可见的。
有许多方法可以完成这个任务,包括把世界分割成许多
多重纹理与凹凸映射
单一纹理映射给整个3D真实感图形带来很大的不同,但使用多重纹理甚至可以达到一些更加令人难忘的效果。
过去这一直需要多遍渲染(绘制),严重影响了像素填充率。
但许多具有多流水线的3D加速卡,如ATI#sRadeon和nVidia#sGeForce2及更高级的显卡,多重纹理可以在一遍渲染(绘制)过程中完成。
产生多重纹理效果时,你先用一个纹理绘制多边形,然后再用另外一个纹理透明地绘制在多边形上面。
这让你可以使纹理看上去在移动,或脉动,甚至产生阴影效果(我们在照明一节中描述过)。
绘制第一个纹理映射,然后在上面绘制带透明的全黑纹理,引起一种是所有的织法黑色的但是有一个透明分层堆积过它的顶端,这就是--即时阴影。
该技术被称为照明映射(有时也称为暗映射),直至新的Doom,一直是Id引擎里关卡照明的传统方法。
凹凸贴图是最近涌现出来的一种古老技术。
几年以前Matrox第一个在流行的3D游戏中发起使用各种不同形式的凹凸贴图。
就是生成纹理来表现灯光在表面的投射,表现表面的凹凸或表面的裂缝。
凹凸贴图并不随着灯光一起移动--它被设计用来表现一个表面上的细小瑕疵,而不是大的凹凸。
比如说,在飞行模拟器中,你可以使用凹凸贴图来产生像是随机的地表细节,而不是重复地使用相同的纹理,看上去一点趣味也没有。
凹凸贴图产生相当明显的表面细节,尽管是很高明的戏法,但严格意义上讲,凹凸贴图并不随着你的观察角度而变化。
比较新的ATI和nVidia显卡片能执行每像素运算,这种缺省观察角度的不足就真的不再是有力而快速的法则了。
无论是哪一种方法,到目前为止,没有游戏开发者太多的使用;更多的游戏能够且应该使用凹凸贴图。
高速缓存抖动=糟糕的事物
纹理高速缓存的管理对游戏引擎的速度至关重要。
和任何高速缓存一样,缓存命中很好,而不命中将很糟糕。
如果遇到纹理在图形显示卡内存被频繁地换入换出的情况,这就是纹理高速缓存抖动。
发生这种情况时,通常API将会废弃每个纹理,结果是所有的纹理在下一帧将被重新加载,这非常耗时和浪费。
对游戏玩家来说,当API重新加载纹理高速缓存时,会导致帧速率迟钝。
在纹理高速缓存管理中,有各种不同的技术将纹理高速缓存抖动减到最少–这是确保任何3D游戏引擎速度的一个决定性因素。
纹理管理是件好事情–这意味着只要求显卡使用纹理一次,而不是重复使用。
这听起来有点自相矛盾,但效果是它意谓着对显卡说,"看,所有这些多边形全部使用这一个纹理,我们能够仅仅加载这个纹理一次而不是许多次吗?
"这阻止API(或图形驱动软件)上传多次向显卡加载纹理。
象OpenGL这样的API实际上通常处理纹理高速缓存管理,意谓着,根据一些规则,比如纹理存取的频率,API决定哪些纹理储存在显卡上,哪些纹理存储在主存。
真正的问题来了:
a)你时常无法知道API正在使用的准确规则。
b)你时常要求在一帧中绘制更多的纹理,以致超出了显卡内存空间所能容纳的纹理。
外一种纹理高速缓存管理技术是我们早先讨论的纹理压缩。
很象声音波形文件被压缩成MP3文件,尽管无法达到那样的压缩比率,但纹理可以被压缩。
从声音波形文件到MP3的压缩可以达到11:
1的压缩比率,而绝大多数硬件支持的纹理压缩运算法则只有4:
1的压缩比率,尽管如此,这样能产生很大的差别。
除此之外,在渲染(绘制)过程中,只有在需要时,硬件才动态地对纹理进行解压缩。
这一点非常棒,我们仅仅擦除即将可能用到的表面。
如上所述,另外一种技术确保渲染器要求显卡对每个纹理只绘制一次。
确定你想要渲染(绘制)的使用相同纹理的所有多边形同时送到显卡,而不是一个模型在这里,另一个模型在那里,然后又回到最初的纹理论。
仅仅绘制一次,你也就通过AGP接口传送一次。
QuakeIII在其阴影系统就是这么做的。
处理多边形时,把它们加入到一个内部的阴影列表,一旦所有的多边形处理完毕,渲染器遍历纹理列表,就将纹理及所有使用这些纹理的多边形同时传送出去。
上述过程在使用显卡的硬件T&L(如果支持的话)时,并不怎么有效。
你面临的结局是,满屏幕都是使用相同纹理的大量的多边形小群组,所有多边形都使用不同的变换矩阵。
这意谓着更多的时间花在建立显卡的硬件T&L引擎,更多的时间被浪费了。
无论如何,因为他们有助于对整个模型使用统一的纹理,所以它对实际屏幕上的模型可以有效地工作。
但是因为许多多边形倾向使用相同的墙壁纹理,所以对于世界场景的渲染,它常常就是地狱。
通常它没有这么严重,因为大体而言,世界的纹理不会有那么大,这样一来API的纹理缓存系统将会替你处理这些,并把纹理保留在显卡以备再次使用。
在游戏机上,通常没有纹理高速缓存系统(除非你写一个)。
在PS2上面,你最好是远离"一次纹理"的方法。
在Xbox上面,这是不重要的,因为它本身没有图形内存(它是UMA体系结构),且所有的纹理无论如何始终保留在主存之中。
事实上,在今天的现代PCFPS游戏中,试图通过AGP接口传送大量纹理是第二个最通常的瓶颈。
最大的瓶颈是实际几何处理,它要使东西出现在它应该出现的地方。
在如今的3DFPS游戏中,最耗费时间的工作,显然是那些计算模型中每个顶点正确的世界位置的数学运算。
如果你不把场景的纹理保持在预算之内,仅居其次的就是通过AGP接口传送大量的纹理了。
然而,你确实有能力影响这些。
通过降低顶层的MIP级别(还记得系统在哪里不断地为你细分纹理吗?
),你就能够把系统正在尝试送到显卡的纹理大小减少一半。
你的视觉质量会有所下降&-45;-尤其是在引人注目的电影片断中--但是你的帧速率上升了。
这种方式对网络游戏尤其有帮助。
实际上,SoldierofFortuneII和JediKnightII:
Outcast这两款游戏在设计时针对的显卡还不是市场上的大众主流显卡。
为了以最大大小观看他们的纹理,你的3D显卡至少需要有128MB的内存。
这两种产品在思想上都是给未来设计的。
关于内存使用的思考
让我们想一想,在今天实际上是如何使用3D显卡内存的以及在将来又会如何使用。
如今绝大多数3D显卡处理32位像素颜色,8位红色,8位蓝色,8位绿色,和8位透明度。
这些组合的红,蓝和绿256个色度,可以组成16。
7百万种颜色--那是你我可以在一个监视器上看见的所有颜色。
那么,游戏设计大师JohnCarmack为什么要求64位颜色分辨率呢?
如果我们看不出区别,又有什么意义呢?
意义是:
比如说,有十几个灯光照射模型上的点,颜色颜色各不相同。
我们取模型的最初颜色,然后计算一个灯光的照射,模型颜色值将改变。
然后我们计算另外的一个灯光,模型颜色值进一步改变。
这里的问题是,因为颜色值只有8位,在计算了4个灯光之后,8位的颜色值将不足以给我们最后的颜色较好的分辨率和表现。
分辨率的不足是由量化误差导致的,本质原因是由于位数不足引起的舍入误差。
你能很快地用尽位数,而且同样地,所有的颜色被清掉。
每颜色16或32位,你有一个更高分辨率,因此你能够反复着色以适当地表现最后的颜色。
这样的颜色深度很快就能消耗大量的存储空间。
我们也应提到整个显卡内存与纹理内存。
这里所要说的是,每个3D显卡实际只有有限的内存,而这些内存要存储前端和后端缓冲区,Z缓冲区,还有所有的令人惊奇的纹理。
最初的Voodoo1显卡只有2MB显存,后来RivaTNT提高到16MB显存。
然后GeForce和ATIRage有32MB显存,现在一些GeForce2到4的显卡和Radeons带有64MB到128MB的显存。
深度测试
现在我们开始讨论深度测试,深度测试丢弃隐藏的像素,过度绘制开始起作用。
过度绘制非常简单–在一帧中,你数次绘制一个像素位置。
它以3D场景中Z(深度)方向上存在的元素数量为基础,也被称为深度复杂度。
如果你常常太多的过度绘制,--举例来说,符咒的眩目视觉特效,就象HereticII,能让你的帧速率变得很糟糕。
当屏幕上的一些人们彼此施放符咒时,HereticII设计的一些最初效果造成的情形是,他们在一帧中对屏幕上每个相同的像素画了40次!
不用说,这必须调整,尤其是软件渲染器,除了将游戏降低到象是滑雪表演外,它根本不能处理这样的负荷。
深度测试是一种用来决定在相同的像素位置上哪些对象在其它对象前面的技术,这样我们就能够避免绘制那些隐藏的对象。
抗锯齿
让我们快速的看一下抗锯齿。
当渲染单个多边形时,3D显卡仔细检查已经渲染的,并对新的多边形的边缘进行柔化,这样你就不会得到明显可见的锯齿形的像素边缘。
两种技术方法之一通常被用来处理。
第一种方法是单个多边形层次,需要你从视野后面到前面渲染多边形,这样每个多边形都能和它后面的进行适当的混合。
如果不按序进行渲染,最后你会看见各种奇怪的效果。
在第二种方法中,使用比实际显示更大的分辩率来渲染整幅帧画面,然后在你缩小图像时,尖锐的锯齿形边缘就混合消失了。
这第二种方法的结果不错,但因为显卡需要渲染比实际结果帧更多的像素,所以需要大量的内存资源和很高的内存带宽。
多数新的显卡能很好地处理这些,但仍然有多种抗锯齿模式可以供你选择,因此你可以在性能和质量之间作出折衷。
对于当今流行的各种不同抗锯齿技术的更详细讨论请参见DaveSalvator的3D流水线一文.
顶点与像素着色
在结束讨论渲染技术之前,我们快速的说一下顶点和像素着色,最近它们正引起很多关注。
顶点着色是一种直接使用显卡硬件特征的方式,不使用API。
举例来说,如果显卡支持硬件T&L,你可以用DirectX或OpenGL编程,并希望你的顶点通过T&L单元(因为这完全由驱动程序处理,所以没有办法确信),或者你直接利用显卡硬件使用顶点着色。
它们允许你根据显卡自身特征进行特别编码,你自己特殊的编码使用T&L引擎,以及为了发挥你的最大优势,显卡必须提供的其他别的特征。
事实上,现在nVidia和ATI在他们大量的显卡上都提供了这个特征。
不幸的是,显卡之间表示顶点着色的方法并不一致。
你不能象使用DirectX或者OpenGL那样,为顶点着色编写一次代码就可以在任何显卡上运行,这可是个坏消息。
然而,因为你直接和显卡硬件交流,它为快速渲染顶点着色可能生成的效果提供最大的承诺。
(如同创造很不错的特效&-45;-你能够使用顶点着色以API没有提供的方式影响事物)。
事实上,顶点着色正在真的将3D图形显示卡带回到游戏机的编码方式,直接存取硬件,最大限度利用系统的必须知识,而不是依靠API来为你做一切。
对一些程序员来说,会对这种编码方式感到吃惊,但这是进步代价。
进一步阐述,顶点着色是一些在顶点被送到显卡渲染之前计算和运行顶点效果程序或者例程。
你可以在主CPU上面用软件来做这些事情,或者使用显卡上的顶点着色。
为动画模型变换网格是顶点程序的主选。
像素着色是那些你写的例程,当绘制纹理时,这些例程就逐个像素被执行。
你有效地用这些新的例程推翻了显卡硬件正常情况做的混合模式运算。
这允许你做一些很不错的像素效果,比如,使远处的纹理模糊,添加炮火烟雾,产生水中的反射效果等。
一旦ATI和nVidia能实际上就像素着色版本达成一致(DX9#s新的高级shader语言将会帮助促进这一目标),我一点不惊讶DirectX和OpenGL采用Glide的方式--有帮助开始,但最终不是把任何显卡发挥到极限的最好方法。
那么什么是API?
它是应用程序编程接口,将不一致的后端用一致的前端呈现出来。
举例来说,很大程度上每种3D显示卡的3D实现方式都有所差别。
然而,他们全部都呈现一个一致的前端给最终使用者或者程序员,所以他们知道他们为X3D显示卡写的代码将会在Y3D显示卡上面有相同的结果。
好吧,不管怎样理论上是那样。
大约在三年以前这可能是相当真实的陈述,但自那以后,在nVidia公司的引领下,3D显卡行业的事情发生了变化。
如今在PC领域,除非你正计划建造自己的软件光栅引擎,使用CPU来绘制你所有的精灵,多边形和粒子--而且人们仍然在这样做。
跟Unreal一样,AgeofEmpiresII:
AgeofKings有一个优秀的软件渲染器–否则你将使用两种可能的图形API,OpenGL或者DirectX之一。
OpenGL是一种真正的跨平台API(使用这种API写的软件可以在Linux,Windows和MacOS上运行。
),而且有多年的历史了,为人所熟知,但也开始慢慢地显示出它的古老。
大约在四年以前,定义OpenGL驱动特征集一直是所有显示卡厂商工作的方向。
然而,一旦在目标达成以后,没有预先制定特征工作方向的路线图,这时候,所有的显卡开发商开始在特征集上分道扬镳,使用OpenGL扩展。
3dfx创造了T-缓冲。
nVidia努力寻求硬件变换和光照计算。
Matrox努力获取凹凸贴图。
等等。
我以前说过的一句话,"过去几年以来,3D显示卡领域的事情发生了变化。
"委婉地说明了这一切。
无论如何,另一个可以选择的API是DirectX。
这受Microsoft公司控制,且在PC和Xbox上被完美地支持。
由于明显的原因,DirectX没有Apple或者Linux版本。
因为Microsoft控制着Direc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 求教 现在的主流3D网络游戏开发都使用哪些技术 现在 主流 网络游戏 开发 使用 哪些 技术