共用方式為


紋理混合

Direct3D 可在單一傳遞中,將多達八個紋理混合至原始物件內。 使用多個紋理混合可大幅提高 Direct3D 應用程式的畫面播放速率。 應用程式會採用多個紋理混合,在單一傳遞中套用紋理、陰影、反射光線、擴散光源和其他任何特殊效果。

若要使用紋理混合,應用程式應該先檢查使用者的硬體是否能提供支援。

紋理階段和紋理混合串聯

Direct3D 可在單一傳遞中使用紋理階段來套用多個紋理混合。 紋理階段會取得兩個引數,並對其執行混合作業,藉此傳遞結果,以進行更進一步的處理或點陣化。 您可以將紋理階段視覺化,如下圖所示。

diagram of a texture stage

如同上圖所示,紋理階段會使用指定的運算子來混合兩個引數。 常見的作業會包括簡單調節或新增引數的色彩或 Alpha 元件,而支援的作業共有二十多項。 適用於階段的引數可以是相關紋理、重複的色彩或 Alpha (在 Gouraud 著色期間重複)、任意色彩和 Alpha,或來自上一個紋理階段的結果。

注意:Direct3D 會將色彩混合和 Alpha 混合區隔開來。 應用程式會個別設定色彩和 Alpha 的混合作業與引數,而這些設定的結果則與彼此無關。

 

多個混合階段使用的引數和作業組合會定義簡單的流程型混合語言。 單一階段的結果會向下傳遞至另一個階段,再從該階段傳遞至下一個階段,依此類推。 將結果從某個階段傳遞至下個階段,以便於多邊形上點陣化的概念,通常又稱為「紋理混合串聯」。 下圖顯示個別紋理階段如何共同組成紋理混合串聯。

diagram of texture stages in the texture blending cascade

裝置中的每個階段,都具有從零開始的索引。 Direct3D 最多允許八個混合階段,不過,請一律檢查裝置功能,以判斷目前的硬體可支援幾個階段。 第一個混合階段位於索引 0、第二個位於 1,並依此類推,最後為索引 7。 系統會以遞增的索引順序來混合多個階段。

請僅使用所需的階段數,未使用的混合階段會依預設停用。 因此,如果應用程式僅使用前兩個階段,就僅需設定階段 0 和 1 的作業和引數。 系統會混合兩個階段,並忽略停用的階段。

如果應用程式會因應不同的情況 (例如某些物件使用四個階段,其他物件僅使用兩個階段) 來改變階段數,您無需明確停用先前使用的所有階段。 其中一個選項為停用第一個未使用階段的色彩作業,這樣一來,就不會套用所有索引數較高的階段。 另一個選項是將第一個紋理階段 (階段 0) 的色彩作業設為停用狀態,以完全停用紋理對應。

本節內容

主題 說明

混合階段

混合階段是一組紋理作業及其引數,可定義紋理的混合方式。

Multipass 紋理混合

Direct3D 應用程式可透過多重混合傳遞過程,將各種紋理套用至原始物件,藉此營造眾多特殊效果。 這項作業經常稱為 Multipass 紋理混合。 Multipass 紋理混合的典型用法,就是從多個不同紋理套用多個色彩,藉此模擬複雜光線和著色模型的效果。 此類型的其中一個應用領域,就是所謂的光線對應

 

紋理