- 等级
- 社长
- 等级进度
- 积分
- 30550
- 阅读权限
- 255
- 主题
- 精华
- 社区币
- 星梦
- 注册时间
- 2003-8-25
- 最后登录
- 1970-1-1
|
<P 18px"><FONT color=#000000><B>[游戏的发动机---DirectX技术简介和3D工作原理入门介绍] </B>
2 ?$ L. p; t0 Y+ Q# o, T8 P" u" v: l
现在的3D游戏大部分都已经是DirectX游戏了,DirectX的技术发展对3D游戏起了极为重要的推动作用,了解DirectX的技术发展,对理解游戏和显卡对DirectX的需求都是十分必要的。0 K* V3 k4 o1 c) c4 @9 y$ I# u" U
5 P: P8 w. V7 T) M1 _% J微软的DirectX6就已经被大量使用,到了DirectX7就已经开始左右3D显卡的发展,DirectX7引入了坐标转换和光照投影技术(即T&L),首次使用显卡芯片来进行硬件T&L计算,将CPU从繁重的计算中解脱出来,GPU这个名词也在DirectX7时代的GeForce256显卡身上首次出现。现在大量的低端GeForce2 MX和GeForce4 MX系列显卡和已经停产的Radeon7000系列都属于DirectX7显卡。在那以后就出现了显卡不支持某个级别的DirectX就无法游戏的情况,比如战地1942就是DirectX7游戏,要求显卡必须支持硬件T&L否则无法执行。2 _2 c/ e" p) u/ X
$ I9 `6 A' K/ A% a) P8 W# B. h到了2001年,微软又推出了DirectX8,它首次引进了顶点渲染和像素渲染的概念,,原来的硬件T&L已经被这两者所代替。顶点渲染和像素渲染的版本在不断发展,在DirectX8.0版,它们都是1.1版,在DirectX8.1中像素渲染升级到了1.4版。顶点渲染和像素渲染的出现不仅带来了更加逼真绚丽的游戏特效表现,而且由于DirectX8显卡已经开始具备可编程特性,大大提高了开发者在处理场景和渲染方面的灵活性。DirectX8的代表显卡有GeForce3 Ti、GeForce4 Ti和Radeon8500。现在ATI的低端卡Radeon9200系列支持到DirectX8.1。现在没有DirectX8支持就不能玩得游戏也越来越多,比较出名的有:忍者神龟、寂静岭3和波斯王子。
4 M6 }0 S/ ^ V d% |6 d
6 v( {/ C7 N7 E! Z/ _+ V9 Z0 K9 }8 N' B不过对于GeForce4 MX系列的用户倒也不必绝望,由于GeForce4 MX支持软件模拟顶点渲染,而像素渲染在这些游戏中使用的并不是很多,所以我们可以使用“3D-Analyze”来欺骗游戏验证,让游戏认为这块卡具有像素渲染能力而得以执行游戏。具体操作是在3D-Analyze中先选中游戏的可执行文件,然后设置中钩选“Emulate Pixel Shader Caps”和“Emulate MAX.SIM Texture”这两个选项就可以了。如果没有模拟成功,请换个驱动在试。不过这仅仅是让你体验一把DirectX8游戏罢了,根本的办法还是换卡。( W2 F2 V0 I) y- c: Q3 V$ L) U
( R; c4 P. _, t' U<DIV align=center><img src="http://hardware.mydrivers.com/pages/images/red-2004-07-25-image012.jpg"></DIV>! d! S& F% w: j" o" a" n
. P, ~% |2 L7 O6 Y' I2002年底微软推出了DirectX9,将顶点渲染和像素渲染升级到了2.0版本,并推出了支持顶点渲染和像素渲染的可编程高级着色语言。支持了浮点数据处理带来了很多以前无法实现的特效。比如,模仿人眼观察光线效果的高动态渲染。顶点渲染技术也得到了革新,指令数目增加了一倍,支持了语句的调转、循环、镶嵌大大简化了开发者的劳动强度和增强了开发灵活性。像素渲染也得到了提升,支持了贴图的动态建立,有些贴图,比如,木纹、大理石纹已经完全可以计算出来而不需要占用内存。我们前文介绍的显卡大都是DirectX9显卡,到最新的GeForce 6800和Radeon X800,DirectX9显卡已经算是发展了两代,大量的DirectX9游戏如:变形金刚、黑暗天使、Halo、Farcry等已大量涌现,而马上还有Half-Life2等DirectX9超大作的发布。所以现在购买DirectX9显卡不仅是成熟的而且是必须的。
9 j' O9 ^+ w. f1 i. x# q" K/ A' L# v; h+ @" g9 V, O9 j
3D游戏的另一大流派就是OpenGL,它的英文全称是“Open Graphics Library”即“开放的图形程序接口”,它是计算机工业标准应用程序接口,是一个与硬件无关的软件接口,使用它图形软件生产厂商再不用为各种不同的机型开发设计不同的软件,只要操作系统使用了OpenGL适配器就可以达到相同的效果,OpenGL能在网络环境下以客户机/服务器模式工作,充分发挥集群运算的威力,是专业图形处理、科学计算等高端应用领域的标准图形库。本来它是高端工业标准,并没有用在游戏娱乐中。但后来大名鼎鼎的ID Software 的DOOM、Quake之父John Carmack在开发下一代三维图形引擎时戏称Direct 3D为可怕的、支离破碎的API,并极力建议采用OpenGL,此后以他为代表的一大批游戏开发人员开始多方呼吁MS积极支持OpenGL。Microsoft终于在Win95的OSR2版本里集成了OpenGL。从此随着Quake2引擎在游戏界的大卖,OpenGL也在游戏界中生根发芽。$ n# `1 W; ?# b' I$ a
7 X. m+ V, M3 z; p2 x. a5 t& `5 g+ i因为微软的原因,大家可以容易看到DirectX的技术介绍,而对OpenGL的了解可能就相对较少。其实作为高端工业标准它的技术和特效支持是十分全面的,在DirectX 8未推出以前,OpenGL也是能够显示最多效果的3D API。就是现在,在游戏开发上(在这里我们不说专业应用)最新的OpenGL标准和DirectX9相比也毫不逊色,它支持深度纹理、阴影纹理,支持实时引擎和相关图象渲染技术,支持用户定义几何,光照和阴影程序的阶段设置,支持高级Shading语言,支持自动纹理mipmap生成等等。就是DirectX9大肆宣扬的像素渲染在OpenGL中也有与之类似的片断编程相对应,而且片断编程技术也是在不断发展。
$ q& b4 A0 H% B
- k% f/ ~& I0 e9 ?0 P2 D/ V: r: B不过从目前的实际看OpenGL只能是第二大游戏API了,某种程度上来说它在游戏领域中完全是靠ID Software在支持。一直到现在我们看到的OpenGL游戏几乎都是Quake2引擎的改进版,比如:Half-life、从返德军总部、使命召唤等。好在John Carmack的DOOM3
% ~) m6 e2 B/ `6 W+ B在经历无数次跳票后终于要发布了,这个指引游戏引擎发展的超级大做,必然又将掀起一阵OpenGL热潮。 ) c$ y0 m, a" k" R7 {( ~
( J& a5 Y+ K, Y& t; b( q# K& |3D游戏第一步就是模型的构建,到目前为止仍是传统的三角形构建法为主,高阶维面构建法为辅(应用三角函数和法线相结合的构建法)。而且在一个相当长时期内这种现状将维持下去。三角形构建法分为两步一是找到三角形将会坐落在屏幕的哪个地方,二是用颜色填充这个地方。即设定和 光栅化的过程。有了模型就要有贴图,第二步就是赋予模型纹理贴图。最初的平面贴图来源于现实世界的照片或者美工的加工,后来随着技术的发展有些贴图已经是可以由GPU计算产生,而且贴图的种类也极大丰富,并出现了DTX5等纹理压缩技术。贴图是利用坐标应用到3D模型上去的。要表现真实的世界,除了模型和纹理贴图外还需要光与影的表现,真实世界中存在着形形色色的光源和区域,表现在我们眼中就是不同的反光表面和各种阴影。起初游戏中的光线效果也是以纹理的形式存在的,就是光源纹理层贴图,它无需计算光源的种类和位置,只需要设定好纹理层表现并于正常纹理层混合即可。这种方法对资源要求不高,但效果比较呆板,真实性不强。后来就出现了顶点光照等一系列技术,它们可以对多边形的顶点进行计算顶点与光源的远近距离,最后在运行3D程序时实时显示动态光源效果并产生动态阴影效果,如果游戏大量应用这种方法,无疑可以构建一个真实的光影世界,它的缺点就是太耗费系统资源,不过随着CPU和显卡的发展这种技术得到了最大的发展.</FONT> |
|