次の方法で共有


効果の状態 (Direct3D 9)

効果の状態は、頂点とピクセルの処理の準備でパイプラインの状態を初期化するために使用されます。

effect state [ [index] ] = expression;

どこ:

  • effect state - 従来の固定関数パイプラインの状態に似ています。 状態の完全な一覧を以下に示します。
  • [ [index] ] - 省略可能な整数インデックス。 インデックスは、効果の状態の配列内の特定の状態を識別します。 外側の角かっこは、インデックスが省略可能であることを示します。 インデックスを使用する場合は、必ず内部角かっこを使用してください。
  • expression - 状態代入式。 式 (Direct3D 9)を参照してください。

各状態にはネイティブ データ型があります。 これは、エフェクトによって値が割り当てられるときに、状態が値を受け入れると想定されるデータ型です。 各状態で想定されるデータ型を次に示します。

エフェクト インターフェイスは、可能な限り早く適切な型に値をキャストしようとします。 リテラル値はコンパイル時にキャストできます。 適切な Set メソッドが呼び出されたときに、非リテラル (つまり通常の変数) をキャストする必要があります。 たとえば、エフェクト インターフェイスは、SetBoolSetValue、および必要に応じて他の同様の関数を使用して設定された値をキャストします。 パフォーマンスを向上させるには、エフェクト インターフェイスに渡される値が既に正しい型であり、キャストする必要がないことを確認します。 ランタイムが値をキャストできない場合は、エラーが返されます。

効果の状態は、次のカテゴリに分類できます。

明るい状態

エフェクトの適用に最適なパフォーマンスを実現するには、ライトまたはマテリアルのすべてのコンポーネントをエフェクト ファイルで指定する必要があります。 宣言に失敗した状態は、Direct3D でライトの状態を個別に設定する方法がないため、既定値に設定されます。

ライトステート 種類 価値観
LightAmbient[n] float4 D3DLIGHT9のアンビエント メンバーを参照してください。
LightAttenuation0[n] 浮く D3DLIGHT9の Attenuation0 メンバーを参照してください。
LightAttenuation1[n] 浮く D3DLIGHT9の Attenuation1 メンバーを参照してください。
LightAttenuation2[n] 浮く D3DLIGHT9の Attenuation2 メンバーを参照してください。
LightDiffuse[n] float4 D3DLIGHT9の拡散メンバーを参照してください。
LightDirection[n] float3 D3DLIGHT9の Direction メンバーを参照してください。
LightEnable[n] bool TRUE または FALSE します。 lightEnableの bEnable 引数参照してください。
LightFalloff[n] 浮く D3DCOLORVALUE. D3DLIGHT9の Falloff メンバーを参照してください。
LightPhi[n] 浮く D3DLIGHT9の Phi メンバーを参照してください。
LightPosition[n] float3 D3DLIGHT9の Position メンバーを参照してください。
LightRange[n] 浮く D3DLIGHT9の Range メンバーを参照してください。
LightSpecular[n] float4 D3DLIGHT9の反射メンバーを参照してください。
LightTheta[n] 浮く D3DLIGHT9の Theta メンバーを参照してください。
LightType[n] dword D3DLIGHT_ プレフィックスのない最大 n 個の D3DLIGHTTYPE 値の配列と同じ値。

 

例:

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>;

これにより、照明を有効にし、ポイント照明をタイプに設定し、光の位置を float3<10.0f、1.0f、23.0f>に設定し、アンビエントカラーを float4<0.7f、0.0f、0.0f、1.0f>に設定します。

マテリアルの状態

宣言に失敗した状態は、Direct3D で素材の状態を個別に設定する方法がないため、何らかの既定値に設定されます。

マテリアルの状態 種類 価値観
MaterialAmbient float4 アンビエントと同じ値
MaterialDiffuse float4 拡散と同じ値
MaterialEmissive float4 Emissive と同じ値
MaterialPower 浮く Power と同じ値
MaterialSpecular float4 反射と同じ値

 

例:

MaterialDiffuse = float4<0.7f, 0.0f, 0.0f, 1.0f>;
MaterialPower = 3.0f;

これにより、拡散色が float4<0.7f、0.0f、0.0f、1.0f> に設定され、マテリアルのパワーが 3.0f になります。

レンダリングの状態

レンダリング状態には、次の 2 種類があります。

  • ピクセル パイプのレンダリング状態
  • 頂点パイプのレンダリング状態 する

ピクセル パイプのレンダリング状態

エフェクト ファイルのレンダリング状態には、固定関数パイプラインの状態に似た名前があります。多くの場合、プレフィックスは削除されます。

レンダリング状態 種類 価値観
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 赤、緑、青、アルファのビットごとの組み合わせ。 D3DRS_COLORWRITEENABLEを参照してください。
DepthBias 浮く 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 と同じ値。
SlopeScaleDepthBias 浮く D3DRS_SLOPESCALEDEPTHBIASと同じ値。
SrcBlend dword D3DBLEND_ プレフィックスのない D3DBLEND と同じ値。
SRGBWriteEnable bool True または False。 D3DRS_SRGBWRITEENABLEと同じ値。
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 - Wrap15 dword 値は、D3DRS_WRAP0で使用される値と同じです。 有効な値は次のとおりです。
  • COORD0 (D3DWRAPCOORD_0に対応)
  • COORD1 (D3DWRAPCOORD_1に対応)
  • COORD2 (D3DWRAPCOORD_2に対応)
  • COORD3 (D3DWRAPCOORD_3に対応)
  • U (D3DWRAP_Uに対応)
  • V (D3DWRAP_Vに対応)
  • W (D3DWRAP_Wに対応)
ZEnable dword D3DZB_ プレフィックスのない D3DZBUFFERTYPE と同じ値。
ZFunc dword D3DCMP_ プレフィックスのない D3DCMPFUNC と同じ値。 D3DRS_ZFUNCを参照してください。
ZWriteEnable bool True または False。 D3DRS_ZWRITEENABLEを参照してください。

例:

AlphaBlendEnable = TRUE;
FillMode = WIREFRAME;

これにより、アルファ ブレンドが有効になり、すべてのジオメトリがワイヤフレームでレンダリングされます。

頂点パイプのレンダリング状態

エフェクト ファイルのレンダリング状態には、固定関数パイプラインの状態に似た名前があります。多くの場合、プレフィックスは削除されます。

レンダリング状態 種類 価値観
アンビエント float4 D3DRS_AMBIENTと同じ値。
AmbientMaterialSource dword D3DMCS_ プレフィックスのない D3DMATERIALCOLORSOURCE と同じ値。 D3DRS_AMBIENTMATERIALSOURCEを参照してください。
クリッピング 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 浮く D3DRS_FOGDENSITYと同じ値。
FogEnable bool True または False。 D3DRS_FOGENABLEと同じ値。
FogEnd 浮く D3DRS_FOGENDと同じ値。
FogStart 浮く D3DRS_FOGSTARTと同じ値。
FogTableMode dword D3DFOGMODEと同じ値です。 D3DRENDERSTATETYPEのD3DRS_FOGTABLEMODEを参照してください。
FogVertexMode dword D3DFOG_ プレフィックスのない D3DFOGMODE と同じ値。
IndexedVertexBlendEnable bool True または False。 D3DRS_INDEXEDVERTEXBLENDENABLEと同じ値。
照明 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 浮く SetNPatchModeの nSegments と同じ値です。
PointScale_A 浮く D3DRS_POINTSCALE_Aと同じ値。
PointScale_B 浮く D3DRS_POINTSCALE_Bと同じ値。
PointScale_C 浮く D3DRS_POINTSCALE_Cと同じ値。
PointScaleEnable bool D3DRS_POINTSCALEENABLEと同じ値。
PointSize 浮く D3DRS_POINTSIZEと同じ値。
PointSize_Min 浮く D3DRS_POINTSIZE_MINと同じ値。
PointSize_Max 浮く D3DRS_ プレフィックスのないD3DRS_POINTSIZE_MAXと同じ値。
PointSpriteEnable bool True または False。 D3DRS_POINTSPRITEENABLEと同じ値。
RangeFogEnable bool True または False。 D3DRS_RANGEFOGENABLEと同じ値。
反射可能 bool True または False。 D3DRS_SPECULARENABLEと同じ値。
SpecularMaterialSource dword D3DMCS_ プレフィックスのない D3DMATERIALCOLORSOURCE と同じ値。 D3DRS_SPECULARMATERIALSOURCEを参照してください。
TweenFactor 浮く D3DRS_TWEENFACTORと同じ値。
VertexBlend dword D3DVBF_ プレフィックスのない D3DVERTEXBLENDFLAGS と同じ値。 D3DRS_VERTEXBLENDを参照してください。

 

例:

Ambient = float4<0.7f, 0.0f, 0.0f, 1.0f>;
CullMode = CCW;
FogColor = 0xff0000;

これにより、アンビエント カラー float4<0.7f、0.0f、0.0f、1.0f>になり、バックフェイス カリング モードを反時計回りに設定し、霧の色を赤に設定します。

サンプラーの状態

サンプラーの状態は、サンプラー オブジェクトを表します。

状態 種類 価値観
サンプラー サンプラー NULL 、またはサンプラー状態ブロックをします。

 

サンプラー ステージの状態

サンプラー ステージの状態は、テクスチャのサンプリングに使用されます。 サンプラーの状態によって、フィルターの種類とテクスチャのアドレス指定モードが決まります。

サンプラーの状態 種類 価値観
AddressU[16] dword D3DTADDRESS_ プレフィックスのない D3DTEXTUREADDRESS と同じ値。 「D3DSAMP_ADDRESSU」を参照してください。
AddressV[16] dword D3DTADDRESS_ プレフィックスのない D3DTEXTUREADDRESS と同じ値。 D3DSAMP_ADDRESSVを参照してください。
AddressW[16] dword D3DTADDRESS_ プレフィックスのない D3DTEXTUREADDRESS と同じ値。 D3DSAMP_ADDRESSWを参照してください。
BorderColor[16] D3DCOLOR 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] 浮く D3DSAMP_ プレフィックスのないD3DSAMP_MIPMAPLODBIASと同じ値。
SRGBTexture bool D3DSAMP_ プレフィックスのないD3DSAMP_SRGBTEXTUREと同じ値。

 

例:

AddressU[0] = CLAMP;
AddressV[0] = CLAMP;
AddressW[0] = CLAMP;

これにより、UVW 値が 0 から 1 の間にクランプされます。

シェーダーの状態

エフェクト シェーダーの状態は 2 つだけです。1 つは頂点シェーダー オブジェクトに関連付け、もう 1 つはピクセル シェーダー オブジェクトに関連付けられています。

シェーダーの状態 種類 価値観
PixelShader pixelshader null 、アセンブリ ブロック、コンパイル ターゲット、またはピクセル シェーダー パラメーターをします。
VertexShader vertexshader null 、アセンブリ ブロック、コンパイル ターゲット、またはピクセル シェーダー パラメーターをします。

 

例:

VertexShader = compile vs_1_1 VSTexture();
PixelShader  = NULL;

これにより、.fx ファイルで以前に定義された頂点シェーダーである VSTexture が頂点シェーダー バージョン 1.1 にコンパイルされ、そのコンパイルされたシェーダーが頂点シェーダーとして設定されます。 ピクセル シェーダーは、NULLに割り当てられます。

シェーダー定数の状態

シェーダー定数の状態は、シェーダー定数パラメーターにアクセスするために使用されます。

シェーダー定数の状態 種類 価値観
PixelShaderConstant float[m[n]] 浮動小数点の m x n 配列。m と n は省略可能です。
PixelShaderConstant1 float4 1 つの 4D 浮動小数点。
PixelShaderConstant2 float4x2 2 つの 4D 浮動小数点。
PixelShaderConstant3 float4x3 3 つの 4D 浮動小数点。
PixelShaderConstant4 float4x4 4 つの 4D 浮動小数点。
PixelShaderConstantB bool[m[n]] ブール値の m x n 配列。m と n は省略可能です。
PixelShaderConstantI int[m[n]] m x n ints の配列。 m と n は省略可能です。
PixelShaderConstantF float[m[n]] 浮動小数点の m x n 配列。 m と n は省略可能です。
VertexShaderConstant float[m[n]] 浮動小数点の m x n 配列。 m と n は省略可能です。
VertexShaderConstant1 float4 1 つの 4D 浮動小数点。
VertexShaderConstant2 float4x2 2 つの 4D 浮動小数点。
VertexShaderConstant3 float4x3 3 つの 4D 浮動小数点。
VertexShaderConstant4 float4x4 4 つの 4D 浮動小数点。
VertexShaderConstantB bool[m[n]] ブール値の m x n 配列。 m と n は省略可能です。
VertexShaderConstantI int[m[n]] m x n ints の配列。 m と n は省略可能です。
VertexShaderConstantF float[m[n]] 浮動小数点の m x n 配列。 m と n は省略可能です。

 

テクスチャの状態

テクスチャの状態は、マルチテクスチャ ブレンダーによって使用されるテクスチャを初期化します。

テクスチャの状態 種類 価値観
テクスチャ[8] テクスチャー 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] 浮く D3DTSS_TCI プレフィックスのないD3DTSS_BUMPENVLSCALEと同じ値。
BumpEnvLOffset[8] 浮く D3DTSS_TCI プレフィックスのないD3DTSS_BUMPENVLOFFSETと同じ値。
BumpEnvMat00[8] 浮く D3DTSS_BUMPENVMAT00と同じ値。
BumpEnvMat01[8] 浮く D3DTSS_BUMPENVMAT01と同じ値。
BumpEnvMat10[8] 浮く D3DTSS_BUMPENVMAT10と同じ値。
BumpEnvMat11[8] 浮く 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 浮動小数点の 4 x 4 行列。 D3DTS_ プレフィックスのないD3DTS_PROJECTIONと同じ値。
TextureTransform[8] float4x4 浮動小数点の 4 x 4 行列。 D3DTS_ プレフィックスのない D3DTRANSFORMSTATETYPE と同じ値。
ViewTransform float4x4 浮動小数点の 4 x 4 行列。 D3DTS_ プレフィックスのないD3DTS_VIEWと同じ値。
WorldTransform float4x4 浮動小数点の 4 x 4 行列。

 

効果の形式の