D3D 紋理階段混合狀態設置

電子書《精通DirectX.3D圖形與動畫程序設計.王德才.pdf》p160
IDirect3DDevice9::SetTextureStageState()
HRESULT SetTextureStageState(
  [in]  DWORD Stage,
  [in]  D3DTEXTURESTAGESTATETYPE Type,
  [in]  DWORD Value
);
Stage 指定當前設置的紋理層ID(有效值0~7)
Type 將要設置的紋理渲染狀態。類型枚舉值,可以是D3DTEXTURESTAGESTATETYPE的任意成員
Value 所設置的狀態值,由參數Type決定數值的取值方法和含義

附上D3DTEXTURESTAGESTATETYPE枚舉
typedef enum D3DTEXTURESTAGESTATETYPE {
  D3DTSS_COLOROP                = 1, 指定紋理顏色的混合方法,Value值屬於D3DTEXTUREOP枚舉類型
  D3DTSS_COLORARG1              = 2, 指定顏色混合的第一個參數,Value屬於D3DTA類型常量,默認爲D3DTA_TEXTURE,即紋理顏色
  D3DTSS_COLORARG2              = 3, 指定顏色混合的第二個參數,Value屬於D3DTA類型常量,默認D3DTA_CURRENT,即前一個紋理層的輸出顏色。當Stage等於0時,爲D3DTA_DIFFUSE,即像素的漫反射顏色值
  D3DTSS_ALPHAOP                = 4, 指定紋理層的Alpha值混合方法,Value值屬於D3DTEXTUREOP枚舉類型
  D3DTSS_ALPHAARG1              = 5, Alpha混合的第一個參數,Value屬於D3DTA類型常量,默認爲D3DTA_TEXTURE,即紋理顏色Alpha值
  D3DTSS_ALPHAARG2              = 6, Alpha混合的第一個參數,Value屬於D3DTA類型常量,默認爲D3DTA_CURRENT,即前一個紋理層的輸出顏色Alpha值。當Stage等於0時,爲D3DTA_DIFFUSE,即像素的漫反射顏色Alpha值
  D3DTSS_BUMPENVMAT00           = 7, 在繪製有凹凸花紋表面的物體時使用,表示將要設置的凹凸映射矩陣的m[0][0]參數值
  D3DTSS_BUMPENVMAT01           = 8, 在繪製有凹凸花紋表面的物體時使用,表示將要設置的凹凸映射矩陣的m[0][1]參數值
  D3DTSS_BUMPENVMAT10           = 9, 在繪製有凹凸花紋表面的物體時使用,表示將要設置的凹凸映射矩陣的m[1][0參數值
  D3DTSS_BUMPENVMAT11           = 10, 在繪製有凹凸花紋表面的物體時使用,表示將要設置的凹凸映射矩陣的m[1][1]參數值
  D3DTSS_TEXCOORDINDEX          = 11, 該紋理層使用的紋理座標集的索引(0~7)。Dirct3D支持最多8個紋理座標集,該狀態默認爲0,表示使用第一個紋理座標集
  D3DTSS_BUMPENVLSCALE          = 22, 繪製凹凸花紋物體時的縮放參數值,默認爲0
  D3DTSS_BUMPENVLOFFSET         = 23, 繪製凹凸花紋物體時的平移參數值,默認爲0
  D3DTSS_TEXTURETRANSFORMFLAGS  = 24, 控制紋理座標轉換標誌,默認D3DTTFF_DISABLE
  D3DTSS_COLORARG0              = 26, 當顏色混合方法爲D3DTEXOPCAPS_MULTIPLYADD或D3DTEXOPCAPS_LERP時,指定混合過程的第三個顏色參數,Value值屬於D3DTA類型常量
  D3DTSS_ALPHAARG0              = 27, 當顏色混合方法爲D3DTEXOPCAPS_MULTIPLYADD或D3DTEXOPCAPS_LERP時,指定混合過程的第三個Alpha參數,Value值屬於D3DTA類型常量
  D3DTSS_RESULTARG              = 28, 指定顏色混合的結果輸出寄存器,默認是D3DTA_CURRENT
  D3DTSS_CONSTANT               = 32, 指定顏色混合的常量寄存器值,當顏色參數方法爲D3DTA_CURRENT時使用
  D3DTSS_FORCE_DWORD            = 0x7fffffff
} D3DTEXTURESTAGESTATETYPE, *LPD3DTEXTURESTAGESTATETYPE;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章