Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az effektusállapotok a folyamatállapotok inicializálására szolgálnak a csúcspontok és képpontok feldolgozásának előkészítésekor.
effect state [ [index] ] = expression;
Hol:
- effektus állapota – Hasonló a hagyományos rögzített függvényfolyamat-állapotokhoz. Az állapotok teljes listáját alább találja.
- [ [index] ] – Nem kötelező egész szám index. Az index egy adott állapotot azonosít egy effektusállapot-tömbön belül. A külső zárójelek azt jelzik, hogy az index nem kötelező. Ha indexet használ, mindenképpen használja a belső zárójeleket.
- kifejezés – Állapot-hozzárendelési kifejezés. Lásd: kifejezések (Direct3D 9).
Minden állapot natív adattípussal rendelkezik. Ez az az adattípus, amelyben az állapot értékekre számít, amikor az effektus hozzárendeli őket. Az egyes állapotok által várt adattípusok alább láthatók.
Vegye figyelembe, hogy az effektus-kezelőfelület a lehető leghamarabb megpróbálja a megfelelő típusra leadni az értékeket. A literális értékek fordításkor is leadhatók. A nem konstansokat (azaz a reguláris változókat) a megfelelő Set metódusok meghívásakor kell leadni. Az effektus-kezelőfelület például SetBool, SetValueés más hasonló függvények használatával állítja be az értékeket, ha szükséges. A jobb teljesítmény érdekében győződjön meg arról, hogy az effektus interfésznek átadott értékek már a megfelelő típust képezik, és nem lesz szükség öntésre. Ha a futtatókörnyezet nem tud értéket adni, a rendszer hibát ad vissza.
Az effektusállapotok a következő kategóriákra bonthatók:
- fényállapotok
- anyagállapotok
- renderelési állapotok
- mintavételi állapotok
- Sampler stage states
- Shader-állapotok
- Shader Constant States
- textúraállapotok
- textúraszakasz állapotai
- átalakító állapotok
Világos állapotok
Az effektusok alkalmazásának legjobb teljesítménye érdekében egy fény vagy anyag minden összetevőjét meg kell adni az effektusfájlban. A nem deklarált állapotok alapértelmezett értékre vannak állítva, mert a Direct3D nem tudja egyenként beállítani a fényállapotokat.
Világos állapot | Típus | Értékrend |
---|---|---|
LightAmbient[n] | float4 | Lásd a D3DLIGHT9környezeti tagját. |
LightAttenuation0[n] | lebeg | Lásd a D3DLIGHT9Attenuation0 tagját. |
LightAttenuation1[n] | lebeg | Lásd a D3DLIGHT9Attenuation1 tagját. |
LightAttenuation2[n] | lebeg | Lásd a D3DLIGHT9Attenuation2 tagját. |
LightDiffuse[n] | float4 | Lásd a D3DLIGHT9diffúz tagját. |
LightDirection[n] | float3 | Lásd a D3DLIGHT9iránytagját. |
Világosítható[n] | Bool | TRUE vagy HAMIS. Lásd a bEnable argumentumot Egyszerűsített. |
LightFalloff[n] | lebeg | D3DCOLORVALUE. Lásd a D3DLIGHT9Falloff tagját. |
LightPhi[n] | lebeg | Lásd a Phi tagja D3DLIGHT9. |
LightPosition[n] | float3 | Lásd a D3DLIGHT9pozíciótagját. |
LightRange[n] | lebeg | Lásd az D3DLIGHT9tartománytagját. |
LightSpecular[n] | float4 | Lásd a D3DLIGHT9specular tagját. |
LightTheta[n] | lebeg | Lásd az D3DLIGHT9Theta tagját. |
LightType[n] | dword | Ugyanaz az érték, mint a legfeljebb n D3DLIGHTTYPE értékek tömbje a D3DLIGHT_ előtag nélkül. |
Példa:
LightEnable[0] = TRUE;
LightType[0] = POINT;
LightPosition[0] = float3<10.0f, 1.0f, 23.0f>;
LightAmbient[0] = float4<0.7f, 0.0f, 0.0f, 1.0f>;
Ez lehetővé teszi a világítást, a pont megvilágítását a típust, a fény pozícióját lebegőpontosra állítja<10,0f, 1,0f, 23,0f>, és a környezeti színt a float4<0,7f, 0,0f, 0,0f, 1,0f>értékre állítja.
Anyagállapotok
A nem deklarálandó állapotok alapértelmezett értékre vannak állítva, mert a Direct3D nem tudja egyenként beállítani az anyagállapotokat.
Anyagállapot | Típus | Értékrend |
---|---|---|
MaterialAmbient | float4 | Ugyanaz az érték, mint Környezeti |
MaterialDiffuse | float4 | Ugyanaz az érték, mint diffúz |
MaterialEmissive | float4 | Ugyanaz az érték, mint Emissive |
MaterialPower | lebeg | Ugyanaz az érték, mint Power |
MaterialSpecular | float4 | Ugyanaz az érték, mint Specular |
Példa:
MaterialDiffuse = float4<0.7f, 0.0f, 0.0f, 1.0f>;
MaterialPower = 3.0f;
Ez meg a diffúz színt float4<0,7f, 0.0f, 0.0f, 1.0f>, és hogy a hatalom az anyag 3.0f.
Renderelési állapotok
Kétféle renderelési állapot létezik:
Képpontcső renderelési állapotai
Az effektusfájl-renderelési állapotok neve hasonló a rögzített függvényfolyamat-állapotokhoz, gyakran az előtag el lett távolítva.
Renderelési állapot | Típus | Értékrend |
---|---|---|
AlphaBlendEnable | Bool | Igaz vagy Hamis. Ugyanazok az értékek, mint a D3DRENDERSTATETYPED3DRS_ALPHABLENDENABLE. |
AlphaFunc | dword | Ugyanazok az értékek, mint D3DCMPFUNC a D3DCMP_ előtag nélkül. Lásd: D3DRS_ALPHAFUNC. |
AlphaRef | dword | Ugyanazok az értékek, mint D3DRS_ALPHAREF. |
AlphaTestEnable | dword | Igaz vagy Hamis. Lásd: D3DRS_ALPHATESTENABLE. |
BlendOp | dword | Ugyanazok az értékek, mint D3DBLENDOP a D3DBLENDOP_ előtag nélkül. |
ColorWriteEnable | dword | A PIROS, a ZÖLD, a KÉK és az ALFA bitenkénti kombinációja. Lásd: D3DRS_COLORWRITEENABLE. |
DepthBias | lebeg | Ugyanazok az értékek, mint D3DRS_DEPTHBIAS. |
DestBlend | dword | Ugyanazok az értékek, mint D3DBLEND a D3DBLEND_ előtag nélkül. |
DitherEnable | Bool | Igaz vagy Hamis. Ugyanazok az értékek, mint D3DRS_DITHERENABLE. |
FillMode | dword | Ugyanazok az értékek, mint D3DFILLMODE a D3DFILL_ előtag nélkül. |
LastPixel | dword | Igaz vagy Hamis. Lásd: D3DRS_LASTPIXEL. |
ShadeMode | dword | Ugyanazok az értékek, mint D3DSHADEMODE a D3DSHADE_ előtag nélkül. |
SlopeScaleDepthBias | lebeg | Ugyanazok az értékek, mint D3DRS_SLOPESCALEDEPTHBIAS. |
SrcBlend | dword | Ugyanazok az értékek, mint D3DBLEND a D3DBLEND_ előtag nélkül. |
SRGBWriteEnable | Bool | Igaz vagy Hamis. Ugyanazok az értékek, mint D3DRS_SRGBWRITEENABLE. |
StencilEnable | Bool | Igaz vagy Hamis. Ugyanazok az értékek, mint D3DRS_STENCILENABLE. |
Rajzsablonfail | dword | Ugyanazok az értékek, mint D3DSTENCILCAPS a D3DSTENCILCAP_ előtag nélkül. Lásd: D3DRS_STENCILFAIL. |
StencilFunc | dword | Ugyanazok az értékek, mint D3DCMPFUNC a D3DCMP_ előtag nélkül. Lásd: D3DRS_STENCILFUNC. |
StencilMask | dword | Ugyanazok az értékek, mint D3DRS_STENCILMASK. |
StencilPass | dword | Ugyanazok az értékek, mint D3DSTENCILCAPS a D3DSTENCILCAP_ előtag nélkül. Lásd: D3DRS_STENCILPASS. |
StencilRef | Int | Ugyanazok az értékek, mint D3DRS_STENCILREF. |
StencilWriteMask | dword | Ugyanazok az értékek, mint D3DRS_STENCILWRITEMASK. |
RajzsablonZFail | dword | Ugyanazok az értékek, mint D3DSTENCILCAPS a D3DSTENCILCAP_ előtag nélkül. Lásd: D3DRS_STENCILZFAIL. |
TextureFactor | dword | Ugyanazok az értékek, mint D3DCOLOR. Ugyanazok az értékek, mint D3DRS_TEXTUREFACTOR. |
Wrap0 - Wrap15 | dword | Az értékek megegyeznek a D3DRS_WRAP0 által használt értékekkel. Az érvényes értékek a következők:
|
ZEnable | dword | Ugyanazok az értékek, mint D3DZBUFFERTYPE a D3DZB_ előtag nélkül. |
ZFunc | dword | Ugyanazok az értékek, mint D3DCMPFUNC a D3DCMP_ előtag nélkül. Lásd: D3DRS_ZFUNC. |
ZWriteEnable | Bool | Igaz vagy Hamis. Lásd: D3DRS_ZWRITEENABLE. |
Példa:
AlphaBlendEnable = TRUE;
FillMode = WIREFRAME;
Ez lehetővé teszi az alfa-keverést, és az összes geometriát drótvázban rendereli.
Csúcscső renderelési állapotai
Az effektusfájl-renderelési állapotok neve hasonló a rögzített függvényfolyamat-állapotokhoz, gyakran az előtag el lett távolítva.
Renderelési állapot | Típus | Értékrend |
---|---|---|
Környező | float4 | Ugyanazok az értékek, mint D3DRS_AMBIENT. |
AmbientMaterialSource | dword | Ugyanazok az értékek, mint D3DMATERIALCOLORSOURCE a D3DMCS_ előtag nélkül. Lásd: D3DRS_AMBIENTMATERIALSOURCE. |
Nyírás | Bool | Igaz vagy Hamis. Ugyanazok az értékek, mint D3DRS_CLIPPING. |
ClipPlaneEnable | dword | A D3DCLIPPLANE0 bitenkénti kombinációja – D3DCLIPPLANE5 makrók. Lásd: D3DCLIPPLANEn és D3DRS_CLIPPLANEENABLE. |
ColorVertex | Bool | Igaz vagy Hamis. Ugyanazok az értékek, mint D3DRS_COLORVERTEX. |
CullMode | dword | Ugyanazok az értékek, mint D3DCULL a D3DCULL_ előtag nélkül. |
DiffuseMaterialSource | dword | Ugyanazok az értékek, mint D3DMATERIALCOLORSOURCE a D3DMCS_ előtag nélkül. Lásd: D3DRS_DIFFUSEMATERIALSOURCE. |
EmissiveMaterialSource | dword | Ugyanazok az értékek, mint D3DMATERIALCOLORSOURCE a D3DMCS_ előtag nélkül. Lásd: D3DRS_EMISSIVEMATERIALSOURCE. |
FogColor | dword | Ugyanazok az értékek, mint D3DCOLOR. Lásd: D3DRS_FOGCOLOR. |
FogDensity | lebeg | Ugyanazok az értékek, mint D3DRS_FOGDENSITY. |
FogEnable | Bool | Igaz vagy Hamis. Ugyanazok az értékek, mint D3DRS_FOGENABLE. |
FogEnd | lebeg | Ugyanazok az értékek, mint D3DRS_FOGEND. |
FogStart | lebeg | Ugyanazok az értékek, mint D3DRS_FOGSTART. |
FogTableMode | dword | Ugyanazok az értékek, mint D3DFOGMODE. Lásd: D3DRS_FOGTABLEMODE a D3DRENDERSTATETYPE. |
FogVertexMode | dword | Ugyanazok az értékek, mint D3DFOGMODE a D3DFOG_ előtag nélkül. |
IndexedVertexBlendEnable | Bool | Igaz vagy Hamis. Ugyanazok az értékek, mint D3DRS_INDEXEDVERTEXBLENDENABLE. |
Világítás | Bool | Igaz vagy Hamis. Ugyanazok az értékek, mint D3DRS_LIGHTING. |
LocalViewer | Bool | Igaz vagy Hamis. Ugyanazok az értékek, mint D3DRS_LOCALVIEWER. |
MultiSampleAntialias | Bool | Ugyanazok az értékek, mint D3DRS_MULTISAMPLEANTIALIAS. |
MultiSampleMask | dword | Ugyanazok az értékek, mint D3DRS_MULTISAMPLEMASK. |
NormalizeNormals | Bool | Igaz vagy Hamis. Ugyanazok az értékek, mint D3DRS_NORMALIZENORMALS. |
PatchSegments | lebeg | A SetNPatchModenSegments értékeivel megegyező értékek. |
PointScale_A | lebeg | Ugyanazok az értékek, mint D3DRS_POINTSCALE_A. |
PointScale_B | lebeg | Ugyanazok az értékek, mint D3DRS_POINTSCALE_B. |
PointScale_C | lebeg | Ugyanazok az értékek, mint D3DRS_POINTSCALE_C. |
PointScaleEnable | Bool | Ugyanazok az értékek, mint D3DRS_POINTSCALEENABLE. |
Pontméret | lebeg | Ugyanazok az értékek, mint D3DRS_POINTSIZE. |
PointSize_Min | lebeg | Ugyanazok az értékek, mint D3DRS_POINTSIZE_MIN. |
PointSize_Max | lebeg | Ugyanazok az értékek, mint D3DRS_POINTSIZE_MAX a D3DRS_ előtag nélkül. |
PointSpriteEnable | Bool | Igaz vagy Hamis. Ugyanazok az értékek, mint D3DRS_POINTSPRITEENABLE. |
RangeFogEnable | Bool | Igaz vagy Hamis. Ugyanazok az értékek, mint D3DRS_RANGEFOGENABLE. |
SpecularEnable | Bool | Igaz vagy Hamis. Ugyanazok az értékek, mint D3DRS_SPECULARENABLE. |
SpecularMaterialSource | dword | Ugyanazok az értékek, mint D3DMATERIALCOLORSOURCE a D3DMCS_ előtag nélkül. Lásd: D3DRS_SPECULARMATERIALSOURCE. |
TweenFactor | lebeg | Ugyanazok az értékek, mint D3DRS_TWEENFACTOR. |
Csúcspont | dword | Ugyanazok az értékek, mint D3DVERTEXBLENDFLAGS a D3DVBF_ előtag nélkül. Lásd: D3DRS_VERTEXBLEND. |
Példa:
Ambient = float4<0.7f, 0.0f, 0.0f, 1.0f>;
CullMode = CCW;
FogColor = 0xff0000;
Ez teszi a környezeti szín float4<0.7f, 0.0f, 0.0f, 1.0f>, állítsa a backface culling módot az óramutató járásával ellentétes irányba, és állítsa a köd színét pirosra.
Mintavevő állapotai
A mintavevő állapota egy mintavevő objektumot jelöl.
Állam | Típus | Értékrend |
---|---|---|
Sampler | Sampler | NULLvagy mintavevő állapotblokkot. |
Mintavevő fázisállapotai
A mintavevő fázisállapotai a mintául szolgáló textúrákra szolgálnak. A sampler állapot határozza meg a szűrési típusokat és a textúracímzési módokat.
Mintavevő állapota | Típus | Értékrend |
---|---|---|
Cím[16] | dword | Ugyanazok az értékek, mint D3DTEXTUREADDRESS a D3DTADDRESS_ előtag nélkül. Lásd: D3DSAMP_ADDRESSU. |
AddressV[16] | dword | Ugyanazok az értékek, mint D3DTEXTUREADDRESS a D3DTADDRESS_ előtag nélkül. Lásd: D3DSAMP_ADDRESSV. |
AddressW[16] | dword | Ugyanazok az értékek, mint D3DTEXTUREADDRESS a D3DTADDRESS_ előtag nélkül. Lásd: D3DSAMP_ADDRESSW. |
BorderColor[16] | D3DCOLOR | Ugyanazok az értékek, mint D3DTEXTUREFILTERTYPE a D3DTEXF_ előtag nélkül. Lásd: D3DSAMP_BORDERCOLOR. |
MagFilter[16] | dword | Ugyanazok az értékek, mint D3DTEXTUREFILTERTYPE a D3DTEXF_ előtag nélkül. Lásd: D3DSAMP_MAGFILTER. |
MaxAnisotropy[16] | dword | Ugyanazok az értékek, mint D3DSAMP_MAXANISOTROPY a D3DSAMP_ előtag nélkül. |
MaxMipLevel[16] | Int | Ugyanazok az értékek, mint D3DSAMP_MAXMIPLEVEL a D3DSAMP_ előtag nélkül. |
MinFilter[16] | dword | Ugyanazok az értékek, mint D3DSAMP_MINFILTER a D3DSAMP_ előtag nélkül. |
MipFilter[16] | dword | Ugyanazok az értékek, mint D3DSAMP_MIPFILTER a D3DSAMP_ előtag nélkül. |
MipMapLodBias[16] | lebeg | Ugyanazok az értékek, mint D3DSAMP_MIPMAPLODBIAS a D3DSAMP_ előtag nélkül. |
SRGBTexture | Bool | Ugyanaz az érték, mint D3DSAMP_SRGBTEXTURE a D3DSAMP_ előtag nélkül. |
Példa:
AddressU[0] = CLAMP;
AddressV[0] = CLAMP;
AddressW[0] = CLAMP;
Ez 0 és 1 közötti UVW-értékeket rögzít.
Shader-állapotok
Csak két effektusárnyékoló állapot létezik: az egyik egy csúcsárnyékoló objektumhoz, a másik pedig egy képpontárnyékoló objektumhoz van társítva.
Árnyékoló állapota | Típus | Értékrend |
---|---|---|
PixelShader | pixelshader | NULL, szerelvényblokk, fordítási cél vagy képpontárnyékoló paraméter. |
Csúcstengely | csúcstengely | NULL, szerelvényblokk, fordítási cél vagy képpontárnyékoló paraméter. |
Példa:
VertexShader = compile vs_1_1 VSTexture();
PixelShader = NULL;
Ez lefordítja a VSTexture-t, a .fx fájlban korábban definiált csúcsárnyékolót az 1.1-es csúcsárnyékolóra, majd a lefordított árnyékolót állítja be csúcsárnyékolóként. A képpontárnyékoló hozzá van rendelve NULL.
Shader Constant States
A shader-állandó állapotok a shader állandó paramétereinek elérésére szolgálnak.
Shader Constant State | Típus | Értékrend |
---|---|---|
PixelShaderConstant | float[m[n]] | m x n lebegőpontos tömb; m és n nem kötelező. |
PixelShaderConstant1 | float4 | Egy 4D úszó. |
PixelShaderConstant2 | float4x2 | Két 4D úszó. |
PixelShaderConstant3 | float4x3 | Három 4D úszó. |
PixelShaderConstant4 | float4x4 | Négy 4D úszó. |
PixelShaderConstantB | bool[m[n]] | m x n logikai tömb; m és n nem kötelező. |
PixelShaderConstantI | int[m[n]] | m x n tömb ints. m és n nem kötelező. |
PixelShaderConstantF | float[m[n]] | m x n lebegőpontos tömb. m és n nem kötelező. |
VertexShaderConstant | float[m[n]] | m x n lebegőpontos tömb. m és n nem kötelező. |
VertexShaderConstant1 | float4 | Egy 4D úszó. |
VertexShaderConstant2 | float4x2 | Két 4D úszó. |
VertexShaderConstant3 | float4x3 | Három 4D úszó. |
VertexShaderConstant4 | float4x4 | Négy 4D úszó. |
VertexShaderConstantB | bool[m[n]] | m x n logikai tömb. m és n nem kötelező. |
VertexShaderConstantI | int[m[n]] | m x n tömb ints. m és n nem kötelező. |
VertexShaderConstantF | float[m[n]] | m x n lebegőpontos tömb. m és n nem kötelező. |
Textúraállapotok
A textúraállapotok inicializálják a multitexture keverő által használt textúrákat.
Textúra állapota | Típus | Értékrend |
---|---|---|
Textúra[8] | szövet | NULLvagy textúraparamétert. |
Textúraszakasz állapotai
A textúraállapotok a többszöveges turmixgép anyagmintáit és anyagmintáit állítják be.
Textúraszakasz állapota | Típus | Értékrend |
---|---|---|
AlphaOp[8] | dword | Ugyanaz, mint D3DTEXTUREOP a D3DTOP_ előtag nélkül. Lásd: D3DTSS_ALPHAOP. |
AlphaArg0[8] | dword | Ugyanaz, mint D3DTA D3DTA_ előtag nélkül. Lásd: D3DTSS_ALPHAARG0. |
AlphaArg1[8] | dword | Ugyanaz, mint D3DTA D3DTA_ előtag nélkül. Lásd: D3DTSS_ALPHAARG1. |
AlphaArg2[8] | dword | Ugyanaz, mint D3DTA D3DTA_ előtag nélkül. Lásd: D3DTSS_ALPHAARG2. |
ColorArg0[8] | dword | Ugyanaz, mint D3DTA D3DTA_ előtag nélkül. Lásd: D3DTSS_COLORARG0. |
ColorArg1[8] | dword | Ugyanaz, mint D3DTA D3DTA_ előtag nélkül. Lásd: D3DTSS_COLORARG1. |
ColorArg2[8] | dword | Ugyanaz, mint D3DTA D3DTA_ előtag nélkül. Lásd: D3DTSS_COLORARG2. |
ColorOp[8] | dword | Ugyanaz, mint D3DTEXTUREOP a D3DTOP_ előtag nélkül. Lásd: D3DTSS_COLOROP. |
BumpEnvLScale[8] | lebeg | Ugyanazok az értékek, mint D3DTSS_BUMPENVLSCALE a D3DTSS_TCI előtag nélkül. |
BumpEnvLOffset[8] | lebeg | Ugyanazok az értékek, mint D3DTSS_BUMPENVLOFFSET a D3DTSS_TCI előtag nélkül. |
BumpEnvMat00[8] | lebeg | Ugyanazok az értékek, mint D3DTSS_BUMPENVMAT00. |
BumpEnvMat01[8] | lebeg | Ugyanazok az értékek, mint D3DTSS_BUMPENVMAT01. |
BumpEnvMat10[8] | lebeg | Ugyanazok az értékek, mint D3DTSS_BUMPENVMAT10. |
BumpEnvMat11[8] | lebeg | Ugyanazok az értékek, mint D3DTSS_BUMPENVMAT11. |
ResultArg[8] | dword | Ugyanaz, mint D3DTA D3DTA_ előtag nélkül. Lásd: D3DTSS_RESULTARG. |
TexCoordIndex[8] | dword | Ugyanazok az értékek, mint D3DTSS_TEXCOORDINDEX a D3DTSS_TCI előtag nélkül. |
TextureTransformFlags[8] | dword | Ugyanazok az értékek, mint D3DTEXTURETRANSFORMFLAGS D3DTTFF_ előtag nélkül. Lásd: D3DTSS_TEXTURETRANSFORMFLAGS. |
Állapotok átalakítása
Átalakítási állapotok beállítása transzformációs mátrixok inicializálásához. Az effektusok transzponált mátrixokat használnak a hatékonyság érdekében. Transzponált mátrixokat adhat egy effektushoz, vagy egy effektus automatikusan transzponálta a mátrixokat használat előtt.
Állapot átalakítása | Típus | Értékrend |
---|---|---|
ProjectionTransform | float4x4 | Úszók 4x4 mátrixa. Ugyanazok az értékek, mint D3DTS_PROJECTION a D3DTS_ előtag nélkül. |
TextureTransform[8] | float4x4 | Úszók 4x4 mátrixa. Ugyanazok az értékek, mint D3DTRANSFORMSTATETYPE a D3DTS_ előtag nélkül. |
ViewTransform | float4x4 | Úszók 4x4 mátrixa. Ugyanazok az értékek, mint D3DTS_VIEW a D3DTS_ előtag nélkül. |
WorldTransform | float4x4 | Úszók 4x4 mátrixa. |