DirectX 8.0呼之欲出 Nebula Chen 2000年 第17期   令游戏制作人员爱恨交织的API即将要步入下一个革命性的时代,原因很简单,微软的DirectX 8.0 已初具雏形,大约将在今年5月份开始进行beta版的测试,DirectX 8.0将具有很多新特性。如果仔细回忆一下,就可以发现DirectX 被划分为覆盖不同技术的API,这些技术对游戏相当重要:图形、声音、多人联机和游戏控制器。现在就让我们来逐一查看,看它们能够给我们带来什么样的震撼效果。 #1 图  形   DirectX中的图形一直被分为两个部分:用于2D图形处理的DirectDraw 和用于3D图形处理的Direct3D。在微软DirectX 8.0中,这种情况将有所变化,微软打算将DirectDraw 和Direct3D合并为一个单一的整体,重点是对全屏3D游戏提供最好可能的支持。微软觉得DirectX 7.0解决了窗口化3D问题,因此窗口内的3D仍然可行,它将肯定不会消失。   微软还正在就API精简进行工作,精简后更多硬件能够在不必等待API的情况下开发出来。例如,前端缓冲——它实际上含有已显示的图像——将不能直接访问。它还将会有一个指针API,使硬件供应商最终能够完全支持DirectX支持的硬件加速指针。   API 3D部分极其重要的一个方面是可编程阴影的概念( programmable shader)。可编程阴影有两种:顶点阴影(vertex shader)和像素阴影。顶点阴影能够用于复杂环境绘图、 程序几何图形和增强矩阵颜料贴皮(matrix palette skinning),它提供了更逼真的特征(例如弯曲时胳膊更像胳膊)。   可编程像素阴影将给我们提供有趣的效果,例如真实反射碰撞绘图。可编程阴影并不是什么新东西,但是将它们包含在硬件之中的想法却有一些新意,这将使3D程序员可以在不了解显卡内部结构的情况下获得对硬件核心体系的访问,这在理论上提供了硬件加速程序纹理的可能性(纹理是通过计算得出,不是以位图形式存储)。   另一个新的API就是图形保真(anti-aliasing)。在API中支持图形保真意味着现在可以在API中看到这些效果,例如,3dfx的 T-buffer图形保真将能够通过程序打开或关闭。同样,还会有一个多抽样技术API,它提供了诸如运动模糊和柔和反射一类效果的可能性,最终将会支持立体纹理。立体纹理可以产生诸如灯光随距离逐渐暗淡、雾化等效果。   微软还打算让DirectX图形走出传统的SGI风格3D图形管线。他们采用的一种方法就是通过支持基于非三角形图元的硬件加速。另外还有更多的工作将进入可升级3D,包括把可升级网格技术整合入DirectX 8.0等。 #1 声  音   和图形一样,微软对于声音处理的目标是合并或者至少是开始合并两个主要的声音API:DirectSound和DirectMusic。由于这两个API在某些方面互补,合并很有意义。例如,你可以对DLS2 MIDI样本进行3D音频处理。这意味着 DirectMusic可以被当作一种高级音频API用于多种音频流。   在声音效果方面,一个新特性是通过DLS2可下载样本的音响效果。这使得游戏开发人员能够利用所有的硬件加速MIDI表现来加强声音效果。另外一个有趣的新特性是数字音轨(WAV文件)和MIDI样本的混合能力,它能够使数字音轨和MIDI同步合成,可以预见这将有可能提供引人入胜的效果。它还将能够执行音频原稿,这将使游戏开发组中的声音设计人员能够对声音的处理或声音将如何对交互式输入作出反应进行大量控制,而不再需要通过编程来实现声音设计者的意图。   创新公司的部分EAX混响术也将整合进DirectX音频体系中。环境混响的使用将使游戏开发人员能够开发出更为逼真的3D音场。从技术上来说,EAX只是对微软DirectSound3D API的增强。它可以根据产生声音的游戏环境的变化而产生不同的三维回响效果,例如,在野外或空仓库或金属管道内的枪声听起来将有所不同。 #1 游戏控制器   DirectInput最大的变化是增加了DirectInput制图人(mapper),这项技术仍处在早期阶段。DirectX8.0 版不会成为支持所有可能输入设备的通用语言。DirectInput制图人技术的目标是创立一种共同语言,通过这种语言,游戏开发人员能够以标准方式访问多种复杂的输入设备。例如,如果你有一个USB脚踏方向盘和一个USB游戏操纵杆,即使两者是由不同的厂家生产并具有不同的驱动程序,这两种工具仍然能够共同正常工作。这种类型的游戏控制器在DirectX8.0 中还不能得到充分认识,但是微软正在逐步调整目前游戏控制器方面存在的混乱状态。这意味着游戏程序员可以不用知道大量不同游戏控制器与它们在游戏正常工作时的细节。 #1 多人联机(multiplayer)   DirectX 8.0中的多人联机技术包含网络、语音和语音通信技术。现在更多的家庭具有了多台联网的个人电脑,用户也希望它们都能够具有玩游戏的能力,所以在DirectX 8.0中添加了网络方面的内容。像防火墙、邮件路由和其它复杂的新出现的问题也在考虑范围之内。   语音将成为玩游戏体验中的一个重要方面。语音分为两个部分:语音识别和文本朗读。会说话的计算机不再是一件遥远的事情。语音识别,微软称之为“命令和控制”,能够提供一些实际好处,尤其是对于那些键盘命令占很大比重的游戏来说,好处是显而易见的。   多人联机的另一个新特性是语音通信。微软正通过最近对ShadowFactor软件公司的收购来创立DirectPlay语音,它在本质上是把Battlecom技术整合进了DirectX(Battlecom是由ShadowFactor开发的一个通过IP进行语音通信的软件包。)。该应用程序接口将被整合进DirectX,游戏开发人员可以用标准方式直接把多人联机语音整合进他们开发的游戏项目中了。 #1 应用程序管理器   对于终端用户来说,DirectX中的应用程序管理器可能会很有争议。这是一个自动安装工具,它不仅在你驱动器中放入CD或DVD时自动安装游戏,而且还负责找到最佳安装位置并确定是否有足够的空间可用。   例如,如果你有两个游戏:《帝国时代Ⅱ》和《烈火风暴》。当你首先把《帝国时代Ⅱ》光盘放入驱动器内,安装过程发现没有足够的硬盘空间。它将压缩或删除《烈火风暴》的关键部分。而当你运行《烈火风暴》时,你将放入光盘,会将任何删除的部分都重新安装。   这样的新功能使得其更加便于使用,但是存在问题的可能性同样也很大。如果《烈火风暴》是从网上安装的,安装不需要光盘,应用程序管理器具有处理补丁的能力,但是因为每次都需要安装补丁,这是否意味着你每次都需要高速联网? #1 DirectX 与开发人员   DirectX最显著的变化之一是Directx 8.0 程序似乎比以前更加开放了。   尽管DirectX 8.0 即将发布的消息令人兴奋,但令人失望的是微软没有对可能是最重要的API——Direct3D的改进进行详细说明。这些年来,微软对D3D的成功改进给人留下了深刻的印象,但游戏制作人员想知道的是通过即将发布的D3D,他们的游戏看起来是否更精美、运行速度是否更快,可是到目前为止,我们对此依然无法有一个清楚的了解。   虽然X-Box已经发布,微软并没有发布面向游戏平台类游戏的任何DirectX方面的改进。去年,微软放弃了大幅度改进DirectX 8.0中用户功能的进程。目标是使个人电脑游戏像游戏平台类游戏一样易于使用,换句话说,游戏人员只要把光盘放入到驱动器中就可以开始玩游戏了。这些功能对于X-Box来说也是必需的,毕竟很多玩视频游戏的人并不熟悉诸如安装和硬件驱动程序的概念。   不管怎样,可以相信Directx 8.0将在很多方面进行改进,这可能会使人们获得更好的游戏视听效果,它对游戏开发人员更加开放,游戏开发人员可以很容易地充分利用DirectX 8.0强大功能来开发出视听效果更好的游戏。   对于终端用户来说,Directx 8.0将或多或少是无形的——至少像以前的DirectX一样。以前DirectX发布时,我们都或多或少地遇到一些问题,但是从整体上来说,这些程序还是能够很好地工作。DirectX 8.0的发布是 DirectX发布史上最重大的一件事情,可能像刚开始发布时一样重要。我们只能希望DirectX 8.0在内容和质量上也是这样。