DirectX 8.0 的每個(gè)組件都包括了重要的新特性,它們極大地增強(qiáng)了 DirectX 的功能。圖形、音頻和網(wǎng)絡(luò)三個(gè)組件被徹底重寫(xiě)。DirectInput; 包括了新的配置功能、操作映射和更好的國(guó)際化支持。DirectShow; 第一次作為 DirectX 的一部分出現(xiàn)在運(yùn)行時(shí)和 SDK 中。
前言
簡(jiǎn)而言之,DirectX 8.0 提供的新特性包括:
DirectX Graphics——集成 DirectDraw 和 Direct3DMicrosoft DirectDraw? 和 Microsoft Direct3D? 并入了 DirectX Graphics 組件。Vulkan 已經(jīng)進(jìn)行了大幅度更新,現(xiàn)在更容易使用,并且支持最新的圖形硬件。最引人注目的新特性是支持可編程著色器(著色器是用著色語(yǔ)言編寫(xiě)的一段代碼,著色語(yǔ)言是專(zhuān)為在可編程頂點(diǎn)流水線(xiàn)或可編程像素流水線(xiàn)中使用而設(shè)計(jì)的)。DirectX Audio——集成 DirectMusic 和 DirectSoundMicrosoft DirectMusic? 和 Microsoft DirectSound? 現(xiàn)在緊密集成到新的 DirectX Audio 組件中。WAV 文件或其他資源現(xiàn)在可以由 DirectMusic 加載器加載,通過(guò) DirectMusic 演奏器進(jìn)行播放,并用 MIDI 音響進(jìn)行同步。DirectPlay 可伸縮性和性能更佳微軟 DirectPlay? 組件進(jìn)行了大幅度更新,其易用性和功能均得到改進(jìn),在可伸縮性和性能方面尤為顯著。此外,DirectPlay 現(xiàn)在還支持玩家之間的語(yǔ)音通訊。DirectInput 中的操作映射Microsoft DirectInput 引入了一個(gè)重要的新特性:操作映射。通過(guò)操作映射能夠在輸入操作和輸入設(shè)備之間建立連接。您只需輸入設(shè)備處理,而不必再依賴(lài)特定的設(shè)備對(duì)象。DirectX 中包含 DirectShow現(xiàn)在 微軟 DirectShow 是 DirectX 的一個(gè)組成部分,在此版本中已經(jīng)進(jìn)行了更新。
概述
DirectX 8.0 的每個(gè)組件都包括了重要的新特性,它們極大地增強(qiáng)了 DirectX 的功能。圖形、音頻和網(wǎng)絡(luò)三個(gè)組件被徹底重寫(xiě)。DirectInput? 包括了新的配置功能、操作映射和更好的國(guó)際化支持。
DirectX 8.0 Graphics
DirectX 8.0 Microsoft Direct3D? API 接口中加入了許多新特性,許多原有性能也得以增強(qiáng)。
DirectDraw 和 Direct3D 完整集成可編程頂點(diǎn)處理語(yǔ)言可編程像素處理語(yǔ)言多重采樣渲染支持點(diǎn)對(duì)象三維立體紋理更高階的圖元支持針對(duì)各種 D3D 的三維內(nèi)容創(chuàng)建工具支持帶索引的頂點(diǎn)混色擴(kuò)展的 Direct3DX 工具庫(kù)DirectX Graphics 的一個(gè)最顯著的變化是將 DirectDraw(二維圖形接口)和 Direct3D(三維圖形接口)合并為一個(gè)公用接口。迄今為止的很長(zhǎng)一段時(shí)間內(nèi),DirectDraw 和 Direct3D 一直相互交叉,因此,將它們劃分為兩個(gè)獨(dú)立的接口越來(lái)越不適應(yīng)發(fā)展。新的集成簡(jiǎn)化了 Direct3D 核心的初始化和控制,使這些操作更加簡(jiǎn)單。這種變化不僅簡(jiǎn)化了應(yīng)用程序的初始化,而且改進(jìn)了數(shù)據(jù)分配和管理的性能,從而減少了內(nèi)存的占用。合并接口的另一個(gè)原因是 DirectDraw 的開(kāi)發(fā)幾乎完全停止了,在 DirectX 6.0 和 DirectX 7.0 中對(duì)它所作的修改僅僅是稍作美化。
可編程著色器的加入可以說(shuō)是 DirectX 8.0 中 Direct3D 更新的最顯著特性。語(yǔ)言的擴(kuò)充性非常好——考慮到未來(lái)幾年內(nèi)圖形硬件方面將涌現(xiàn)大量新特性,我們對(duì)著色語(yǔ)言所進(jìn)行的小小補(bǔ)充將會(huì)獲得數(shù)倍的回報(bào)。著色語(yǔ)言是同時(shí)為頂點(diǎn)處理和像素處理提供的。
可編程頂點(diǎn)處理語(yǔ)言使程序員可為下列情況編寫(xiě)硬件著色器:
變形/過(guò)渡動(dòng)畫(huà)定義矩陣調(diào)色板外觀用戶(hù)定義的光照模型一般的環(huán)境貼圖過(guò)程性幾何圖形任何其他開(kāi)發(fā)人員定義的算法可編程像素處理語(yǔ)言使程序員可為下列情況編寫(xiě)自定義的硬件著色器:
一般的紋理合并表達(dá)式按像素光照(凹凸貼圖)按像素環(huán)境貼圖(用于照片級(jí)真實(shí)效果)其他開(kāi)發(fā)人員定義的算法
另外一些精彩特性使得實(shí)現(xiàn)各種特殊效果更加簡(jiǎn)單。多重采樣渲染支持可以實(shí)現(xiàn)全方位的反走樣和多重采樣效果,例如動(dòng)態(tài)柔化和景深。點(diǎn)對(duì)象支持可以實(shí)現(xiàn)閃爍、爆炸、下雨、下雪等微粒系統(tǒng)的高性能渲染。立體紋理可在按像素光照和立體模糊效果中實(shí)現(xiàn)區(qū)域衰減,并可以應(yīng)用到更復(fù)雜的幾何圖形中。
更高階的圖元支持改善了三維內(nèi)容的外觀,用主流三維創(chuàng)作工具創(chuàng)建的內(nèi)容的映射也更為簡(jiǎn)單。另外,DirectX 8.0 Graphics 還包括三維內(nèi)容創(chuàng)建工具插件,可將外觀網(wǎng)格導(dǎo)出到 .X 文件,以便以后在 Direct3D(使用各種 Direct3D 技術(shù))、多重精度級(jí)別細(xì)節(jié) (LOD) 幾何圖形和更高階曲面數(shù)據(jù)中使用。帶索引的頂點(diǎn)混色擴(kuò)展了幾何圖形混色支持,這樣,用于頂點(diǎn)混色的矩陣就能夠通過(guò)矩陣索引來(lái)引用。
Direct3DX (D3DX) 工具庫(kù)中添加了大量功能,在 Direct3D 之上構(gòu)造的幫助器層簡(jiǎn)化了三維圖形開(kāi)發(fā)人員所遇到的常見(jiàn)任務(wù)。D3DX 現(xiàn)在包括“定義外觀”庫(kù)(支持使用網(wǎng)格)以及用于裝配頂點(diǎn)和像素著色器的功能。請(qǐng)注意,原來(lái)由 Direct3D_OVERLOADS 提供的功能現(xiàn)在已經(jīng)移到 D3DX 工具庫(kù)中。(D3D_OVERLOADS 在 Microsoft DirectX 5.0 中首次引入。)
DirectX Audio
Microsoft DirectX 8.0 Audio 為播放集成的音樂(lè)和聲音效果提供了新的體系結(jié)構(gòu)。盡管仍然使用名稱(chēng) 微軟 DirectSound 和 Microsoft DirectMusic,但在它們之間已經(jīng)沒(méi)有明顯的區(qū)別。希望將來(lái) DirectMusic API 能夠成為創(chuàng)建交互式聲音效果的首選 API。
DirectX 8.0 Audio 的部分新特性包括:
.wav 文件和基于消息的聲音集成在一個(gè)播放機(jī)制中音頻通道模型更加靈活、強(qiáng)大,其中包括對(duì)段落狀態(tài)進(jìn)行個(gè)別控制DLS2 合成,包括特殊效果音頻腳本編寫(xiě)容器對(duì)象,用于在單個(gè)文件中保存 DirectMusic Producer 工程的所有組件對(duì)演奏、段落和聲道的更強(qiáng)大的控制新的音頻體系結(jié)構(gòu)將 Direct音樂(lè) 合成器作為主要的 DirectX 8.0 Audio 聲音生成器。這一高度優(yōu)化的可下載聲音級(jí)別 2 (DLS2) 合成器可以創(chuàng)建所有的聲音,對(duì)它們進(jìn)行混音,并將結(jié)果發(fā)送到 DirectSound 緩存,以便進(jìn)行進(jìn)一步的處理。DirectMusic 合成器也可以在輸出之前將多個(gè)獨(dú)立的聲音進(jìn)行混音。這樣,多個(gè)獨(dú)立的聲音可以通過(guò)同一種音頻效果進(jìn)行處理,并分配到三維空間中的同一個(gè)位置。它們只使用一個(gè) DirectSound3D 緩存,將 CPU 的使用和對(duì)三維硬件的要求降至最低
.wav 文件和資源現(xiàn)在可以通過(guò) DirectMusic 加載器加載,并通過(guò) DirectMusic 演奏器播放。應(yīng)用程序不再需要分析 .wav 文件,并將其復(fù)制或流入 DirectSound 緩存。.wav 文件播放的定時(shí)基于 DirectMusic 主時(shí)鐘,.wav 文件可以在音樂(lè)事件發(fā)生的同時(shí)播放,并可以象其他段落一樣通過(guò)工具處理。DirectSound API 仍然會(huì)得到支持,您仍然可以通過(guò) DirectSound 緩存直接播放 .wav 文件。DirectSound 仍將是用于 .wav 文件捕獲和全雙工的 API。
在以前版本的 DirectMusic 中,演奏通道被映射到端口,同時(shí)每個(gè)端口將其輸出發(fā)送到一個(gè) DirectSound 緩存。在新的模型下,段落中的聲道被映射到音頻通道,控制數(shù)據(jù)從演奏器流向最終輸出。合成器的輸出可以發(fā)送到多個(gè)播放緩存,而每個(gè)播放緩存有自己的三維位置和效果。音頻通道由應(yīng)用程序動(dòng)態(tài)創(chuàng)建,或者設(shè)計(jì)在段落中。段落的每個(gè)播放實(shí)例都有自己的音頻通道,因此可以單獨(dú)修改每個(gè)段落狀態(tài)的音量、音質(zhì)和音調(diào)等參數(shù)。
DirectMusic 合成器現(xiàn)在基于 DLS2 標(biāo)準(zhǔn),能夠提供更高質(zhì)量的聲音合成。DLS2 合成器的新特性包括六級(jí)封裝、語(yǔ)音分層、釋放波形和額外的低頻振蕩器 (LFO)。每個(gè)語(yǔ)音都有一個(gè)可選的低通諧振過(guò)濾器。作為新的音頻體系結(jié)構(gòu)的一部分,DLS2 合成器可用于簡(jiǎn)單的聲音效果播放,包括:
任意循環(huán)點(diǎn)每個(gè)聲音的過(guò)濾器混音自動(dòng)流播放用于播放的 ACM 編解碼集成效果處理總線(xiàn)輕松加載 .wav 文件通過(guò)使用腳本,作曲家和音效設(shè)計(jì)師可以對(duì)演奏器進(jìn)行更自如的控制。應(yīng)用程序不需要處理播放的細(xì)節(jié),而代之以調(diào)用腳本。例如,一個(gè)游戲事件可能觸發(fā)一個(gè)腳本函數(shù)。通過(guò)修改函數(shù),腳本作者可以輕松地修改聲道對(duì)游戲事件的響應(yīng)。
DirectMusic Producer 工程的所有組件都可以保留在一個(gè)文件中,查找和加載所有對(duì)象非常容易。容器也可以嵌在段落中,因此播放一個(gè)段落所需要的所有內(nèi)容都可以保存在這個(gè)段落中。
DirectX Audio 對(duì)演奏、段落和聲道的控制更加強(qiáng)大。演奏通知事件現(xiàn)在有一個(gè)新的通知類(lèi)型 DMUS_NOTIFICATION_MUSICALMOSTEND,它表示隊(duì)列中的最后一個(gè)主段落即將結(jié)束。這樣,應(yīng)用程序就有機(jī)會(huì)來(lái)計(jì)劃播放新的段落。
段落的新特性包括:作曲家可以在段落中設(shè)置點(diǎn),指定從何處開(kāi)始播放段落,從而維護(hù)段落與時(shí)間簽名之間的關(guān)系。主段落可以包含聯(lián)接其他段落的任意點(diǎn)。這些點(diǎn)不僅可以聯(lián)接最近的小節(jié)、節(jié)拍或網(wǎng)格,還可以進(jìn)行更多的控制。在當(dāng)前主段落完成播放時(shí),可以播放新的段落聯(lián)接標(biāo)志 DMUS_SEGF_SEGMENTEND 指定的段落。新的 DMUS_SEG_REPEAT_INFINITE 標(biāo)志使得一個(gè)段落可以播放無(wú)限多次。
對(duì)于聲道,新的配置和播放標(biāo)記使得每次播放或循環(huán)播放某個(gè)段落時(shí),都可以對(duì)聲道進(jìn)行改寫(xiě)。例如,可以配置和弦聲道,使得每次播放該段落時(shí),都建立新的和聲進(jìn)行。應(yīng)用程序可以單獨(dú)設(shè)置各個(gè)聲道的配置,禁用播放和參數(shù)控制。聲道可以配置為根據(jù)時(shí)鐘時(shí)間而不是音樂(lè)時(shí)間進(jìn)行操作。通過(guò)配置自控段落中的聲道,可以用它來(lái)替代主段落或控制中的參數(shù)聲道。最后,包含歌詞聲道的段落可以將時(shí)間戳記文字發(fā)送到演奏器。
限于篇幅,其他的新音頻特性在這里不再贅述。如果您正在深入研究音頻,研究 DirectX 8 的音頻特性可能要花費(fèi)您的大量時(shí)間。
DirectX 8.0 DirectPlay
DirectPlay 是應(yīng)用程序和通訊服務(wù)之間的高級(jí)軟件接口。有了 DirectPlay,通過(guò) Internet、調(diào)制解調(diào)器鏈接或網(wǎng)絡(luò)來(lái)連接游戲?qū)⒎浅:?jiǎn)單。DirectPlay 既提供了高級(jí)的傳輸層服務(wù)(例如,有保證或無(wú)保證的傳遞,慢速鏈接上的通訊扼殺,以及放棄連接檢測(cè)等),也提供了會(huì)話(huà)層服務(wù)(包括玩家名稱(chēng)表管理和點(diǎn)對(duì)點(diǎn)主機(jī)轉(zhuǎn)移)。
下面是 微軟 DirectPlay API for DirectX 8.0 的新特性列表:
接口已經(jīng)完全重寫(xiě)。前端操作現(xiàn)在與 DirectPlay 的其他部分無(wú)關(guān)。已經(jīng)加入了語(yǔ)音傳輸。尋址信息已經(jīng)從基于 GUID 的數(shù)據(jù)格式變?yōu)榛?URL 的數(shù)據(jù)格式。可伸縮性更強(qiáng)大,內(nèi)存管理更完善。對(duì)防火墻和網(wǎng)絡(luò)地址翻譯器 (NAT) 的支持更佳。分離創(chuàng)建點(diǎn)對(duì)點(diǎn)會(huì)話(huà)和客戶(hù)端/服務(wù)器會(huì)話(huà)的接口,使創(chuàng)建網(wǎng)絡(luò)應(yīng)用程序的復(fù)雜度得到了奇跡般的簡(jiǎn)化。用于創(chuàng)建 DirectPlay 傳輸會(huì)話(huà)的接口包括:
IDirectPlay8Peer,提供創(chuàng)建點(diǎn)對(duì)點(diǎn)會(huì)話(huà)的方法IDirectPlay8Client,提供創(chuàng)建客戶(hù)端/服務(wù)器應(yīng)用程序的客戶(hù)端部分的方法IDirectPlay8Server,提供創(chuàng)建客戶(hù)端/服務(wù)器應(yīng)用程序的服務(wù)器端部分的方法DirectPlay 不再要求前端客戶(hù)端只能與 DirectPlay 應(yīng)用程序配合使用。這樣,前端服務(wù)提供程序和應(yīng)用程序都可以實(shí)現(xiàn) DirectPlay,而無(wú)須相互匹配。前端實(shí)施現(xiàn)在分為兩個(gè)簡(jiǎn)化的接口:
IDirectPlay8LobbyClient,用于管理前端客戶(hù)端,以及計(jì)算和啟動(dòng)前端識(shí)別應(yīng)用程序。IDirectPlay8LobbiedApplication,用于在系統(tǒng)中注冊(cè)可由前端啟動(dòng)的應(yīng)用程序,使它真正能由前端啟動(dòng)。它也用于從前端獲取連接信息,使游戲啟動(dòng)時(shí)無(wú)需查詢(xún)用戶(hù)。DirectPlay Voice 提供了一組接口,用于給應(yīng)用程序添加實(shí)時(shí)語(yǔ)音通訊。下列新接口提供了語(yǔ)音支持:
IDirectPlayVoiceClient 提供了在 DirectPlay Voice 會(huì)話(huà)中創(chuàng)建和管理客戶(hù)端的方法。IDirectPlayVoiceServer 提供了承載和管理 DirectPlay Voice 會(huì)話(huà)的方法。IDirectPlayVoiceTest 用于測(cè)試客戶(hù)端計(jì)算機(jī)上的音頻設(shè)置。
以前版本的 DirectPlay 通過(guò) GUID 地址使用二進(jìn)制數(shù)據(jù)塊,難以實(shí)現(xiàn)和讀取。在 DirectX 8.0 中,DirectPlay 引入了 URL 格式的地址表示方法,并使用一組新的接口來(lái)創(chuàng)建和操作新的尋址格式:
IDirectPlay8Address 提供用于創(chuàng)建和操作 DirectPlay 地址的基本尋址方法。IDirectPlay8AddressIP 提供 IP 提供程序?qū)S玫膶ぶ贩?wù)。就 DirectX 8.0 而言,DirectPlay 已經(jīng)被徹底重寫(xiě),以便提供卓越的性能和強(qiáng)大的可伸縮性。用戶(hù)帶寬的增長(zhǎng)給網(wǎng)絡(luò)游戲設(shè)計(jì)和實(shí)施帶來(lái)了天翻地覆的影響。改進(jìn)的 DirectPlay 線(xiàn)程緩沖池管理使開(kāi)發(fā)人員更容易設(shè)計(jì)可變化而且更可靠的應(yīng)用程序,能夠同時(shí)支持大量聯(lián)機(jī)玩家。
編寫(xiě)跨越 NAT、防火墻和其他 Internet 連接共享 (ICS) 方法的網(wǎng)絡(luò)游戲可能會(huì)非常困難,針對(duì)無(wú)保證 (UDP) 通訊編寫(xiě)網(wǎng)絡(luò)游戲尤其困難。在 DirectX 8.0 中,DirectPlay 開(kāi)發(fā)時(shí)已經(jīng)注意了這些問(wèn)題,它將支持可能的 NAT 解決方案。DirectPlay TCP/IP 服務(wù)提供程序?qū)τ螒驍?shù)據(jù)使用單一的、開(kāi)發(fā)人員可選的 UDP 端口,從而可以適當(dāng)?shù)嘏渲梅阑饓?NAT。另外,DirectPlay 使用了 UDP,因此對(duì)于客戶(hù)端/服務(wù)器體系結(jié)構(gòu)的游戲來(lái)說(shuō),某些 NAT 后的客戶(hù)端可以直接連接到游戲,而無(wú)須進(jìn)行額外的配置。
DirectX 8.0 DirectInput
DirectInput 為游戲桿、頭盔、多鍵鼠標(biāo)以及力回饋設(shè)備等各種輸入設(shè)備提供了最先進(jìn)的接口。通過(guò)直接與設(shè)備驅(qū)動(dòng)程序配合,DirectInput 繞過(guò)了 Windows 消息系統(tǒng),提供了最佳性能。
微軟 DirectInput API for DirectX 版本 8.0 中新特性的列表如下:
操作映射對(duì)國(guó)際化應(yīng)用程序的支持更佳新的接口創(chuàng)建支持對(duì)游戲桿滑塊數(shù)據(jù)的更改操作映射是支持輸入設(shè)備方面的一個(gè)重大進(jìn)步。操作映射簡(jiǎn)化了輸入循環(huán),降低了游戲中對(duì)自定義游戲驅(qū)動(dòng)程序、自定義設(shè)備分析器和自定義配置用戶(hù)接口的需要。操作映射也包括了默認(rèn)的用戶(hù)接口,使用戶(hù)可以快速簡(jiǎn)便地配置設(shè)備。這種標(biāo)準(zhǔn) API 通過(guò)低級(jí)用戶(hù)接口 API 來(lái)實(shí)現(xiàn),使應(yīng)用程序可以在其自定義用戶(hù)接口中直接訪(fǎng)問(wèn)設(shè)備映像。
DirectX 8.0 中的 DirectInput 設(shè)備支持新的屬性,這些屬性可以處理從國(guó)際化鍵盤(pán)上輸入的本地化的鍵名。共添加了兩個(gè)鍵盤(pán)屬性:DIPROP_KEYNAME,用于檢索本地化的鍵名;DIPROP_SCANCODE,用于檢索掃描碼。這些特性對(duì)于大多數(shù)在全世界發(fā)布的基于 DirectInput 的應(yīng)用程序非常有用。
DirectInput 對(duì)象現(xiàn)在通過(guò) IDirectInput8 接口來(lái)表示。新的幫助器函數(shù) DirectInput8Create 可創(chuàng)建對(duì)象并檢索此接口。IDirectInput8 具有一個(gè)新 CLSID,并且不能通過(guò)對(duì) CLSID_DirectInput 類(lèi)對(duì)象的接口調(diào)用 QueryInterface 來(lái)獲取,這一點(diǎn)與以前的 DirectX 版本有所不同。
游戲桿滑塊數(shù)據(jù)在以前的 DirectX 版本中分配到 DIJOYSTATE 或 DIJOYSTATE2 結(jié)構(gòu)的 Z 軸,現(xiàn)在則位于這些結(jié)構(gòu)的 rglSlider 數(shù)組中。盡管這種變化會(huì)導(dǎo)致對(duì)現(xiàn)有代碼的必要調(diào)整,但它終究更容易理解。
DirectX 8.0 DirectShow
此版本中的 DirectShow 也進(jìn)行了大幅度修改。DirectX 8.0 中添加的部分新特性包括:
新的過(guò)濾圖形特性Windows Media? 格式支持視頻編輯支持新的 DVD 支持新的 MPEG-2 傳輸和程序流支持對(duì)廣播驅(qū)動(dòng)程序體系結(jié)構(gòu)的支持DirectX 媒體對(duì)象過(guò)濾圖形管理器支持一些新的特性,包括動(dòng)態(tài)圖形生成和實(shí)時(shí)來(lái)源合成。使用動(dòng)態(tài)圖形生成,您現(xiàn)在可以在圖形運(yùn)行過(guò)程中對(duì)過(guò)濾圖形進(jìn)行修改。而以前,要添加或刪除過(guò)濾器,應(yīng)用程序必須停止該圖形,因而打斷數(shù)據(jù)流。DirectShow 現(xiàn)在還支持實(shí)時(shí)來(lái)源合成——例如,可以將實(shí)時(shí)音頻流與實(shí)時(shí)視頻流合成。
兩個(gè)新的過(guò)濾器使 DirectShow 應(yīng)用程序可以讀取或?qū)懭?Microsoft Windows Media 格式的文件。ASF Reader 過(guò)濾器用于讀取和分析 Windows Media 格式的文件;ASF File Writer 過(guò)濾器用于寫(xiě)入 Windows Media 格式的文件,并能夠執(zhí)行必要的復(fù)合和壓縮操作。DirectShow 和 Windows Media SDK 現(xiàn)在提供了完整的解決方案,用于編寫(xiě)應(yīng)用程序來(lái)創(chuàng)建和播放 Windows Media 格式流。
新的 DirectShow 編輯服務(wù) (DES) API 支持視頻編輯。DES 建立在核心的 DirectShow 體系結(jié)構(gòu)之上,提供了一組專(zhuān)門(mén)為操作視頻編輯工程而設(shè)計(jì)的接口。DirectShow 的框架更適合于創(chuàng)建視頻編輯應(yīng)用程序,作為應(yīng)用程序開(kāi)發(fā)人員,您將從中獲益匪淺。DES 取代了剪切表,同時(shí)剪切表將不再受到支持。
兩個(gè)新的接口 IDVDControl2 和 IDVDInfo2 極大地?cái)U(kuò)展了 DVD 導(dǎo)航器的功能。DVD 導(dǎo)航器現(xiàn)在實(shí)現(xiàn)了完整的 DVD Annex-J 命令集,既可以播放卡拉 OK,也可以播放影碟。新的 MSWebDVD ActiveX? 控件使這項(xiàng)功能可在基于腳本的應(yīng)用程序中使用。
新的過(guò)濾器 MPEG-2 Demultiplexer 提供了在推模式下(從實(shí)時(shí)來(lái)源接收數(shù)據(jù))對(duì) MPEG-2 傳輸流和程序流的支持。該過(guò)濾器與過(guò)濾圖形中的新實(shí)時(shí)來(lái)源合成支持配合,可以提供優(yōu)異的 MPEG-2 增強(qiáng)支持。
微軟 廣播驅(qū)動(dòng)程序體系結(jié)構(gòu) (BDA) 是新一代數(shù)/模電視調(diào)制設(shè)備的規(guī)范。在 DirectX 8.0 中,DirectShow 通過(guò)一組新的內(nèi)核模式設(shè)備過(guò)濾器和“BDA 調(diào)制模型”來(lái)支持 BDA 兼容設(shè)備。“BDA 調(diào)制模型”是一組對(duì)象的集合,提供了對(duì)各種類(lèi)型的數(shù)字和模擬網(wǎng)絡(luò)進(jìn)行調(diào)制的方法。
DirectX 媒體對(duì)象 (DMO) 提供了編寫(xiě)數(shù)據(jù)流組件的新方法。與 DirectShow 過(guò)濾器相似,DMO 接受輸入數(shù)據(jù),并將其用于生成輸出數(shù)據(jù)。但是,DMO API 比相應(yīng)的 DirectShow API 簡(jiǎn)單得多。因此,DMO 比 DirectShow 過(guò)濾器更容易創(chuàng)建、測(cè)試和使用。DMO 與 DirectShow 完全兼容。只要您需要使用 DirectShow 提供的服務(wù),例如圖形同步、智能連接、數(shù)據(jù)流的自動(dòng)處理和線(xiàn)程管理,您都可以使用 DMO。但是,DMO 不需要使用過(guò)濾圖形,因此應(yīng)用程序無(wú)需 DirectShow 就可以使用 DMO。
DirectX 8.0 版本的 DirectShow 包含更多的功能,但限于篇幅,這里就不再多說(shuō)。請(qǐng)記著試用新增和改進(jìn)的 DirectShow。
結(jié)語(yǔ)
總之,DirectX 8.0 是一個(gè)激動(dòng)人心的版本,具有多媒體開(kāi)發(fā)人員所需的各種優(yōu)秀功能。無(wú)論您關(guān)注的是三維圖形、音頻、網(wǎng)絡(luò)還是視頻,您都可以發(fā)現(xiàn)新的功能。
參考資料 >