Microsoft DirectX 8.0 (C++)

有効なステートの一覧

次のトピックでは、エフェクト ファイルを作成する際に使用できる有効なすべてのステートについて説明する。

DWORD のステートを設定するときは、列挙値を使用できる。たとえば、通常 SrcBlend は D3DBLEND_xxx 列挙型を使用して設定される。したがって、これらの列挙型を使用して指定することができる。次のコードに示すように、D3DBLEND_ prefix を取り除くのみである。

SrcBlend = One;

これらの値は、"OR" 式でまとめて指定することもできる。

TextureTransformFlags[0] = Count3 | Projected;

次の表は、エフェクト ファイルで使用する有効なレンダリング ステートを示している。

レンダリング ステート 有効な値
DWORD ZEnable D3DZB
DWORD FillMode D3DFILL
DWORD ShadeMode D3DSHADE
DWORD LinePattern  
DWORD ZWriteEnable TRUE/FALSE
DWORD AlphaTestEnable TRUE/FALSE
DWORD LastPixel TRUE/FALSE
DWORD SrcBlend D3DBLEND
DWORD DestBlend D3DBLEND
DWORD CullMode D3DCULL
DWORD ZFunc D3DCMP
DWORD AlphaRef  
DWORD AlphaFunc D3DCMP
DWORD DitherEnable TRUE/FALSE
DWORD AlphaBlendEnable TRUE/FALSE
DWORD FogEnable TRUE/FALSE
DWORD SpecularEnable TRUE/FALSE
DWORD ZVisible TRUE/FALSE
DWORD FogColor  
DWORD FogTableMode D3DFOG
FLOAT FogStart  
FLOAT FogEnd
FLOAT FogDensity
DWORD EdgeAntialias TRUE/FALSE
DWORD Zbias  
DWORD RangeFogEnable
DWORD StencilEnable TRUE/FALSE
DWORD StencilFail D3DSTENCILOP
DWORD StencilZFail D3DSTENCILOP
DWORD StencilPass D3DSTENCILOP
DWORD StencilFunc D3DCMP
DWORD StencilRef  
DWORD StencilMask
DWORD StencilWriteMask
DWORD TextureFactor
DWORD Wrap0 D3DWRAP
DWORD Wrap1 D3DWRAP
DWORD Wrap2 D3DWRAP
DWORD Wrap3 D3DWRAP
DWORD Wrap4 D3DWRAP
DWORD Wrap5 D3DWRAP
DWORD Wrap6 D3DWRAP
DWORD Wrap7 D3DWRAP
DWORD Clipping TRUE/FALSE
DWORD Lighting TRUE/FALSE
DWORD Ambient  
DWORD FogVertexMode
DWORD ColorVertex TRUE/FALSE
DWORD LocalViewer TRUE/FALSE
DWORD NormalizeNormals TRUE/FALSE
DWORD DiffuseMaterialSource D3DMCS
DWORD SpecularMaterialSource D3DMCS
DWORD AmbientMaterialSource D3DMCS
DWORD EmissiveMaterialSource D3DMCS
DWORD VertexBlend D3DVBF
DWORD ClipPlaneEnable TRUE/FALSE
DWORD SoftwareVertexProcessing TRUE/FALSE
FLOAT PointSize  
FLOAT PointSize_Min
FLOAT PointSize_Max
DWORD PointSpriteEnable TRUE/FALSE
DWORD PointScaleEnable TRUE/FALSE
FLOAT PointScale_A  
FLOAT PointScale_B
FLOAT PointScale_C
DWORD MultiSampleAntialias TRUE/FALSE
DWORD MultiSampleMask  
DWORD PatchSegments
DWORD IndexedVertexBlendEnable TRUE/FALSE
DWORD ColorWriteEnable TRUE/FALSE
FLOAT TweenFactor  
DWORD BlendOp D3DBLENDOP

次の表は、エフェクト ファイルで使用する有効なテクスチャ ステージ ステートを示している。

テクスチャ ステージ ステート 有効な値
DWORD ColorOp[8] D3DTOP
DWORD ColorArg0[8] D3DTA
DWORD ColorArg1[8] D3DTA
DWORD ColorArg2[8] D3DTA
DWORD AlphaOp[8] D3DTOP
DWORD AlphaArg0[8] D3DTA
DWORD AlphaArg1[8] D3DTA
DWORD AlphaArg2[8] D3DTA
DWORD ResultArg[8] D3DTA
DWORD BumpEnvMat00[8]  
DWORD BumpEnvMat01[8]
DWORD BumpEnvMat10[8]
DWORD BumpEnvMat11[8]
DWORD TexCoordIndex[8] D3DTSS_TCI
DWORD AddressU[8] D3DTADDRESS
DWORD AddressV[8] D3DTADDRESS
DWORD AddressW[8] D3DTADDRESS
DWORD BorderColor[8]  
DWORD MagFilter[8] D3DTEXF
DWORD MinFilter[8] D3DTEXF
DWORD MipFilter[8] D3DTEXF
DWORD MipMapLodBias[8]  
DWORD MaxMipLevel[8]
DWORD MaxAnsiotropy[8]
FLOAT BumpEnvLScale[8]
FLOAT BumpEnvLOffset[8]
DWORD TextureTransformFlags[8] D3DTTFF

次の表に、エフェクト ファイルで使用するライティング ステートの一覧を示す。エフェクトにライティング ステートを設定する場合は、ライトを完全に記述するために必要なすべてのステートを設定しなければならない。D3DX は個別にライティング ステートを設定できないため、宣言に失敗したステートにはデフォルト値が設定される。

ライティング ステート 有効な値
DWORD LightType[n] D3DLT
VECTOR LightDiffuse[n]  
VECTOR LightSpecular[n]
VECTOR LightAmbient[n]
VECTOR LightPosition[n]
VECTOR LightDirection[n]
FLOAT LightRange[n]
FLOAT LightFalloff[n]
FLOAT LightAttenuation0[n]
FLOAT LightAttenuation1[n]
FLOAT LightAttenuation2[n]
FLOAT LightTheta[n]
FLOAT LightPhi[n]
DWORD LightEnable[n] TRUE/FALSE

次の表に、エフェクト ファイルで使用する有効なマテリアル ステートの一覧を示す。エフェクトにマテリアル ステートを設定する場合は、マテリアルを完全に記述するために必要なすべてのステートを設定しなければならない。D3DX は個別にマテリアル ステートを設定できないため、宣言に失敗したステートにはデフォルト値が設定される。

マテリアル ステート
VECTOR MaterialDiffuse
VECTOR MaterialAmbient
VECTOR MaterialSpecular
VECTOR MaterialEmissive
FLOAT MaterialPower

次の表は、エフェクト ファイルで使用するその他の有効なステートを示している。

ステート
VERTEXSHADER VertexShader
PIXELSHADER PixelShader
CONSTANT VertexShaderConstant[n]
CONSTANT PixelShaderConstant[n]
TEXTURE Texture[8]
MATRIX ProjectionTransform
MATRIX ViewTransform
MATRIX WorldTransform[256]
MATRIX TextureTransform[8]