ステート ブロックでの頂点ステートの保存 (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 は、固定機能頂点処理ステートです。プログラム可能な頂点シェーダーが使用されている場合、このステートは無視されます。