种豆资源网

当前位置:首页 > 百科 > 百科综合 / 正文

DirectX 8.0

(2020-04-27 01:19:00) 百科综合
DirectX 8.0

DirectX 8.0

DirectX 8.0 的每个组件都包括了重要的新特性,它们极大地增强了 DirectX 的功能。图形、音频和网路三个组件被彻底重写。DirectInput; 包括了新的配置功能、操作映射和更好的国际化支持。DirectShow; 第一次作为 DirectX 的一部分出现在运行时和 SDK 中。

基本介绍

  • 中文名:DirectX 8.0
  • 集成: DirectDraw 
  • 特点:增强了 DirectX 的功能
  • 功能:操作映射和更好的国际化支持

前言

简而言之,DirectX 8.0 提供的新特性包括:
DirectX Graphics——集成 DirectDraw 和 Direct3DMicrosoft DirectDraw® 和 Microsoft Direct3D® 併入了 DirectX Graphics 组件。API 已经进行了大幅度更新,现在更容易使用,并且支持最新的图形硬体。最引人注目的新特性是支持可程式着色器(着色器是用着色语言编写的一段代码,着色语言是专为在可程式顶点流水线或可程式像素流水线中使用而设计的)。DirectX Audio——集成 DirectMusic 和 DirectSoundMicrosoft DirectMusic® 和 Microsoft DirectSound® 现在紧密集成到新的 DirectX Audio 组件中。WAV 档案或其他资源现在可以由 DirectMusic 载入器载入,通过 DirectMusic 演奏器进行播放,并用 MIDI 音响进行同步。DirectPlay 可伸缩性和性能更佳Microsoft DirectPlay® 组件进行了大幅度更新,其易用性和功能均得到改进,在可伸缩性和性能方面尤为显着。此外,DirectPlay 现在还支持玩家之间的语音通讯。DirectInput 中的操作映射Microsoft DirectInput 引入了一个重要的新特性:操作映射。通过操作映射能够在输入操作和输入设备之间建立连线。您只需输入设备处理,而不必再依赖特定的设备对象。DirectX 中包含 DirectShow现在 Microsoft DirectShow 是 DirectX 的一个组成部分,在此版本中已经进行了更新。

概述

DirectX 8.0 的每个组件都包括了重要的新特性,它们极大地增强了 DirectX 的功能。图形、音频和网路三个组件被彻底重写。DirectInput® 包括了新的配置功能、操作映射和更好的国际化支持。

DirectX 8.0 Graphics

DirectX 8.0 Microsoft Direct3D® API 接口中加入了许多新特性,许多原有性能也得以增强。
DirectDraw 和 Direct3D 完整集成可程式顶点处理语言可程式像素处理语言多重採样渲染支持点对象三维立体纹理更高阶的图元支持针对各种 D3D 的三维内容创建工具支持带索引的顶点混色扩展的 Direct3DX 工具库DirectX Graphics 的一个最显着的变化是将 DirectDraw(二维图形接口)和 Direct3D(三维图形接口)合併为一个公用接口。迄今为止的很长一段时间内,DirectDraw 和 Direct3D 一直相互交叉,因此,将它们划分为两个独立的接口越来越不适应发展。新的集成简化了 Direct3D 核心的初始化和控制,使这些操作更加简单。这种变化不仅简化了应用程式的初始化,而且改进了数据分配和管理的性能,从而减少了记忆体的占用。合併接口的另一个原因是 DirectDraw 的开发几乎完全停止了,在 DirectX 6.0 和 DirectX 7.0 中对它所作的修改仅仅是稍作美化。
可程式着色器的加入可以说是 DirectX 8.0 中 Direct3D 更新的最显着特性。语言的扩充性非常好——考虑到未来几年内图形硬体方面将涌现大量新特性,我们对着色语言所进行的小小补充将会获得数倍的回报。着色语言是同时为顶点处理和像素处理提供的。
可程式顶点处理语言使程式设计师可为下列情况编写硬体着色器:
变形/过渡动画定义矩阵调色板外观用户定义的光照模型一般的环境贴图过程性几何图形任何其他开发人员定义的算法可程式像素处理语言使程式设计师可为下列情况编写自定义的硬体着色器:
一般的纹理合併表达式按像素光照(凹凸贴图)按像素环境贴图(用于照片级真实效果)其他开发人员定义的算法
另外一些精彩特性使得实现各种特殊效果更加简单。多重採样渲染支持可以实现全方位的反走样和多重採样效果,例如动态柔化和景深。点对象支持可以实现闪烁、爆炸、下雨、下雪等微粒系统的高性能渲染。立体纹理可在按像素光照和立体模糊效果中实现区域衰减,并可以套用到更複杂的几何图形中。
更高阶的图元支持改善了三维内容的外观,用主流三维创作工具创建的内容的映射也更为简单。另外,DirectX 8.0 Graphics 还包括三维内容创建工具外挂程式,可将外观格线导出到 .X 档案,以便以后在 Direct3D(使用各种 Direct3D 技术)、多重精度级别细节 (LOD) 几何图形和更高阶曲面数据中使用。带索引的顶点混色扩展了几何图形混色支持,这样,用于顶点混色的矩阵就能够通过矩阵索引来引用。
Direct3DX (D3DX) 工具库中添加了大量功能,在 Direct3D 之上构造的帮助器层简化了三维图形开发人员所遇到的常见任务。D3DX 现在包括“定义外观”库(支持使用格线)以及用于装配顶点和像素着色器的功能。请注意,原来由 D3D_OVERLOADS 提供的功能现在已经移到 D3DX 工具库中。(D3D_OVERLOADS 在 Microsoft DirectX 5.0 中首次引入。)

DirectX Audio

Microsoft DirectX 8.0 Audio 为播放集成的音乐和声音效果提供了新的体系结构。儘管仍然使用名称 Microsoft DirectSound 和 Microsoft DirectMusic,但在它们之间已经没有明显的区别。希望将来 DirectMusic API 能够成为创建互动式声音效果的首选 API。
DirectX 8.0 Audio 的部分新特性包括:
.wav 档案和基于讯息的声音集成在一个播放机制中音频通道模型更加灵活、强大,其中包括对段落状态进行个别控制DLS2 合成,包括特殊效果音频脚本编写容器对象,用于在单个档案中保存 DirectMusic Producer 工程的所有组件对演奏、段落和声道的更强大的控制新的音频体系结构将 DirectMusic 合成器作为主要的 DirectX 8.0 Audio 声音生成器。这一高度最佳化的可下载声音级别 2 (DLS2) 合成器可以创建所有的声音,对它们进行混音,并将结果传送到 DirectSound 快取,以便进行进一步的处理。DirectMusic 合成器也可以在输出之前将多个独立的声音进行混音。这样,多个独立的声音可以通过同一种音频效果进行处理,并分配到三维空间中的同一个位置。它们只使用一个 DirectSound3D 快取,将 CPU 的使用和对三维硬体的要求降至最低
.wav 档案和资源现在可以通过 DirectMusic 载入器载入,并通过 DirectMusic 演奏器播放。应用程式不再需要分析 .wav 档案,并将其複製或流入 DirectSound 快取。.wav 档案播放的定时基于 DirectMusic 主时钟,.wav 档案可以在音乐事件发生的同时播放,并可以象其他段落一样通过工具处理。DirectSound API 仍然会得到支持,您仍然可以通过 DirectSound 快取直接播放 .wav 档案。DirectSound 仍将是用于 .wav 档案捕获和全双工的 API。
在以前版本的 DirectMusic 中,演奏通道被映射到连线埠,同时每个连线埠将其输出传送到一个 DirectSound 快取。在新的模型下,段落中的声道被映射到音频通道,控制数据从演奏器流向最终输出。合成器的输出可以传送到多个播放快取,而每个播放快取有自己的三维位置和效果。音频通道由应用程式动态创建,或者设计在段落中。段落的每个播放实例都有自己的音频通道,因此可以单独修改每个段落状态的音量、音质和音调等参数。
DirectMusic 合成器现在基于 DLS2 标準,能够提供更高质量的声音合成。DLS2 合成器的新特性包括六级封装、语音分层、释放波形和额外的低频振荡器 (LFO)。每个语音都有一个可选的低通谐振过滤器。作为新的音频体系结构的一部分,DLS2 合成器可用于简单的声音效果播放,包括:
任意循环点每个声音的过滤器混音自动流播放用于播放的 ACM 编解码集成效果处理汇流排轻鬆载入 .wav 档案通过使用脚本,作曲家和音效设计师可以对演奏器进行更自如的控制。应用程式不需要处理播放的细节,而代之以调用脚本。例如,一个游戏事件可能触发一个脚本函式。通过修改函式,脚本作者可以轻鬆地修改声道对游戏事件的回响。
DirectMusic Producer 工程的所有组件都可以保留在一个档案中,查找和载入所有对象非常容易。容器也可以嵌在段落中,因此播放一个段落所需要的所有内容都可以保存在这个段落中。
DirectX Audio 对演奏、段落和声道的控制更加强大。演奏通知事件现在有一个新的通知类型 DMUS_NOTIFICATION_MUSICALMOSTEND,它表示伫列中的最后一个主段落即将结束。这样,应用程式就有机会来计画播放新的段落。
段落的新特性包括:作曲家可以在段落中设定点,指定从何处开始播放段落,从而维护段落与时间签名之间的关係。主段落可以包含联接其他段落的任意点。这些点不仅可以联接最近的小节、节拍或格线,还可以进行更多的控制。在当前主段落完成播放时,可以播放新的段落联接标誌 DMUS_SEGF_SEGMENTEND 指定的段落。新的 DMUS_SEG_REPEAT_INFINITE 标誌使得一个段落可以播放无限多次。
对于声道,新的配置和播放标记使得每次播放或循环播放某个段落时,都可以对声道进行改写。例如,可以配置和弦声道,使得每次播放该段落时,都建立新的和声进行。应用程式可以单独设定各个声道的配置,禁用播放和参数控制。声道可以配置为根据时钟时间而不是音乐时间进行操作。通过配置自控段落中的声道,可以用它来替代主段落或控制中的参数声道。最后,包含歌词声道的段落可以将时间戳记文字传送到演奏器。
限于篇幅,其他的新音频特性在这里不再赘述。如果您正在深入研究音频,研究 DirectX 8 的音频特性可能要花费您的大量时间。

DirectX 8.0 DirectPlay

DirectPlay 是应用程式和通讯服务之间的高级软体接口。有了 DirectPlay,通过 Internet、数据机连结或网路来连线游戏将非常简单。DirectPlay 既提供了高级的传输层服务(例如,有保证或无保证的传递,慢速连结上的通讯扼杀,以及放弃连线检测等),也提供了会话层服务(包括玩家名称表管理和点对点主机转移)。
下面是 Microsoft DirectPlay API for DirectX 8.0 的新特性列表:
接口已经完全重写。前端操作现在与 DirectPlay 的其他部分无关。已经加入了语音传输。定址信息已经从基于 GUID 的数据格式变为基于 URL 的数据格式。可伸缩性更强大,记忆体管理更完善。对防火墙和网路地址翻译器 (NAT) 的支持更佳。分离创建点对点会话和客户端/伺服器会话的接口,使创建网路应用程式的複杂度得到了奇蹟般的简化。用于创建 DirectPlay 传输会话的接口包括:
IDirectPlay8Peer,提供创建点对点会话的方法IDirectPlay8Client,提供创建客户端/伺服器应用程式的客户端部分的方法IDirectPlay8Server,提供创建客户端/伺服器应用程式的伺服器端部分的方法DirectPlay 不再要求前端客户端只能与 DirectPlay 应用程式配合使用。这样,前端服务提供程式和应用程式都可以实现 DirectPlay,而无须相互匹配。前端实施现在分为两个简化的接口:
IDirectPlay8LobbyClient,用于管理前端客户端,以及计算和启动前端识别应用程式。IDirectPlay8LobbiedApplication,用于在系统中注册可由前端启动的应用程式,使它真正能由前端启动。它也用于从前端获取连线信息,使游戏启动时无需查询用户。DirectPlay Voice 提供了一组接口,用于给应用程式添加实时语音通讯。下列新接口提供了语音支持:
IDirectPlayVoiceClient 提供了在 DirectPlay Voice 会话中创建和管理客户端的方法。IDirectPlayVoiceServer 提供了承载和管理 DirectPlay Voice 会话的方法。IDirectPlayVoiceTest 用于测试客户端计算机上的音频设定。
以前版本的 DirectPlay 通过 GUID 地址使用二进制数据块,难以实现和读取。在 DirectX 8.0 中,DirectPlay 引入了 URL 格式的地址表示方法,并使用一组新的接口来创建和操作新的定址格式:
IDirectPlay8Address 提供用于创建和操作 DirectPlay 地址的基本定址方法。IDirectPlay8AddressIP 提供 IP 提供程式专用的定址服务。就 DirectX 8.0 而言,DirectPlay 已经被彻底重写,以便提供卓越的性能和强大的可伸缩性。用户频宽的增长给网路游戏设计和实施带来了天翻地覆的影响。改进的 DirectPlay 执行绪缓冲池管理使开发人员更容易设计可变化而且更可靠的应用程式,能够同时支持大量在线上玩家。
编写跨越 NAT、防火墙和其他 Internet 连线共享 (ICS) 方法的网路游戏可能会非常困难,针对无保证 (UDP) 通讯编写网路游戏尤其困难。在 DirectX 8.0 中,DirectPlay 开发时已经注意了这些问题,它将支持可能的 NAT 解决方案。DirectPlay TCP/IP 服务提供程式对游戏数据使用单一的、开发人员可选的 UDP 连线埠,从而可以适当地配置防火墙和 NAT。另外,DirectPlay 使用了 UDP,因此对于客户端/伺服器体系结构的游戏来说,某些 NAT 后的客户端可以直接连线到游戏,而无须进行额外的配置。

DirectX 8.0 DirectInput

DirectInput 为游戏桿、头盔、多键滑鼠以及力回馈设备等各种输入设备提供了最先进的接口。通过直接与设备驱动程式配合,DirectInput 绕过了 Windows 讯息系统,提供了最佳性能。
Microsoft DirectInput API for DirectX 版本 8.0 中新特性的列表如下:
操作映射对国际化应用程式的支持更佳新的接口创建支持对游戏桿滑块数据的更改操作映射是支持输入设备方面的一个重大进步。操作映射简化了输入循环,降低了游戏中对自定义游戏驱动程式、自定义设备分析器和自定义配置用户接口的需要。操作映射也包括了默认的用户接口,使用户可以快速简便地配置设备。这种标準 API 通过低级用户接口 API 来实现,使应用程式可以在其自定义用户接口中直接访问设备映像。
DirectX 8.0 中的 DirectInput 设备支持新的属性,这些属性可以处理从国际化键盘上输入的本地化的键名。共添加了两个键盘属性:DIPROP_KEYNAME,用于检索本地化的键名;DIPROP_SCANCODE,用于检索扫描码。这些特性对于大多数在全世界发布的基于 DirectInput 的应用程式非常有用。
DirectInput 对象现在通过 IDirectInput8 接口来表示。新的帮助器函式 DirectInput8Create 可创建对象并检索此接口。IDirectInput8 具有一个新 CLSID,并且不能通过对 CLSID_DirectInput 类对象的接口调用 QueryInterface 来获取,这一点与以前的 DirectX 版本有所不同。
游戏桿滑块数据在以前的 DirectX 版本中分配到 DIJOYSTATE 或 DIJOYSTATE2 结构的 Z 轴,现在则位于这些结构的 rglSlider 数组中。儘管这种变化会导致对现有代码的必要调整,但它终究更容易理解。

DirectX 8.0 DirectShow

此版本中的 DirectShow 也进行了大幅度修改。DirectX 8.0 中添加的部分新特性包括:
新的过滤图形特性Windows Media™ 格式支持视频编辑支持新的 DVD 支持新的 MPEG-2 传输和程式流支持对广播驱动程式体系结构的支持DirectX 媒体对象过滤图形管理器支持一些新的特性,包括动态图形生成和实时来源合成。使用动态图形生成,您现在可以在图形运行过程中对过滤图形进行修改。而以前,要添加或删除过滤器,应用程式必须停止该图形,因而打断数据流。DirectShow 现在还支持实时来源合成——例如,可以将实时音频流与实时视频流合成。
两个新的过滤器使 DirectShow 应用程式可以读取或写入 Microsoft Windows Media 格式的档案。ASF Reader 过滤器用于读取和分析 Windows Media 格式的档案;ASF File Writer 过滤器用于写入 Windows Media 格式的档案,并能够执行必要的複合和压缩操作。DirectShow 和 Windows Media SDK 现在提供了完整的解决方案,用于编写应用程式来创建和播放 Windows Media 格式流。
新的 DirectShow 编辑服务 (DES) API 支持视频编辑。DES 建立在核心的 DirectShow 体系结构之上,提供了一组专门为操作视频编辑工程而设计的接口。DirectShow 的框架更适合于创建视频编辑应用程式,作为应用程式开发人员,您将从中获益匪浅。DES 取代了剪下表,同时剪下表将不再受到支持。
两个新的接口 IDVDControl2 和 IDVDInfo2 极大地扩展了 DVD 导航器的功能。DVD 导航器现在实现了完整的 DVD Annex-J 命令集,既可以播放卡拉 OK,也可以播放影碟。新的 MSWebDVD ActiveX® 控制项使这项功能可在基于脚本的应用程式中使用。
新的过滤器 MPEG-2 Demultiplexer 提供了在推模式下(从实时来源接收数据)对 MPEG-2 传输流和程式流的支持。该过滤器与过滤图形中的新实时来源合成支持配合,可以提供优异的 MPEG-2 增强支持。
Microsoft 广播驱动程式体系结构 (BDA) 是新一代数/模电视调製设备的规範。在 DirectX 8.0 中,DirectShow 通过一组新的核心模式设备过滤器和“BDA 调製模型”来支持 BDA 兼容设备。“BDA 调製模型”是一组对象的集合,提供了对各种类型的数字和模拟网路进行调製的方法。
DirectX 媒体对象 (DMO) 提供了编写数据流组件的新方法。与 DirectShow 过滤器相似,DMO 接受输入数据,并将其用于生成输出数据。但是,DMO API 比相应的 DirectShow API 简单得多。因此,DMO 比 DirectShow 过滤器更容易创建、测试和使用。DMO 与 DirectShow 完全兼容。只要您需要使用 DirectShow 提供的服务,例如图形同步、智慧型连线、数据流的自动处理和执行绪管理,您都可以使用 DMO。但是,DMO 不需要使用过滤图形,因此应用程式无需 DirectShow 就可以使用 DMO。
DirectX 8.0 版本的 DirectShow 包含更多的功能,但限于篇幅,这里就不再多说。请记着试用新增和改进的 DirectShow。

结语

总之,DirectX 8.0 是一个激动人心的版本,具有多媒体开发人员所需的各种优秀功能。无论您关注的是三维图形、音频、网路还是视频,您都可以发现新的功能。

标 签

搜索
随机推荐

Powered By 种豆资源网||