裝置

Direct3D 裝置是 Direct3D 的轉譯元件。 裝置封裝並儲存呈現狀態、執行轉換照明作業,並將影像點陣化到表面。

就架構上而言,Direct3D 裝置會包含轉換模組、光線模組和點陣化模組,如下圖所示。

diagram of the direct3d device architecture

Direct3D 支援兩大主要 Direct3D 裝置類型:

  • 具備硬體加速點陣化,並使用軟硬體頂點處理進行著色的 HAL 裝置
  • 參考裝置

這些裝置分屬兩種不同的驅動程式。 軟體和參考裝置會透過軟體驅動程式呈現,而 HAL 裝置則會透過硬體驅動程式呈現。 善加利用這些裝置的最常見方法,就是使用 HAL 裝置來傳送應用程式,並使用參考裝置進行功能設定。 協力廠商會提供這些項目來模擬特定裝置,例如尚未發行的開發硬體。

應用程式建立的 Direct3D 裝置必須對應至用來執行應用程式的硬體功能。 Direct3D 提供多項轉譯功能,像是透過存取安裝在電腦上的 3D 硬體來提供,或透過在軟體中模擬 3D 硬體功能的方式提供。 因此,Direct3D 會同時提供適用於硬體存取和軟體模擬的裝置。

硬體加速裝置可提供比軟體裝置更優異的效能。 所有受 Direct3D 支援的圖形卡,皆有提供 HAL 裝置類型。 在多數情況下,應用程式會以具備硬體加速且仰賴軟體模擬的電腦做為目標,以因應低階電腦。

但參考裝置則不在此限,軟體裝置不一定支援硬體裝置所具備的相同功能。 應用程式應一律查詢裝置功能,以判斷哪些功能可獲得支援。

由於 Direct3D 9 提供的軟體和參考裝置行為與 HAL 裝置完全相同,因此,撰寫以用於搭配 HAL 裝置的應用程式碼無需進行修改,就能使用在軟體或參考裝置上。 儘管所提供的軟體或參考裝置行為會與 HAL 完全相同,裝置功能可能會有差異,而特定軟體裝置可能會實作一組較小的功能。

本節內容

主題 說明

裝置類型

Direct3D 裝置類型包含硬體抽象層 (HAL) 裝置和軟體模擬轉譯器。

視窗模式與全螢幕模式

Direct3D 應用程式可在視窗或全螢幕兩種模式下運作。 在視窗模式中,應用程式會與所有執行中的應用程式共用可用的桌面螢幕空間。 在全螢幕模式中,應用程式執行的視窗會涵蓋整個桌面,進而隱藏所有執行中的應用程式 (包括您的開發環境)。

遺失裝置

Direct3D 裝置可處於作業狀態或遺失狀態。 作業狀態為裝置的正常狀態,在該狀態中,裝置會如預期般執行並顯示所有轉譯內容。 如有事件 (例如在全螢幕應用程式中失去鍵盤焦點) 導致無法轉譯,裝置就會轉換為遺失狀態。

交換鏈結

交換鏈結是用來向使用者顯示畫面格的緩衝區集合。 每當應用程式在螢幕上呈現新的畫面格時,交換鏈結中的第一個緩衝區就會取代已顯示的緩衝區。 此程序稱又稱為交換或翻轉

點陣化規則簡介

專為頂點指定的點,往往不會與螢幕上的像素精確相符。 發生這種情況時,Direct3D 會套用三角形點陣化規則,以判斷要套用至指定三角形的像素。

 

Direct3D 圖形學習指南