Direct3D 9 (紋理座標處理)
下圖顯示紋理座標從其來源、處理和轉譯器取得的路徑。
系統可從中繪製紋理座標的兩個來源。 針對指定的紋理階段,您可以使用頂點格式中包含的紋理座標, (D3DFVF_TEX1透過 D3DFVF_TEX8) ,也可以使用 Direct3D 自動產生的紋理座標。 如需後者案例的詳細資訊,請參閱 Direct3D 9 (自動產生的紋理座標) 。 如果目前紋理階段的D3DTSS_TEXTURETRANSFORMFLAGS紋理階段狀態設定為D3DTTFF_DISABLE (預設設定) ,則不會轉換輸入座標。 如果D3DTSS_TEXTURETRANSFORMFLAGS > 設定為任何其他值,該階段的轉換矩陣就會套用至輸入座標。
D3DTEXTURETRANSFORMFLAGS列舉類型會定義D3DTSS_TEXTURETRANSFORMFLAGS紋理階段狀態的有效值。 除了略過紋理座標轉換的D3DTTFF_DISABLE旗標之外,此列舉中定義的值會設定系統傳遞給轉譯器的輸出座標數目。 透過 D3DTTFF_COUNT4 旗標D3DTTFF_COUNT1會指示系統將輸出座標中的一個、兩個、三個或四個元素傳遞至轉譯器。
D3DTTFF_PROJECTED旗標很特殊:它會告訴系統紋理座標是投影紋理。 將D3DTTFF_PROJECTED旗標與 D3DTEXTURETRANSFORMFLAGS 的另一個成員結合,以指示轉譯器先將所有元素除以最後一個專案,再進行點陣化。 例如,當明確使用三個專案紋理座標,或轉換導致三個專案紋理座標時,您可以結合D3DTTFF_COUNT3和D3DTTFF_PROJECTED旗標,讓轉譯器將前兩個專案除以最後一個元素,產生處理 2D 紋理所需的 2D 紋理座標。
注意
除了三次環境地圖和磁片區紋理之外,轉譯器無法使用具有兩個以上元素的紋理座標來處理紋理。 如果您指定的專案數目超過可用來處理該階段目前紋理的元素,則會忽略多餘的元素。 這也適用于使用 1D 紋理的 2D 紋理座標時。
其他資訊包含在下列主題中。
相關主題