頂点単位のカラー ステート (Direct3D 9)
Direct3D のライティング エンジンでは、ランタイムにデータが存在することを指示すれば、ライティング実行時に頂点単位のカラー データを使用できます。これには、次のレンダリング ステートを有効にします。
// disable per-vertex color
SetRenderState(D3DRS_COLORVERTEX, FALSE);
// enable per-vertex color
SetRenderState(D3DRS_COLORVERTEX, TRUE);
頂点単位のカラーが有効になっている場合、頂点のカラー情報の取得元をアプリケーションで構成できます。D3DRS_AMBIENTMATERIALSOURCE、D3DRS_DIFFUSEMATERIALSOURCE、D3DRS_EMISSIVEMATERIALSOURCE および D3DRS_SPECULARMATERIALSOURCE レンダリング ステートは、それぞれ、アンビエント、ディフューズ、エミッションおよびスペキュラーの各カラー成分のソースを制御します。各ステートは、D3DMATERIALCOLORSOURCE 列挙型のメンバーに設定することができます。この列挙型は、現在のマテリアル、ディフューズ カラーまたはスペキュラー カラーを指定されたカラー成分のソースとして使用するように指示する定数を定義します。