Microsoft Directx 6.0演武传奇

Author: 樊一鹏 Date: 1998年 第33期 07版

  对于我们这些玩Game,想做和正在做Game,以及所有宣称“Games are our life”的江湖中人来说,眼下已经没有什么事比名闻天下的西方魔教Microsoft将在西域垄断岭聚财山庄召开DirectX 6.0演武大会更有吸引力的了。
  我是三个月前催骑上路的,出发时骑的那匹爱猫早已累毙道旁,眼下这一匹是在路上向别人借来的。
  一路行去,连日里看到的尽是形形色色的江湖人物,除了少数成名人物外,大多都没听说过,想必都是冲着演武大会来的,也有连DirectX是什么都不清楚就跟来凑热闹的角色。
#1  注:DirectX实际上是Microsoft为了完成千秋万载一统江湖的霸业而推出的一套基于“问到死”(Windows) 环境的游戏程序开发接口,在Microsoft的计划中,要让所有的硬件生产厂商出产的各种硬件产品都符合DirectX的统一规范;对于开发者来说,就不用再去费神考虑各种不同硬件的实现,从而可以很容易地实现设备独立性。换句话说,用DirectX开发的游戏可以在所有支持DirectX的机器上运行。至于那些不支持DirectX的机器,Microsoft说:“不支持,就灭亡!”当然,Microsoft还保证,实现设备独立性的同时,不会让开发者失去直接访问、操作硬件的好处。DirectX的另外一个目的是制订硬件发展的指导方针,这就不用我多说了,因为牛比之心,路人皆知嘛。
  好了,闲话少说,咱们言归正传。
  却说一行人众历经千难万苦,垄断岭聚财峰终于就在眼前,只见那垄断岭连绵一千五百余里,而聚财峰更是高耸入云,果然是气势非凡,若非如此,又怎能显得出西方魔教Microsoft的霸气?
  聚财山庄便在聚财峰顶,据江湖传言,整个聚财峰是魔教用无数PC用户的血染红的,依我所见,其实只是山石有些发赭罢了。当下抱定念头,今番上山须得格外谨慎,免得还未见到DirectX,便先遭了魔教毒手,血染聚财峰可一点也不好玩。正想到此,忽听身后有人叹道:“听说魔教杀人后惯用化尸散,只怕等不到血染聚财峰,咱们就早已尸骨无存了。”我闻言大惊,回首看去,说话的似乎是一个穿着中山装的年轻人,正待细看,那人突然加快脚步,从我头上一跃而过,顷刻便消失在前面山道上。望着那人的背影,我忽然想起了一个人,没错,有如此身法而又喜欢穿中山装的,准是此人,只是想不到他竟然也来了!
  好不容易来到峰顶,进得聚财山庄,只见演武大厅上早已黑压压的坐满了各路江湖人物,四面八方都是人声。众人口里说得最多的话题自然是DirectX,诸如自己曾用DirectX如何如何,DirectX 6.0又将如何如何等等。也有小声议论魔教这几年所作所为的,都把声音放得很低,以防被旁人听到。
  过不多时,只见八名身着黑衣墨镜的魔教教众抬着一张紫檀木大椅径奔大厅上首,那椅面金镶玉嵌、雕刻精致,上面披了张锦缎,绣着一条金龙,众人见了这等气派,心中不禁怦怦乱跳,寻思:“他奶奶的,坐这椅子的人倒真会享福!”那八名教众却目不斜视,抬着那张怕不下数千斤的紫檀木大椅稳稳站定,然后同时转身,恭恭敬敬地把紫檀木大椅放下,小心翼翼地撩起盖着的锦缎,椅子上竟然睡着一个人,一个道人!
  不用介绍,这就是西方魔教Microsoft的教主牛比道人。牛比道人打个哈欠,翻身坐正,睡眼朦胧地扫视了大厅一眼,嘴里似乎咕哝着什么,但咕哝声马上被魔教教众的万岁声所淹没。厅上众人亦跟着欢呼,与魔教教众不同的是,众人欢呼的是牛比终于起床而让大家不用再等了。
  牛比道人伸手捻捻长须,神情甚是得意。待欢呼声稍歇,牛比微微点头,示意演武大会可以开始了。立刻又有十名黑衣教众从厅外鱼贯而入,除了当先一人外,其余九人都各自捧着一件奇形怪状的东西。据江湖传闻,当先那人是部门经理,负责动口的,其余数人是打零工的服务生,负责打杂跑龙套的。
  果不其然,只见那人向牛比道人请安后转过身来,朗朗言道:“此次请各位前来参加DirectX 6.0演武大会,主要是为了向各位展示一下它的强大威力,各位看了之后,如果觉得满意的话,我们会送给每人一套,条件是宣誓对圣教效忠,为圣教主服好务,用它去杀光所有圣教的敌人。”
  不待众人嘲骂,也绝不会有人嘲骂(因为没有人敢惹牛比生气,别的不说,他只要趁你在家睡觉的时候派些人来往你家的窗户(Windows) 里胡乱扔上几把臭虫就能叫你死去活来)。动口的那人接着说道:“这次我们把DirectX 6.0分别打成了九把兵刃,各位请看。”
  他身后九人同时把手捧之物高举过头,众人只觉眼前一亮,一股凛冽的寒气蓦地扑面而来,果然是九把世所罕见的神兵利器,分别是:
  DirectDraw、DirectSound、DirectMusic、Direct3D Immediate Mode、Direct3D Retained Mode、DirectInput、DirectPlay、DirectSetup、AutoPlay
  我心下暗叹,常言道:十年苦功不敌利器一击。这利器二字,原本也只有魔教这九件兵器才配得上。又看众人神色,想必也一定深以为然。
  那部门经理却不言语,只笑等厅上口水成河,眼珠满地,才满足地大吼一声:“孩儿们,练起来!”
  一时间,垄断岭聚财峰顶刀光剑影、寒气冲天。众人无不魂飞魄散、大惊失色,万万没想到这九件兵器的威力竟会一强至斯。
  DirectDraw形似判官笔,使它的那人,看来亦是位丹青妙手。只见那人身法轻健,满场游走,手中一支笔忽而一化二,忽而二化四,变幻不定,其每出一招,必画一个 Microsoft的商标。前排数人不及躲避,几张脸顿时成了 Microsoft的广告画。更奇的是,那人明明只在此处画了几笔,而别处却也会显出同样的笔迹,难道这会是忍术中的影分身?
#1  注:DirectDraw的主要目的其实是用来让开发者可以直接处理显存,并能够利用硬件来直接实现诸如位图拷贝、覆盖层、页面交换、透明和半透明、调色板处理等在 2D 中最常用的技术。至于这些技术的妙用,实在是一言难尽,此处篇幅有限,还是留待以后有机会再讲。如果你仅仅只是想看看效果,去玩玩《星际争霸》就可以略知一二了。
  另外,在 DirectX 6.0中,DirectDraw又引入了新的界面,做了不少易用性方面的增强。
  DirectSound一旦被人使开,看起来就是活生生一对流星锤,端的是风雨流星,泼水不进。突然,使锤的大汉双臂一震,猛然一发力,那两锤便在空中一碰,顿时化着轰然一声巨响,直如晴空霹雳。功力稍差之辈,立即当场震倒在地不省人事,而余下诸人只觉两耳轰鸣头晕目眩。便在此时,那两锤又是猛地一碰,这一碰后却寂无声息,两锤停在空中,就此不动,众人正感奇怪,恍然间,却似乎听得耳边轻风吹拂,虫鸣鸟叫,待要凝神细听,忽然大地震动,似乎有千军万马从四面八方杀将过来,又过片刻,枪声、炮声、临死者的哭号便在耳边汹涌而起,不用多久,众人但觉脑中一片空白,不由昏然睡去。
#1  注:DirectSound的主要目的是让开发者可以自如地控制声音硬件,并提供实时混音以及3D声音控制等强大功能,通常用来处理游戏中的音效。
  使DirectMusic的是个女子,眼见众人不支倒地,不由嫣然一笑,随即取过DirectMusic,放在身前。这DirectMusic看上去就像是一张瑶琴,那女子双手轻抚,琴韵立时响起,曲调柔和之至,宛如一人轻轻叹息,又似是朝露暗润花瓣,晓风低拂柳梢。琴音似止未止之际,却有一二下极低极细的箫声在琴音旁响了起来。回旋婉转,箫声渐响,恰似吹箫人一面吹,一面慢慢走近,箫声清丽,忽高忽低,忽轻忽响,低到极处之际,几个盘旋之后,又再低沉下去,虽极低极细,每个音节仍清晰可闻。渐渐低音中偶有珠玉跳跃,清脆短促,此伏彼起,繁音渐增,先如鸣泉飞溅,继而如群卉争艳,花团锦簇,更夹着间关莺语,彼鸣我和,渐渐的百鸟离去,春残花落,但闻雨声萧萧,一片凄凉肃杀之象,细雨绵绵,若有若无,终于万籁俱寂。箫声停顿良久,众人这才如梦初醒,恍若隔世为人,竟不知身在何处。
#1  注:DirectMusic是在DirectX 6.0中首次加入的强大部件,实际上相当一个半硬半软(即如果硬件不支持就用软件来支持)的波表合成器。
  在此之前,游戏中的音乐格式始终无法统一,用MIDI、CMF、MOD、WAV、VOC、CD音轨的都有,而这些方法存在不少缺点,比方说 MIDI在不同声卡上表现不一,用 WAV太占空间,读CD音轨时不能访问光牒等。有了DirectMusic之后,就可以保证你能够在不同的环境下都可以正确地演奏出动人的音乐。
  另外,DirectMusic还支持DLS特性,即可以加载不同的声音样本来作为乐器,在以前,这可是只有在高级声卡上才能见到的功能。
  使剑的两人是一老一少,那老者用的是Direct3D Immediate Mode,那少年用的却是Direct3D Retained Mode。同是用剑,这两人的手法却大不相同。那少年的剑法甚是凌厉快捷,先是一招“白虹贯日”,剑尖朝天,长剑一勒,自然而然的便使出“有凤来仪”,不等剑招变老,已转“金雁横空”。长剑在头顶划过,一勾一挑,轻轻巧巧的变为“截手式”,转折之际,直如行云流水,使到“钟鼓齐鸣”收剑,堪堪正是三百招,在座的不乏使剑好手,不待那少年这一趟剑练完,叫好声早已此起彼伏。反观那老者的剑法却极为怪异,翻来覆去只是缓缓用剑在身前画三角形,左边画一个三角形,右边画一个三角形,一个三角形跟着三角形,大三角形、小三角形、平三角形、立三角形、正三角形、斜三角形,如此一个个三角形画将下去,只把厅上众人看得面面相觑,待那老者收剑,竟无一人喝采。
#1  注:Direct3D分为立即模式 (Immediate Mode)和保留模式(Retained Mode)两大部分。
  立即模式为开发者提供了直接使用3D加速卡的各种方法和函数。用立即模式,其关键就是用各种方法去处理、管理三角形(或多边形)及其相关的材质什么的。要想做出高效的3D引擎,立即模式是你的最佳选择。
  保留模式建立在立即模式的基础之上,是一种更易于使用的方式,可以直接使用各种已经建好的3D模型,你也不必去操心那些诸如烦琐的材质管理等内容。唯一的问题是它的效率同立即模式相比实在是太低了,不适合用来做复杂高速的应用。
  在DirectX 6.0中,3D应用的性能提高了60% 。而且对立即模式作了重大改进,其中最引人注目的是:单通材质混合,凹凸映射,自动材质缓存管理,可变的顶点格式和有步幅的顶点,顶点缓存,w-buffer,以及stencil buffers。
  那DirectInput十足乃鼠标、键盘、游戏杆的超级组合体。正在舞它的那人赤膊上阵,右手拿鼠标,左手拿键盘,口插游戏杆,全身上下因力反馈而兴奋得发抖,一举震碎了厅上铺的数十块铁砖,倒也赢得不少喝采。
#1  注:DirectInput是DirectX中负责同输入设备打交道的组件。支持鼠标、键盘、游戏杆和包括力反馈在内的各种其他游戏控制设备。
  手提DirectPlay的那人长得很像一个电缆工人,就算原来不像,提着 DirectPlay 也就像了——那分明就是一卷电缆。据部门经理介绍,通过DirectPlay,你可以隔物伤人,与远处的对手开打。为了证明这一点,他让一个坚决持怀疑态度的倒霉蛋拉紧电缆的一头,然后快活地把另一头搭上了十万伏的高压线,再回过身来,慈祥地说道:“你输了”,那个倒霉蛋在烧焦前的最后亿分之一秒内,终于点了点头,“同意”。
#1  注:DirectPlay是DirectX中用于负责同通讯设备打交道的组件,可以简化用户的网络设置。
  在DirectX 6.0中,DirectPlay对安全方面和性能方面有了不少提高,编程接口亦有很大的改善。
  众人正看得高兴,忽听鼾声大作,原来是余下那两人等不及演练DirectSetup和AutoPlay便早已睡着了,嘴里还在说着梦话:“不就是一个破乎乎的安装程序和光盘的自动播放吗?干嘛要拿出来丢人现眼……”
  我一眼瞥见牛比脸色铁青,便知大势不妙,当即祭起灵猫大遁法落荒而逃,只听身后隐隐传来牛比的怒吼:“杀!”
  回首遥望,聚财峰早已淹没在血海之中,“果然是尸骨无存”,一个熟悉的声音在耳畔响起……