1. D3D入門
本節提供一個對D3D圖形編程接口(API)的簡短介紹。這里你將發現一個圖形管道的概貌以及幫助你實現基本D3D功能的指南。
1.1. D3D架構
本節包含Microsoft的D3D組件、其他Microsoft DirectX、操作系統和系統硬件之間的關系;下面將討論這些主題。
1.1.1. D3D的架構概覽
這是一個圖形管道的描述。每個塊的功能性在下面介紹,連接包含更多的信息。
更多關于D3D的可編程節的架構見《可編程頂點梯度架構》和《可編程像素梯度架構》。

1.1.2. 硬件抽象層
微軟的D3D通過HAL(硬件抽象層)提供設備獨立;HAL是由設備制造商提供的設備指定接口,D3D直接使用顯示硬件來工作。程序才能不需要和HAL交互。應用程序使用D3D暴露的一系列接口和方法而不是HAL提供的機制來使用顯示設備。設備制造商在WINDOWS的各個平臺上(XP、2000、98等)上實現32位的編程。HAL可以是顯示驅動器的一部分或和設備驅動器通過一個驅動器生產商定義的接口來通訊的獨立DLL。
D3D HAL由芯片制造商、主板生產商或OEM實現。HAL僅僅實現設備依賴的代碼并在不競爭的執行。如果硬件沒有執行一個功能,HAL就不會將其作為硬件功能來報告。另外,HAL并不驗證參數,D3D在調用HAL之前執行參數驗證。
在微軟DirectX 9,HAL可以有三種不同的頂點處理模式:軟件頂點處理、硬件頂點處理和同一個設備上的混合頂點處理。純設備模式是HAL設備的變量。純設備類型僅僅支持硬件頂點處理,并僅僅允許應用程序查詢設備狀態的一個小的子集。另外,純設備僅僅在有最小化容量級別的適配器上可用。
1.1.3. 系統整體
下圖顯示了微軟D3D、GDI、HAL以及硬件之間的關系。
在上圖中,我們看到,D3D程序和GDI程序一樣都通過顯示卡的設備驅動來訪問圖形硬件。與GDI不同的是,D3D可以在選擇一個HAL設備的時候利用硬件特性,HAL設備提供了基于顯示卡支持的硬件加速。你可以通過D3D在運行的時候來決定設備是否有這個能力。
關于設備的更多信息參見設備類型。

2006年2月15日