ステート
ステート
エフェクト ステートは、頂点処理やピクセル処理の準備作業としてパイプライン ステートの初期化に使われる。
effect state [ [index] ] = expression
ここで
- effect states - 従来の固定機能パイプライン ステートに似ている。次に、全ステートの一覧を示す。
- [ [index] ] - オプションの整数インデックス。このインデックスは、エフェクト ステート配列内の特定のステートを識別する。外側のかっこは、インデックスがオプションであることを示す。インデックスを使う場合は、内側のかっこを必ず使わなければならない。
- expression - ステートの割り当て式。「式」を参照すること。
エフェクト ステートは次のカテゴリに分類される。
ライティング ステート
マテリアル ステート
レンダリング ステート
-
- ピクセル パイプライン レンダリング ステート
- 頂点パイプライン レンダリング ステート
サンプラ ステート
サンプラ ステージ ステート
シェーダ ステート
シェーダ定数ステート
-
- ピクセル シェーダ定数ステート
- 頂点シェーダ定数ステート
テクスチャ ステート
テクスチャ ステージ ステート
トランスフォーム ステート
ライティング ステート
エフェクトを適用するときのパフォーマンスを最大限に高めるには、エフェクト ファイルで、ライトまたはマテリアルのすべての成分を指定する。Microsoft® Direct3D® は個別にライティング ステートを設定できないため、宣言に失敗したステートにはデフォルト値が設定される。
ライティング ステート | 型 | 値 |
---|---|---|
LightAmbient[n] | float4 | D3DLIGHT9 の Ambient メンバを参照すること。 |
LightAttenuation0[n] | float | D3DLIGHT9 の Attenuation0 メンバを参照すること。 |
LightAttenuation1[n] | float | D3DLIGHT9 の Attenuation1 メンバを参照すること。 |
LightAttenuation2[n] | float | D3DLIGHT9 の Attenuation2 メンバを参照すること。 |
LightDiffuse[n] | float4 | D3DLIGHT9 の Diffuse メンバを参照すること。 |
LightDirection[n] | float3 | D3DLIGHT9 の Direction メンバを参照すること。 |
LightEnable[n] | bool | True または False。IDirect3DDevice9::LightEnable の bEnable 引数を参照すること。 |
LightFalloff[n] | float | D3DCOLORVALUE。D3DLIGHT9 の Falloff メンバを参照すること。 |
LightPhi[n] | float | D3DLIGHT9 の Phi メンバを参照すること。 |
LightPosition[n] | float3 | D3DLIGHT9 の Position メンバを参照すること。 |
LightRange[n] | float | D3DLIGHT9 の Range メンバを参照すること。 |
LightSpecular[n] | float4 | D3DLIGHT9 の Specular メンバを参照すること。 |
LightTheta[n] | float | D3DLIGHT9 の Theta メンバを参照すること。 |
LightType[n] | dword | D3DLIGHT_ プレフィクスが付かない、最大 n 個の D3DLIGHTTYPE 値の配列と同じ値。 |
マテリアル ステート
Direct3D は個別にマテリアル ステートを設定できないため、宣言に失敗したステートにはデフォルト値が設定される。
マテリアル ステート | 型 | 値 |
---|---|---|
MaterialAmbient | float4 | Ambient と同じ値。 |
MaterialDiffuse | float4 | Diffuse と同じ値。 |
MaterialEmissive | float4 | Emissive と同じ値。 |
MaterialPower | float | Power と同じ値。 |
MaterialSpecular | float4 | Specular と同じ値。 |
レンダリング ステート
レンダリング ステートには次のものがある。
頂点パイプライン レンダリング ステート
エフェクト ファイルのレンダリング ステートは、固定機能パイプライン ステートと名前が似ているが、プレフィックスが付かないことがある。
レンダリング ステート | 型 | 値 |
---|---|---|
Ambient | float4 | D3DRS_AMBIENT と同じ値。 |
AmbientMaterialSource | dword | D3DMCS_ プレフィックスが付かない、D3DMATERIALCOLORSOURCE と同じ値。「D3DRS_AMBIENTMATERIALSOURCE」を参照すること。 |
Clipping | bool | True または False。D3DRS_CLIPPING と同じ値。 |
ClipPlaneEnable | dword | D3DCLIPPLANE0 ~ D3DCLIPPLANE5 マクロのビットの組み合わせ。「D3DCLIPPLANEn」および「D3DRS_CLIPPLANEENABLE」を参照すること。 |
ColorVertex | bool | True または False。D3DRS_COLORVERTEX と同じ値。 |
CullMode | dword | D3DCULL_ プレフィックスが付かない、D3DCULL と同じ値。 |
DiffuseMaterialSource | dword | D3DMCS_ プレフィックスが付かない、D3DMATERIALCOLORSOURCE と同じ値。「D3DRS_DIFFUSEMATERIALSOURCE」を参照すること。 |
EmissiveMaterialSource | dword | D3DMCS_ プレフィックスが付かない、D3DMATERIALCOLORSOURCE と同じ値。「D3DRS_EMISSIVEMATERIALSOURCE」を参照すること。 |
FogColor | dword | D3DCOLOR と同じ値。「D3DRS_FOGCOLOR」を参照すること。 |
FogDensity | float | D3DRS_FOGDENSITY と同じ値。 |
FogEnable | bool | True または False。D3DRS_FOGENABLE と同じ値。 |
FogEnd | float | D3DRS_FOGEND と同じ値。 |
FogStart | float | D3DRS_FOGSTART と同じ値。 |
FogTableMode | dword | D3DFOGMODE と同じ値。「D3DRENDERSTATETYPE」の「D3DRS_FOGTABLEMODE」を参照すること。 |
FogVertexMode | dword | D3DFOG_ プレフィックスが付かない、D3DFOGMODE と同じ値。 |
IndexedVertexBlendEnable | bool | True または False。D3DRS_INDEXEDVERTEXBLENDENABLE と同じ値。 |
Lighting | bool | True または False。D3DRS_LIGHTING と同じ値。 |
LocalViewer | bool | True または False。D3DRS_LOCALVIEWER と同じ値。 |
MultiSampleAntialias | bool | D3DRS_MULTISAMPLEANTIALIAS と同じ値。 |
MultiSampleMask | dword | D3DRS_MULTISAMPLEMASK と同じ値。 |
NormalizeNormals | bool | True または False。D3DRS_NORMALIZENORMALS と同じ値。 |
PatchSegments | float | IDirect3DDevice9::SetNPatchMode の nSegments と同じ値。 |
PointScale_A | float | D3DRS_POINTSCALE_A と同じ値。 |
PointScale_B | float | D3DRS_POINTSCALE_B と同じ値。 |
PointScale_C | float | D3DRS_POINTSCALE_C と同じ値。 |
PointScaleEnable | bool | D3DRS_POINTSCALEENABLE と同じ値。 |
PointSize | float | D3DRS_POINTSIZE と同じ値。 |
PointSize_Min | float | D3DRS_POINTSIZE_MIN と同じ値。 |
PointSize_Max | float | D3DRS_ プレフィックスが付かない、D3DRS_POINTSIZE_MAX と同じ値。 |
PointSpriteEnable | bool | True または False。D3DRS_POINTSPRITEENABLE と同じ値。 |
RangeFogEnable | bool | True または False。D3DRS_RANGEFOGENABLE と同じ値。 |
SpecularEnable | bool | True または False。D3DRS_SPECULARENABLE と同じ値。 |
SpecularMaterialSource | dword | D3DMCS_ プレフィックスが付かない、D3DMATERIALCOLORSOURCE と同じ値。「D3DRS_SPECULARMATERIALSOURCE」を参照すること。 |
TweenFactor | float | D3DRS_TWEENFACTOR と同じ値。 |
VertexBlend | dword | D3DVBF_ プレフィックスが付かない、D3DVERTEXBLENDFLAGS と同じ値。「D3DRS_VERTEXBLEND」を参照すること。 |
ピクセル パイプライン レンダリング ステート
エフェクト ファイルのレンダリング ステートは、固定機能パイプライン ステートと名前が似ているが、プレフィックスが付かないことがある。
レンダリング ステート | 型 | 値 |
---|---|---|
AlphaBlendEnable | bool | True または False。D3DRENDERSTATETYPE の D3DRS_ALPHABLENDENABLE と同じ値。 |
AlphaFunc | dword | D3DCMP_ プレフィックスが付かない、D3DCMPFUNC と同じ値。「D3DRS_ALPHAFUNC」を参照すること。 |
AlphaRef | dword | D3DRS_ALPHAREF と同じ値。 |
AlphaTestEnable | dword | True または False。「D3DRS_ALPHATESTENABLE」を参照すること。 |
BlendOp | dword | D3DBLENDOP_ プレフィックスが付かない、D3DBLENDOP と同じ値。 |
ColorWriteEnable | dword | RED|GREEN|BLUE|ALPHA のビットの組み合わせ。「D3DRS_COLORWRITEENABLE」を参照すること。 |
DepthBias | int | D3DRS_DEPTHBIAS と同じ値。 |
DestBlend | dword | D3DBLEND_ プレフィックスが付かない、D3DBLEND と同じ値。 |
DitherEnable | bool | True または False。D3DRS_DITHERENABLE と同じ値。 |
FillMode | dword | D3DFILL_ プレフィックスが付かない、D3DFILLMODE と同じ値。 |
LastPixel | dword | True または False。「D3DRS_LASTPIXEL」を参照すること。 |
ShadeMode | dword | D3DSHADE_ プレフィックスが付かない、D3DSHADEMODE と同じ値。 |
SrcBlend | dword | D3DBLEND_ プレフィックスが付かない、D3DBLEND と同じ値。 |
StencilEnable | bool | True または False。D3DRS_STENCILENABLE と同じ値。 |
StencilFail | dword | D3DSTENCILCAP_ プレフィックスが付かない、D3DSTENCILCAPS と同じ値。「D3DRS_STENCILFAIL」を参照すること。 |
StencilFunc | dword | D3DCMP_ プレフィックスが付かない、D3DCMPFUNC と同じ値。「D3DRS_STENCILFUNC」を参照すること。 |
StencilMask | dword | D3DRS_STENCILMASK と同じ値。 |
StencilPass | dword | D3DSTENCILCAP_ プレフィックスが付かない、D3DSTENCILCAPS と同じ値。「D3DRS_STENCILPASS」を参照すること。 |
StencilRef | int | D3DRS_STENCILREF と同じ値。 |
StencilWriteMask | dword | D3DRS_STENCILWRITEMASK と同じ値。 |
StencilZFail | dword | D3DSTENCILCAP_ プレフィックスが付かない、D3DSTENCILCAPS と同じ値。「D3DRS_STENCILZFAIL」を参照すること。 |
TextureFactor | dword | D3DCOLOR と同じ値。D3DRS_TEXTUREFACTOR と同じ値。 |
Wrap0 | dword | D3DDRS_ プレフィックスが付かない、D3DRENDERSTATETYPE の D3DRS_WRAP0 と同じ値。 |
Wrap1 | dword | D3DDRS_ プレフィックスが付かない、D3DRS_WRAP1 と同じ値。 |
Wrap2 | dword | D3DDRS_ プレフィックスが付かない、D3DRS_WRAP2 と同じ値。 |
Wrap3 | dword | D3DDRS_ プレフィックスが付かない、D3DRS_WRAP3 と同じ値。 |
Wrap4 | dword | D3DDRS_ プレフィックスが付かない、D3DRS_WRAP4 と同じ値。 |
Wrap5 | dword | D3DDRS_ プレフィックスが付かない、D3DRS_WRAP5 と同じ値。 |
Wrap6 | dword | D3DDRS_ プレフィックスが付かない、D3DRS_WRAP6 と同じ値。 |
Wrap7 | dword | D3DDRS_ プレフィックスが付かない、D3DRS_WRAP7 と同じ値。 |
Wrap8 | dword | D3DDRS_ プレフィックスが付かない、D3DRENDERSTATETYPE の D3DRS_WRAP0 と同じ値。 |
Wrap9 | dword | D3DDRS_ プレフィックスが付かない、D3DRS_WRAP1 と同じ値。 |
Wrap10 | dword | D3DDRS_ プレフィックスが付かない、D3DRS_WRAP2 と同じ値。 |
Wrap11 | dword | D3DDRS_ プレフィックスが付かない、D3DRS_WRAP3 と同じ値。 |
Wrap12 | dword | D3DDRS_ プレフィックスが付かない、D3DRS_WRAP4 と同じ値。 |
Wrap13 | dword | D3DDRS_ プレフィックスが付かない、D3DRS_WRAP5 と同じ値。 |
Wrap14 | dword | D3DDRS_ プレフィックスが付かない、D3DRS_WRAP6 と同じ値。 |
Wrap15 | dword | D3DDRS_ プレフィックスが付かない、D3DRS_WRAP7 と同じ値。 |
ZEnable | dword | D3DZB_ プレフィックスが付かない、D3DZBUFFERTYPE と同じ値。 |
ZFunc | dword | D3DCMP_ プレフィックスが付かない、D3DCMPFUNC と同じ値。「D3DRS_ZFUNC」を参照すること。 |
ZWriteEnable | bool | True または False。「D3DRS_ZWRITEENABLE」を参照すること。 |
サンプラ ステート
ステート | 型 | 値 |
---|---|---|
Sampler | sampler | NULL、またはサンプラ ステート ブロック。 |
サンプラ ステージ ステート
サンプラ ステート | 型 | 値 |
---|---|---|
AddressU[16] | dword | D3DTEXF_ プレフィックスが付かない、D3DTEXTUREFILTERTYPE と同じ値。「D3DSAMP_ADDRESSU」を参照すること。 |
AddressV[16] | dword | D3DTEXF_ プレフィックスが付かない、D3DTEXTUREFILTERTYPE と同じ値。「D3DSAMP_ADDRESSV」を参照すること。 |
AddressW[16] | dword | D3DTEXF_ プレフィックスが付かない、D3DTEXTUREFILTERTYPE と同じ値。「D3DSAMP_ADDRESSW」を参照すること。 |
BorderColor[16] | float4 | D3DCOLORVALUE。D3DTEXF_ プレフィックスが付かない、D3DTEXTUREFILTERTYPE と同じ値。「D3DSAMP_BORDERCOLOR」を参照すること。 |
MagFilter[16] | dword | D3DTEXF_ プレフィックスが付かない、D3DTEXTUREFILTERTYPE と同じ値。「D3DSAMP_MAGFILTER」を参照すること。 |
MaxAnisotropy[16] | dword | D3DSAMP_ プレフィックスが付かない、D3DSAMP_MAXANISOTROPY と同じ値。 |
MaxMipLevel[16] | int | D3DSAMP_ プレフィックスが付かない、D3DSAMP_MAXMIPLEVEL と同じ値。 |
MinFilter[16] | dword | D3DSAMP_ プレフィックスが付かない、D3DSAMP_MINFILTER と同じ値。 |
MipFilter[16] | dword | D3DSAMP_ プレフィックスが付かない、D3DSAMP_MIPFILTER と同じ値。 |
MipMapLodBias[16] | float | D3DSAMP_ プレフィックスが付かない、D3DSAMP_MIPMAPLODBIAS と同じ値。 |
SRGBTexture | float | D3DSAMP_ プレフィックスが付かない、D3DSAMP_SRGBTEXTURE と同じ値。 |
シェーダ ステート
シェーダ ステートには次のものがある。
ピクセル シェーダ ステート
ステート | 型 | 値 |
---|---|---|
PixelShader | pixelshader | NULL、アセンブリ ブロック、コンパイル ターゲット、またはピクセル シェーダ パラメータ。 |
頂点シェーダ ステート
ステート | 型 | 値 |
---|---|---|
VertexShader | vertexshader | NULL、アセンブリ ブロック、コンパイル ターゲット、またはピクセル シェーダ パラメータ。 |
シェーダ定数ステート
シェーダ定数ステートには次のものがある。
ピクセル シェーダ定数ステート
ステート | 型 | 値 |
---|---|---|
PixelShaderConstant | float[m[n]] | float の m × n 配列。m および n はオプション。 |
PixelShaderConstant1 | float4 | 1 つの 4D float。 |
PixelShaderConstant2 | float4x2 | 2 つの 4D float。 |
PixelShaderConstant3 | float4x3 | 3 つの 4D float。 |
PixelShaderConstant4 | float4x4 | 4 つの 4D float。 |
PixelShaderConstantB | bool[m[n]] | bool の m × n 配列。m および n はオプション。 |
PixelShaderConstantI | int[m[n]] | int の m × n 配列。m および n はオプション。 |
PixelShaderConstantF | float[m[n]] | float の m × n 配列。m および n はオプション。 |
頂点シェーダ定数ステート
ステート | 型 | 値 |
---|---|---|
VertexShaderConstant | float[m[n]] | float の m × n 配列。m および n はオプション。 |
VertexShaderConstant1 | float4 | 1 つの 4D float。 |
VertexShaderConstant2 | float4x2 | 2 つの 4D float。 |
VertexShaderConstant3 | float4x3 | 3 つの 4D float。 |
VertexShaderConstant4 | float4x4 | 4 つの 4D float。 |
VertexShaderConstantB | bool[m[n]] | bool の m × n 配列。m および n はオプション。 |
VertexShaderConstantI | int[m[n]] | int の m × n 配列。m および n はオプション。 |
VertexShaderConstantF | float[m[n]] | float の m × n 配列。m および n はオプション。 |
テクスチャ ステート
テクスチャ ステート | 型 | 値 |
---|---|---|
Texture[8] | texture | NULL、またはテクスチャ パラメータ。 |
テクスチャ ステージ ステート
型 | テクスチャ ステージ ステート | 値 |
---|---|---|
AlphaOp[8] | dword | D3DTOP_ プレフィックスが付かない、D3DTEXTUREOP と同じ値。「D3DTSS_ALPHAOP」を参照すること。 |
AlphaArg0[8] | dword | D3DTA_ プレフィックスが付かない、D3DTA と同じ値。「D3DTSS_ALPHAARG0」を参照すること。 |
AlphaArg1[8] | dword | D3DTA_ プレフィックスが付かない、D3DTA と同じ値。「D3DTSS_ALPHAARG1」を参照すること。 |
AlphaArg2[8] | dword | D3DTA_ プレフィックスが付かない、D3DTA と同じ値。「D3DTSS_ALPHAARG2」を参照すること。 |
ColorArg0[8] | dword | D3DTA_ プレフィックスが付かない、D3DTA と同じ値。「D3DTSS_COLORARG0」を参照すること。 |
ColorArg1[8] | dword | D3DTA_ プレフィックスが付かない、D3DTA と同じ値。「D3DTSS_COLORARG1」を参照すること。 |
ColorArg2[8] | dword | D3DTA_ プレフィックスが付かない、D3DTA と同じ値。「D3DTSS_COLORARG2」を参照すること。 |
ColorOp[8] | dword | D3DTOP_ プレフィックスが付かない、D3DTEXTUREOP と同じ値。「D3DTSS_COLOROP」を参照すること。 |
BumpEnvLScale[8] | float | D3DTSS_TCI プレフィックスが付かない、D3DTSS_BUMPENVLSCALE と同じ値。 |
BumpEnvLOffset[8] | float | D3DTSS_TCI プレフィックスが付かない、D3DTSS_BUMPENVLOFFSET と同じ値。 |
BumpEnvMat00[8] | float | D3DTSS_BUMPENVMAT00 と同じ値。 |
BumpEnvMat01[8] | float | D3DTSS_BUMPENVMAT01 と同じ値。 |
BumpEnvMat10[8] | float | D3DTSS_BUMPENVMAT10 と同じ値。 |
BumpEnvMat11[8] | float | D3DTSS_BUMPENVMAT11 と同じ値。 |
ResultArg[8] | dword | D3DTA_ プレフィックスが付かない、D3DTA と同じ値。「D3DTSS_RESULTARG」を参照すること。 |
TexCoordIndex[8] | dword | D3DTSS_TCI プレフィックスが付かない、D3DTSS_TEXCOORDINDEX と同じ値。 |
TextureTransformFlags[8] | dword | D3DTTFF_ プレフィックスが付かない、D3DTEXTURETRANSFORMFLAGS と同じ値。「D3DTSS_TEXTURETRANSFORMFLAGS」を参照すること。 |
トランスフォーム ステート
エフェクトは、効率的に処理を行うために転置行列を使う。エフェクトに対して転置行列を指定することも、行列を使う前にエフェクトによって自動的に行列を転置することもできる。
ステート | 型 | 値 |
---|---|---|
ProjectionTransform | float4x4 | float の 4 × 4 行列。D3DTS_ プレフィックスが付かない、D3DTS_PROJECTION と同じ値。 |
TextureTransform[8] | float4x4 | float の 4 × 4 行列。D3DTS_ プレフィックスが付かない、D3DTRANSFORMSTATETYPE と同じ値。 |
ViewTransform | float4x4 | float の 4 × 4 行列。D3DTS_ プレフィックスが付かない、D3DTS_VIEW と同じ値。 |
WorldTransform | float4x4 | float の 4 × 4 行列。 |