Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Effectstatussen worden gebruikt om pijplijnstatussen te initialiseren ter voorbereiding op hoekpunt- en pixelverwerking.
effect state [ [index] ] = expression;
Waar:
- effectstatus: vergelijkbaar met de traditionele status van de vaste functiepijplijn. Hieronder vindt u een volledige lijst met statussen.
- [ [index] ] - Optionele index voor gehele getallen. De index identificeert een bepaalde status binnen een matrix met effectstatussen. De buitenste haken geven aan dat een index optioneel is. Als er een index wordt gebruikt, moet u de binnenste haken gebruiken.
- expressie : expressie voor statustoewijzing. Zie Expressies (Direct3D 9).
Elke status heeft een systeemeigen gegevenstype. Dit is het gegevenstype waarin de status verwacht dat waarden zich bevinden wanneer het effect ze toewijst. De gegevenstypen die door elke status worden verwacht, worden hieronder vermeld.
Houd er rekening mee dat de effectinterface probeert zo snel mogelijk waarden naar het juiste type te casten. Letterlijke waarden kunnen tijdens het compileren worden gecast. Niet-letterlijke gegevens (bijvoorbeeld reguliere variabelen) moeten worden gecast wanneer de juiste setmethoden worden aangeroepen. De effectinterface cast bijvoorbeeld waarden die zijn ingesteld met behulp van SetBool-, SetValueen andere vergelijkbare functies, indien nodig. Voor betere prestaties zorgt u ervoor dat de waarden die worden doorgegeven aan de effectinterface al het juiste type zijn en geen cast-conversie nodig hebben. Als de runtime geen waarde kan casten, wordt er een fout geretourneerd.
Effectstatussen kunnen worden onderverdeeld in de volgende categorieën:
- Light States
- materiaaltoestanden
- statussen weergeven
- voorbeeldstatussen
- fasestatussen van de sampler
- shaderstatussen
- arceringsconstante staten
- patroonstatussen
- fasestatussen van patronen
- statussen transformeren
Lichte toestanden
Om de beste prestaties voor het toepassen van een effect mogelijk te maken, moeten alle onderdelen van een licht of materiaal worden opgegeven in het effectbestand. Statussen die u niet declareert, worden ingesteld op een bepaalde standaardwaarde, omdat direct3D geen enkele manier heeft om afzonderlijke lichttoestanden in te stellen.
| Lichte toestand | Type | Waarden |
|---|---|---|
| LightAmbient[n] | float4 | Zie het omgevingslid van D3DLIGHT9. |
| LightAttenuation0[n] | drijven | Zie het lid attenuation0 van D3DLIGHT9. |
| LightAttenuation1[n] | drijven | Zie het lid attenuation1 van D3DLIGHT9. |
| LightAttenuation2[n] | drijven | Zie het lid attenuation2 van D3DLIGHT9. |
| LightDiffuse[n] | float4 | Zie het diffuse lid van D3DLIGHT9. |
| LightDirection[n] | float3 | Zie het direction-lid van D3DLIGHT9. |
| LightEnable[n] | Bool | TRUE of FALSE. Zie het argument bEnable in LightEnable. |
| LightFalloff[n] | drijven | D3DCOLORVALUE. Zie het falloff-lid van D3DLIGHT9. |
| LightPhi[n] | drijven | Zie het Phi-lid van D3DLIGHT9. |
| LightPosition[n] | float3 | Zie het lid Positie van D3DLIGHT9. |
| LightRange[n] | drijven | Zie het bereiklid van D3DLIGHT9. |
| LightSpecular[n] | float4 | Zie het specular lid van D3DLIGHT9. |
| LightTheta[n] | drijven | Zie het Theta-lid van D3DLIGHT9. |
| LightType[n] | dword | Dezelfde waarde als de matrix van maximaal n D3DLIGHTTYPE waarden zonder het voorvoegsel D3DLIGHT_. |
Voorbeeld:
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>;
Hiermee kunt u verlichting mogelijk maken, puntverlichting het type maken, de lichtpositie instellen op float3<10,0f, 1.0f, 23.0f>en de omgevingskleur instellen op float4<0,7f, 0,0f, 0,0f, 1,0f>.
Materiële toestanden
Statussen die u niet declareert, worden ingesteld op een bepaalde standaardwaarde, omdat direct3D geen enkele manier heeft om afzonderlijke materiaalstatussen in te stellen.
| Materiaalstatus | Type | Waarden |
|---|---|---|
| MaterialAmbient | float4 | Dezelfde waarde als Ambient |
| MaterialDiffuse | float4 | Dezelfde waarde als Diffuse |
| MaterialEmissive | float4 | Dezelfde waarde als Emissive- |
| MaterialPower | drijven | Dezelfde waarde als Power |
| MaterialSpecular | float4 | Dezelfde waarde als specular |
Voorbeeld:
MaterialDiffuse = float4<0.7f, 0.0f, 0.0f, 1.0f>;
MaterialPower = 3.0f;
Hierdoor wordt de diffuse kleur ingesteld op float4<0,7f, 0,0f, 0,0f, 1,0f> en de kracht van het materiaal 3.0f te maken.
Statussen weergeven
Er zijn twee typen renderstatussen:
Weergavestatussen van pixelpijpen
Weergavestatussen van effectbestanden hebben namen die vergelijkbaar zijn met de statussen van de vaste functiepijplijn, vaak met het voorvoegsel verwijderd.
| Status weergeven | Type | Waarden |
|---|---|---|
| AlphaBlendEnable | Bool | Waar of Onwaar. Dezelfde waarden als D3DRS_ALPHABLENDENABLE in D3DRENDERSTATETYPE. |
| AlphaFunc | dword | Dezelfde waarden als D3DCMPFUNC zonder het voorvoegsel D3DCMP_. Zie D3DRS_ALPHAFUNC. |
| AlphaRef | dword | Dezelfde waarden als D3DRS_ALPHAREF. |
| AlphaTestEnable | dword | Waar of Onwaar. Zie D3DRS_ALPHATESTENABLE. |
| BlendOp | dword | Dezelfde waarden als D3DBLENDOP zonder het voorvoegsel D3DBLENDOP_. |
| ColorWriteEnable | dword | Bitsgewijze combinatie van ROOD, GROEN, BLAUW en ALPHA. Zie D3DRS_COLORWRITEENABLE. |
| DepthBias | drijven | Dezelfde waarden als D3DRS_DEPTHBIAS. |
| DestBlend | dword | Dezelfde waarden als D3DBLEND zonder het D3DBLEND_ voorvoegsel. |
| DitherEnable | Bool | Waar of Onwaar. Dezelfde waarden als D3DRS_DITHERENABLE. |
| FillMode | dword | Dezelfde waarden als D3DFILLMODE zonder het voorvoegsel D3DFILL_. |
| Last Pixel | dword | Waar of Onwaar. Zie D3DRS_LASTPIXEL. |
| ShadeMode | dword | Dezelfde waarden als D3DSHADEMODE zonder het D3DSHADE_ voorvoegsel. |
| SlopeScaleDepthBias | drijven | Dezelfde waarden als D3DRS_SLOPESCALEDEPTHBIAS. |
| SrcBlend | dword | Dezelfde waarden als D3DBLEND zonder het D3DBLEND_ voorvoegsel. |
| SRGBWriteEnable | Bool | Waar of Onwaar. Dezelfde waarden als D3DRS_SRGBWRITEENABLE. |
| StencilEnable | Bool | Waar of Onwaar. Dezelfde waarden als D3DRS_STENCILENABLE. |
| StencilFail | dword | Dezelfde waarden als D3DSTENCILCAPS zonder het voorvoegsel D3DSTENCILCAP_. Zie D3DRS_STENCILFAIL. |
| StencilFunc | dword | Dezelfde waarden als D3DCMPFUNC zonder het voorvoegsel D3DCMP_. Zie D3DRS_STENCILFUNC. |
| StencilMask | dword | Dezelfde waarden als D3DRS_STENCILMASK. |
| StencilPass | dword | Dezelfde waarden als D3DSTENCILCAPS zonder het voorvoegsel D3DSTENCILCAP_. Zie D3DRS_STENCILPASS. |
| StencilRef | Int | Dezelfde waarden als D3DRS_STENCILREF. |
| StencilWriteMask | dword | Dezelfde waarden als D3DRS_STENCILWRITEMASK. |
| StencilZFail | dword | Dezelfde waarden als D3DSTENCILCAPS zonder het voorvoegsel D3DSTENCILCAP_. Zie D3DRS_STENCILZFAIL. |
| TextureFactor | dword | Dezelfde waarden als D3DCOLOR. Dezelfde waarden als D3DRS_TEXTUREFACTOR. |
| Wrap0 - Wrap15 | dword | Waarden zijn hetzelfde als de waarden die worden gebruikt door D3DRS_WRAP0. Geldige waarden zijn:
|
| ZEnable | dword | Dezelfde waarden als D3DZBUFFERTYPE zonder het voorvoegsel D3DZB_. |
| ZFunc | dword | Dezelfde waarden als D3DCMPFUNC zonder het voorvoegsel D3DCMP_. Zie D3DRS_ZFUNC. |
| ZWriteEnable | Bool | Waar of Onwaar. Zie D3DRS_ZWRITEENABLE. |
Voorbeeld:
AlphaBlendEnable = TRUE;
FillMode = WIREFRAME;
Hierdoor kunnen alfamengingen worden gecombineerd en worden alle geometrieën weergegeven in draadmodel.
Weergavestatussen van hoekpuntpijpen
Weergavestatussen van effectbestanden hebben namen die vergelijkbaar zijn met de statussen van de vaste functiepijplijn, vaak met het voorvoegsel verwijderd.
| Status weergeven | Type | Waarden |
|---|---|---|
| Ambient | float4 | Dezelfde waarden als D3DRS_AMBIENT. |
| AmbientMaterialSource | dword | Dezelfde waarden als D3DMATERIALCOLORSOURCE zonder het voorvoegsel D3DMCS_. Zie D3DRS_AMBIENTMATERIALSOURCE. |
| Knipsel | Bool | Waar of Onwaar. Dezelfde waarden als D3DRS_CLIPPING. |
| ClipPlaneEnable | dword | Bitsgewijze combinatie van D3DCLIPPLANE0 - D3DCLIPPLANE5 macro's. Zie D3DCLIPPLANEn en D3DRS_CLIPPLANEENABLE. |
| ColorVertex | Bool | Waar of Onwaar. Dezelfde waarden als D3DRS_COLORVERTEX. |
| CullMode | dword | Dezelfde waarden als D3DCULL zonder het voorvoegsel D3DCULL_. |
| Diffuse MaterialSource | dword | Dezelfde waarden als D3DMATERIALCOLORSOURCE zonder het voorvoegsel D3DMCS_. Zie D3DRS_DIFFUSEMATERIALSOURCE. |
| EmissiveMaterialSource | dword | Dezelfde waarden als D3DMATERIALCOLORSOURCE zonder het voorvoegsel D3DMCS_. Zie D3DRS_EMISSIVEMATERIALSOURCE. |
| FogColor | dword | Dezelfde waarden als D3DCOLOR. Zie D3DRS_FOGCOLOR. |
| FogDensity | drijven | Dezelfde waarden als D3DRS_FOGDENSITY. |
| FogEnable | Bool | Waar of Onwaar. Dezelfde waarden als D3DRS_FOGENABLE. |
| FogEnd | drijven | Dezelfde waarden als D3DRS_FOGEND. |
| FogStart | drijven | Dezelfde waarden als D3DRS_FOGSTART. |
| FogTableMode | dword | Dezelfde waarden als D3DFOGMODE. Zie D3DRS_FOGTABLEMODE in D3DRENDERSTATETYPE. |
| FogVertexMode | dword | Dezelfde waarden als D3DFOGMODE zonder het D3DFOG_ voorvoegsel. |
| IndexedVertexBlendEnable | Bool | Waar of Onwaar. Dezelfde waarden als D3DRS_INDEXEDVERTEXBLENDENABLE. |
| Verlichting | Bool | Waar of Onwaar. Dezelfde waarden als D3DRS_LIGHTING. |
| LocalViewer | Bool | Waar of Onwaar. Dezelfde waarden als D3DRS_LOCALVIEWER. |
| MultiSampleAntialias | Bool | Dezelfde waarden als D3DRS_MULTISAMPLEANTIALIAS. |
| MultiSampleMask | dword | Dezelfde waarden als D3DRS_MULTISAMPLEMASK. |
| NormalizeNormals | Bool | Waar of Onwaar. Dezelfde waarden als D3DRS_NORMALIZENORMALS. |
| PatchSegmenten | drijven | Dezelfde waarden als nSegments in SetNPatchMode. |
| PointScale_A | drijven | Dezelfde waarden als D3DRS_POINTSCALE_A. |
| PointScale_B | drijven | Dezelfde waarden als D3DRS_POINTSCALE_B. |
| PointScale_C | drijven | Dezelfde waarden als D3DRS_POINTSCALE_C. |
| PointScaleEnable | Bool | Dezelfde waarden als D3DRS_POINTSCALEENABLE. |
| PointSize | drijven | Dezelfde waarden als D3DRS_POINTSIZE. |
| PointSize_Min | drijven | Dezelfde waarden als D3DRS_POINTSIZE_MIN. |
| PointSize_Max | drijven | Dezelfde waarden als D3DRS_POINTSIZE_MAX zonder het voorvoegsel D3DRS_. |
| PointSpriteEnable | Bool | Waar of Onwaar. Dezelfde waarden als D3DRS_POINTSPRITEENABLE. |
| RangeFogEnable | Bool | Waar of Onwaar. Dezelfde waarden als D3DRS_RANGEFOGENABLE. |
| SpecularEnable | Bool | Waar of Onwaar. Dezelfde waarden als D3DRS_SPECULARENABLE. |
| SpecularMaterialSource | dword | Dezelfde waarden als D3DMATERIALCOLORSOURCE zonder het voorvoegsel D3DMCS_. Zie D3DRS_SPECULARMATERIALSOURCE. |
| TweenFactor | drijven | Dezelfde waarden als D3DRS_TWEENFACTOR. |
| HoekpuntBlend | dword | Dezelfde waarden als D3DVERTEXBLENDFLAGS zonder het D3DVBF_ voorvoegsel. Zie D3DRS_VERTEXBLEND. |
Voorbeeld:
Ambient = float4<0.7f, 0.0f, 0.0f, 1.0f>;
CullMode = CCW;
FogColor = 0xff0000;
Hierdoor wordt de omgevingskleur float4<0,7f, 0,0f, 0,0f, 1,0f>, stelt u de modus backface-ruiming linksom in en stelt u de mistkleur in op rood.
Voorbeeldstatussen
Een samplerstatus vertegenwoordigt een sampler-object.
| Staat | Type | Waarden |
|---|---|---|
| Sampler | Sampler | NULL-of een statusblok van een sampler. |
Fasestatussen van sampler
Fasestatussen van sampler worden gebruikt om patronen te samplen. Samplerstatus bepaalt filtertypen en patroonadresseringsmodi.
| Samplerstatus | Type | Waarden |
|---|---|---|
| AddressU[16] | dword | Dezelfde waarden als D3DTEXTUREADDRESS zonder het D3DTADDRESS_ voorvoegsel. Zie D3DSAMP_ADDRESSU. |
| AddressV[16] | dword | Dezelfde waarden als D3DTEXTUREADDRESS zonder het D3DTADDRESS_ voorvoegsel. Zie D3DSAMP_ADDRESSV. |
| AddressW[16] | dword | Dezelfde waarden als D3DTEXTUREADDRESS zonder het D3DTADDRESS_ voorvoegsel. Zie D3DSAMP_ADDRESSW. |
| BorderColor[16] | D3DCOLOR | Dezelfde waarden als D3DTEXTUREFILTERTYPE zonder het voorvoegsel D3DTEXF_. Zie D3DSAMP_BORDERCOLOR. |
| MagFilter[16] | dword | Dezelfde waarden als D3DTEXTUREFILTERTYPE zonder het voorvoegsel D3DTEXF_. Zie D3DSAMP_MAGFILTER. |
| MaxAnisotropy[16] | dword | Dezelfde waarden als D3DSAMP_MAXANISOTROPY zonder het voorvoegsel D3DSAMP_. |
| MaxMipLevel[16] | Int | Dezelfde waarden als D3DSAMP_MAXMIPLEVEL zonder het D3DSAMP_ voorvoegsel. |
| MinFilter[16] | dword | Dezelfde waarden als D3DSAMP_MINFILTER zonder het D3DSAMP_ voorvoegsel. |
| MipFilter[16] | dword | Dezelfde waarden als D3DSAMP_MIPFILTER zonder het voorvoegsel D3DSAMP_. |
| MipMapLodBias[16] | drijven | Dezelfde waarden als D3DSAMP_MIPMAPLODBIAS zonder het D3DSAMP_ voorvoegsel. |
| SRGBTexture | Bool | Dezelfde waarde als D3DSAMP_SRGBTEXTURE zonder het voorvoegsel D3DSAMP_. |
Voorbeeld:
AddressU[0] = CLAMP;
AddressV[0] = CLAMP;
AddressW[0] = CLAMP;
Deze klemmen UVW-waarden tussen 0 en 1.
Arceringsstatussen
Er zijn slechts twee effect-shaderstatussen: een die is gekoppeld aan een hoekpunt-shader-object en de andere die is gekoppeld aan een pixel-shader-object.
| Arceringsstatus | Type | Waarden |
|---|---|---|
| PixelShader | pixelshader | NULL-, een assemblyblok, een compileerdoel of een parameter voor pixel-shader. |
| VertexShader | hoekpuntshader | NULL-, een assemblyblok, een compileerdoel of een parameter voor pixel-shader. |
Voorbeeld:
VertexShader = compile vs_1_1 VSTexture();
PixelShader = NULL;
Hiermee compileert u VSTexture, een hoekpunt-shader die eerder in het FX-bestand is gedefinieerd, naar de hoekpunt-shader versie 1.1 en stelt u die gecompileerde shader in als de hoekpunt-shader. De pixel-shader wordt toegewezen aan NULL-.
Arceringsconstante statussen
Arceringsconstante statussen worden gebruikt om toegang te krijgen tot arceringsconstante parameters.
| Arceringsconstante status | Type | Waarden |
|---|---|---|
| PixelShaderConstant | float[m[n]] | m x n matrix van floats; m en n zijn optioneel. |
| PixelShaderConstant1 | float4 | Eén 4D float. |
| PixelShaderConstant2 | float4x2 | Twee 4D floats. |
| PixelShaderConstant3 | float4x3 | Drie 4D floats. |
| PixelShaderConstant4 | float4x4 | Vier 4D floats. |
| PixelShaderConstantB | bool[m[n]] | m x n matrix van boolen; m en n zijn optioneel. |
| PixelShaderConstantI | int[m[n]] | m x n matrix van ints. m en n zijn optioneel. |
| PixelShaderConstantF | float[m[n]] | m x n matrix met floats. m en n zijn optioneel. |
| VertexShaderConstant | float[m[n]] | m x n matrix met floats. m en n zijn optioneel. |
| VertexShaderConstant1 | float4 | Eén 4D float. |
| VertexShaderConstant2 | float4x2 | Twee 4D floats. |
| VertexShaderConstant3 | float4x3 | Drie 4D floats. |
| VertexShaderConstant4 | float4x4 | Vier 4D floats. |
| VertexShaderConstantB | bool[m[n]] | m x n matrix van boolen. m en n zijn optioneel. |
| VertexShaderConstantI | int[m[n]] | m x n matrix van ints. m en n zijn optioneel. |
| VertexShaderConstantF | float[m[n]] | m x n matrix met floats. m en n zijn optioneel. |
Patroonstatussen
Textuurstatussen initialiseren patronen die worden gebruikt door de multitexture blender.
| Patroonstatus | Type | Waarden |
|---|---|---|
| Texture[8] | textuur | NULL-of een patroonparameter. |
Statussen van patroonfasen
Patroonfasestatussen stellen patronen en de patroonfasen in de multitexture blender in.
| Status van patroonfase | Type | Waarden |
|---|---|---|
| AlphaOp[8] | dword | Hetzelfde als D3DTEXTUREOP zonder het D3DTOP_ voorvoegsel. Zie D3DTSS_ALPHAOP. |
| AlphaArg0[8] | dword | Hetzelfde als D3DTA- zonder het D3DTA_ voorvoegsel. Zie D3DTSS_ALPHAARG0. |
| AlphaArg1[8] | dword | Hetzelfde als D3DTA- zonder het D3DTA_ voorvoegsel. Zie D3DTSS_ALPHAARG1. |
| AlphaArg2[8] | dword | Hetzelfde als D3DTA- zonder het D3DTA_ voorvoegsel. Zie D3DTSS_ALPHAARG2. |
| ColorArg0[8] | dword | Hetzelfde als D3DTA- zonder het D3DTA_ voorvoegsel. Zie D3DTSS_COLORARG0. |
| ColorArg1[8] | dword | Hetzelfde als D3DTA- zonder het D3DTA_ voorvoegsel. Zie D3DTSS_COLORARG1. |
| ColorArg2[8] | dword | Hetzelfde als D3DTA- zonder het D3DTA_ voorvoegsel. Zie D3DTSS_COLORARG2. |
| ColorOp[8] | dword | Hetzelfde als D3DTEXTUREOP zonder het D3DTOP_ voorvoegsel. Zie D3DTSS_COLOROP. |
| BumpEnvLScale[8] | drijven | Dezelfde waarden als D3DTSS_BUMPENVLSCALE zonder het voorvoegsel D3DTSS_TCI. |
| BumpEnvLOffset[8] | drijven | Dezelfde waarden als D3DTSS_BUMPENVLOFFSET zonder het voorvoegsel D3DTSS_TCI. |
| BumpEnvMat00[8] | drijven | Dezelfde waarden als D3DTSS_BUMPENVMAT00. |
| BumpEnvMat01[8] | drijven | Dezelfde waarden als D3DTSS_BUMPENVMAT01. |
| BumpEnvMat10[8] | drijven | Dezelfde waarden als D3DTSS_BUMPENVMAT10. |
| BumpEnvMat11[8] | drijven | Dezelfde waarden als D3DTSS_BUMPENVMAT11. |
| ResultArg[8] | dword | Hetzelfde als D3DTA- zonder het D3DTA_ voorvoegsel. Zie D3DTSS_RESULTARG. |
| TexCoordIndex[8] | dword | Dezelfde waarden als D3DTSS_TEXCOORDINDEX zonder het D3DTSS_TCI voorvoegsel. |
| TextureTransformFlags[8] | dword | Dezelfde waarden als D3DTEXTURETRANSFORMFLAGS waarden zonder het voorvoegsel D3DTTFF_. Zie D3DTSS_TEXTURETRANSFORMFLAGS. |
Transformatiestatussen
Transformatiestatussen instellen om transformatiematrices te initialiseren. Effecten gebruiken getransponeerde matrices voor efficiëntie. U kunt getransponeerde matrices aan een effect geven of een effect zal de matrices automatisch transponeren voordat u ze gebruikt.
| Transformatiestatus | Type | Waarden |
|---|---|---|
| ProjectionTransform | float4x4 | Een 4x4 matrix met floats. Dezelfde waarden als D3DTS_PROJECTION zonder het D3DTS_ voorvoegsel. |
| TextureTransform[8] | float4x4 | Een 4x4 matrix met floats. Dezelfde waarden als D3DTRANSFORMSTATETYPE zonder het D3DTS_ voorvoegsel. |
| ViewTransform | float4x4 | Een 4x4 matrix met floats. Dezelfde waarden als D3DTS_VIEW zonder het voorvoegsel D3DTS_. |
| WorldTransform | float4x4 | Een 4x4 matrix met floats. |