Share via


ステート ブロックでの頂点ステートの保存 (Direct3D 9)

ステート ブロックは、頂点ステートのみをキャプチャーするために使用できます (「ステート ブロックによるステートの保存と復元 (Direct3D 9)」を参照してください)。次のステートは、頂点ステートです。

  • 頂点レンダリング ステート (「頂点パイプライン : レンダリング ステート」を参照してください)
  • 頂点サンプラー ステート (「頂点パイプライン : サンプラ ステート」を参照してください)
  • 頂点テクスチャー ステート (「頂点パイプライン : テクスチャー ステート」を参照してください)
  • IDirect3DDevice9::SetNPatchMode の N パッチ モード セグメント
  • IDirect3DDevice9::SetLight の各ライト、およびライトが IDirect3DDevice9::LightEnable で有効になっているかどうか
  • 現在の頂点シェーダーおよび各頂点シェーダー定数
  • 各頂点ストリームに対する、IDirect3DDevice9::SetStreamSourceFreq からの分割値の格納
  • 現在の頂点宣言

ステート ブロックと共に頂点ステートをキャプチャーするには、IDirect3DDevice9::CreateStateBlock を呼び出すときに D3DSBT_VERTEXSTATE を指定します。

頂点パイプライン : レンダリング ステート

デバイスのレンダリング ステートは、パイプラインのほとんどすべての部品の動作に影響します。レンダリング ステートは、IDirect3DDevice9::SetRenderState を呼び出すことで設定されます。

次の表には、頂点ステートを設定するすべてのレンダリング ステートが含まれています。

レンダリング ステート デフォルト値
D3DRS_CULLMODE D3DCULL_CCW
D3DRS_FOGCOLOR 0
D3DRS_FOGTABLEMODE D3DFOG_NONE
D3DRS_FOGSTART 0
D3DRS_FOGEND 1
D3DRS_FOGDENSITY 1
D3DRS_RANGEFOGENABLE FALSE
D3DRS_AMBIENT 0
D3DRS_COLORVERTEX TRUE
D3DRS_FOGVERTEXMODE D3DFOG_NONE
D3DRS_CLIPPING TRUE
D3DRS_LIGHTING TRUE
D3DRS_LOCALVIEWER TRUE
D3DRS_EMISSIVEMATERIALSOURCE D3DMCS_MATERIAL
D3DRS_AMBIENTMATERIALSOURCE D3DMCS_MATERIAL
D3DRS_DIFFUSEMATERIALSOURCE D3DMCS_COLOR1
D3DRS_SPECULARMATERIALSOURCE D3DMCS_COLOR2
D3DRS_VERTEXBLEND D3DVBF_DISABLE
D3DRS_CLIPPLANEENABLE 0
D3DRS_POINTSIZE ドライバーによって異なる
D3DRS_POINTSIZE_MIN 1
D3DRS_POINTSPRITEENABLE FALSE
D3DRS_POINTSCALEENABLE FALSE
D3DRS_POINTSCALE_A 1
D3DRS_POINTSCALE_B 0
D3DRS_POINTSCALE_C 0
D3DRS_MULTISAMPLEANTIALIAS TRUE
D3DRS_MULTISAMPLEMASK 0xffffffff
D3DRS_PATCHEDGESTYLE D3DPATCHEDGE_DISCRETE
D3DRS_POINTSIZE_MAX 1
D3DRS_INDEXEDVERTEXBLENDENABLE FALSE
D3DRS_TWEENFACTOR 0
D3DRS_POSITIONDEGREE D3DDEGREE_CUBIC
D3DRS_NORMALDEGREE D3DDEGREE_LINEAR
D3DRS_MINTESSELLATIONLEVEL 1
D3DRS_MAXTESSELLATIONLEVEL 1
D3DRS_ADAPTIVETESS_X 0
D3DRS_ADAPTIVETESS_Y 0
D3DRS_ADAPTIVETESS_Z 1
D3DRS_ADAPTIVETESS_W 0
D3DRS_ENABLEADAPTIVETESSELLATION"/> FALSE

頂点パイプライン : サンプラ ステート

サンプラ ステートは、フィルタリング、タイリング、テクスチャー座標アドレッシング モードなどのサンプリング関連トピックを制御します。サンプラー ステート (ディスプレースメント マップのサンプリングのためにテッセレータ ユニットで使用されるものを含む) を設定するには、IDirect3DDevice9::SetSamplerState を使用します。サンプラー ステートは、DirectX 8 からの移植時に、コンパイル エラーの検出を有効にするために "D3DSAMP_" プレフィクスを付けた名前に変更されています。

次の表には、頂点ステートを設定するすべてのサンプラー ステートが含まれています。

サンプラ ステート デフォルト値
D3DSAMP_DMAPOFFSET 256

頂点パイプライン : テクスチャー ステート

テクスチャー ステートは、マルチテクスチャー ブレンダーのテクスチャー ブレンディング処理を制御します。テクスチャー ステートを設定するには、IDirect3DDevice9::SetTextureStageState を使用します。テクスチャーをサンプラー ステージと関連付けるには、IDirect3DDevice9::SetTexture を使用します。

次の表には、頂点ステートを設定するすべてのテクスチャー ステートが含まれています。

テクスチャー ステート デフォルト値
D3DTSS_TEXCOORDINDEX 0
D3DTSS_TEXTURETRANSFORMFLAGS D3DTTFF_DISABLE

D3DTSS_TEXCOORDINDEX は、固定機能頂点処理ステートです。プログラム可能な頂点シェーダーが使用されている場合、このステートは無視されます。