次の方法で共有


ステート

ステート

エフェクト ステートは、頂点処理やピクセル処理の準備作業としてパイプライン ステートの初期化に使われる。

effect state [ [index] ] = expression

ここで

  • effect states - 従来の固定機能パイプライン ステートに似ている。次に、全ステートの一覧を示す。
  • [ [index] ] - オプションの整数インデックス。このインデックスは、エフェクト ステート配列内の特定のステートを識別する。外側のかっこは、インデックスがオプションであることを示す。インデックスを使う場合は、内側のかっこを必ず使わなければならない。
  • expression - ステートの割り当て式。「」を参照すること。

エフェクト ステートは次のカテゴリに分類される。

  • ライティング ステート

  • マテリアル ステート

  • レンダリング ステート

    • ピクセル パイプライン レンダリング ステート
    • 頂点パイプライン レンダリング ステート
  • サンプラ ステート

  • サンプラ ステージ ステート

  • シェーダ ステート

  • シェーダ定数ステート

    • ピクセル シェーダ定数ステート
    • 頂点シェーダ定数ステート
  • テクスチャ ステート

  • テクスチャ ステージ ステート

  • トランスフォーム ステート

ライティング ステート

エフェクトを適用するときのパフォーマンスを最大限に高めるには、エフェクト ファイルで、ライトまたはマテリアルのすべての成分を指定する。Microsoft® Direct3D® は個別にライティング ステートを設定できないため、宣言に失敗したステートにはデフォルト値が設定される。

ライティング ステート
LightAmbient[n] float4 D3DLIGHT9Ambient メンバを参照すること。
LightAttenuation0[n] float D3DLIGHT9Attenuation0 メンバを参照すること。
LightAttenuation1[n] float D3DLIGHT9Attenuation1 メンバを参照すること。
LightAttenuation2[n] float D3DLIGHT9Attenuation2 メンバを参照すること。
LightDiffuse[n] float4 D3DLIGHT9Diffuse メンバを参照すること。
LightDirection[n] float3 D3DLIGHT9Direction メンバを参照すること。
LightEnable[n] bool True または False。IDirect3DDevice9::LightEnablebEnable 引数を参照すること。
LightFalloff[n] float D3DCOLORVALUED3DLIGHT9Falloff メンバを参照すること。
LightPhi[n] float D3DLIGHT9Phi メンバを参照すること。
LightPosition[n] float3 D3DLIGHT9Position メンバを参照すること。
LightRange[n] float D3DLIGHT9Range メンバを参照すること。
LightSpecular[n] float4 D3DLIGHT9Specular メンバを参照すること。
LightTheta[n] float D3DLIGHT9Theta メンバを参照すること。
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 行列。