Delen via


Effectstatussen (Direct3D 9)

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:

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:
  • COORD0 (die overeenkomt met D3DWRAPCOORD_0)
  • COORD1 (die overeenkomt met D3DWRAPCOORD_1)
  • COORD2 (die overeenkomt met D3DWRAPCOORD_2)
  • COORD3 (die overeenkomt met D3DWRAPCOORD_3)
  • U (die overeenkomt met D3DWRAP_U)
  • V (die overeenkomt met D3DWRAP_V)
  • W (die overeenkomt met D3DWRAP_W)
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.

 

effectindeling