次の方法で共有


StateBlock を使用して頂点の状態を保存する (Direct3D 9)

状態ブロックを使用すると、頂点の状態のみをキャプチャできます ( 「State Blocks Save and Restore State (Direct3D 9)」を参照)。 次の状態は頂点の状態です。

状態ブロックを使用して頂点の状態をキャプチャするには、 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は、固定関数の頂点処理状態です。 プログラム可能な頂点シェーダーを使用する場合、この状態は無視されます。

状態ブロックの保存と復元の状態