這個(gè)兩個(gè)函數(shù)的參數(shù)一大堆,害我頭都大了2,3倍。。今天整理下已經(jīng)能夠大概清晰明白的參數(shù)。。
緩存存的是一個(gè)屏幕像素的值。。
先來SetTextureStageState:
HRESULT SetTextureStageState(
DWORD Stage,
D3DTEXTURESTAGESTATETYPE Type,
DWORD Value
);
stage這個(gè)參數(shù)是指第幾層紋理,1.2.3...9,, 這個(gè)版本的dx最多支持9層紋理。
Type:Defines the type of operation that a texture stage will perform.//定義對該紋理的哪個(gè)屬進(jìn)行設(shè)置,值很多。。。
Value: 指的是前面所選屬性的值
type:
D3DTSS_ALPHAOP = 4, //alpha通道的運(yùn)算,
D3DTSS_COLOROP = 1, //顏色的運(yùn)算
//這里的op 是operations,指對前面設(shè)置的顏色進(jìn)行運(yùn)算
//既后面的2個(gè)type:D3DTSS_COLORARG1,D3DTSS_COLORARG2
//或D3DTSS_ALPHAARG1,D3DTSS_ALPHAARG2 = 6
value:
D3DTOP_DISABLE = 1, //該紋理無效,既不顯示
D3DTOP_SELECTARG1 = 2, //選擇第1個(gè)顏色值(既D3DTSS_COLORARG1的值)作為紋理顏色輸出
D3DTOP_SELECTARG2 = 3, //選擇第2個(gè)顏色值(既D3DTSS_COLORARG2的值)作為紋理顏色輸出
D3DTOP_MODULATE = 4, //將顏色1和顏色2相乘作為紋理顏色輸出
D3DTOP_MODULATE2X = 5, //將顏色1和顏色2相乘后左移1bit(用于增亮)作為紋理顏色輸出 ,
D3DTOP_MODULATE4X = 6, //將顏色1和顏色2相乘后左移2bit(用于增亮)作為紋理顏色輸出
D3DTOP_ADD = 7, //將顏色1和顏色2相加作為紋理顏色輸出
D3DTOP_ADDSIGNED = 8, ///////////后面的參見SDK 都是對2個(gè)顏色進(jìn)行運(yùn)算
D3DTOP_ADDSIGNED2X = 9,
D3DTOP_SUBTRACT = 10,
D3DTOP_ADDSMOOTH = 11,
D3DTOP_BLENDDIFFUSEALPHA = 12,
D3DTOP_BLENDTEXTUREALPHA = 13,
D3DTOP_BLENDFACTORALPHA = 14,
D3DTOP_BLENDTEXTUREALPHAPM = 15,
D3DTOP_BLENDCURRENTALPHA = 16,
D3DTOP_PREMODULATE = 17,
D3DTOP_MODULATEALPHA_ADDCOLOR = 18,
D3DTOP_MODULATECOLOR_ADDALPHA = 19,
D3DTOP_MODULATEINVALPHA_ADDCOLOR = 20,
D3DTOP_MODULATEINVCOLOR_ADDALPHA = 21,
D3DTOP_BUMPENVMAP = 22,
D3DTOP_BUMPENVMAPLUMINANCE = 23,
D3DTOP_DOTPRODUCT3 = 24,
D3DTOP_MULTIPLYADD = 25,
D3DTOP_LERP = 26,
D3DTOP_FORCE_DWORD = 0x7fffffff,
type:
D3DTSS_COLORARG1 = 2,
D3DTSS_COLORARG2 = 3,
D3DTSS_ALPHAARG1 = 5,
D3DTSS_ALPHAARG2 = 6,
D3DTSS_COLORARG0 = 26,
D3DTSS_ALPHAARG0 = 27,
D3DTSS_RESULTARG = 28,
value:
這里的TA指的是texture arguments ,
D3DTA_CONSTANT //給當(dāng)前紋理一個(gè)固定的值;
D3DTA_DIFFUSE; //diffuse的值作為參數(shù) diffuse 可能有多個(gè)來源。。比如材質(zhì),vertex
D3DTA_SELECTMASK //Mask value for all arguments; not used when setting texture arguments 這句話不理解啊,為什么要偽裝呢
D3DTA_SPECULAR //取spercular 的值作為參數(shù) 來源同diffuse
D3DTA_TEMP //待定。。
D3DTA_TEXTURE //用紋理的顏色值作為參數(shù)
D3DTA_TFACTOR //待定。。
////////////////////////////////////////////////////////////////////////////////////
以下還沒來得及研究。。貌似叫難懂,還請高人指點(diǎn)啊
D3DTSS_BUMPENVMAT00 = 7,
D3DTSS_BUMPENVMAT01 = 8,
D3DTSS_BUMPENVMAT10 = 9,
D3DTSS_BUMPENVMAT11 = 10,
D3DTSS_TEXCOORDINDEX = 11,
D3DTSS_BUMPENVLSCALE = 22,
D3DTSS_BUMPENVLOFFSET = 23,
D3DTSS_TEXTURETRANSFORMFLAGS = 24,
D3DTSS_CONSTANT = 32,
D3DTSS_FORCE_DWORD = 0x7fffffff,
、
HRESULT SetRenderState(
D3DRENDERSTATETYPE State, //所要設(shè)置的狀態(tài)
DWORD Value //該狀態(tài)的值
);
State 的取值
posted on 2008-10-08 23:12
AstaTus 閱讀(3234)
評論(3) 編輯 收藏 引用 所屬分類:
DIRECTX9