Microsoft DirectX 8.0 (Visual Basic)

頂点単位のカラー ステート

以下の頂点では、色情報と法線情報を同時に持つことはできない。

デフォルトのシェーディング モードはグーロー シェーディングで、このモードは頂点の色情報と法線情報の両方に依存するため、Microsoft® Direct3D® では定義済みの頂点の種類ではライティング計算に頂点カラーを使用しない。

しかし、柔軟な頂点フォーマット (FVF) を使用すると、頂点は色情報と法線情報の両方を持てる。デフォルトでは、この情報を使用してライティング計算が実行される。アプリケーションで頂点カラー ライティング情報の使用を無効にするには、Direct3DDevice8.SetRenderState を呼び出し、第 1 パラメータとして D3DRS_COLORVERTEX を渡す。第 2 パラメータを FALSE に設定すると頂点カラー ライティングが無効になり、TRUE に設定すると有効になる。

頂点単位のカラーが有効なっている場合、アプリケーションでは、頂点の色情報の情報ソースを設定できる。D3DRS_AMBIENTMATERIALSOURCED3DRS_DIFFUSEMATERIALSOURCED3DRS_EMISSIVEMATERIALSOURCE、および D3DRS_SPECULARMATERIALSOURCE レンダリング ステートは、それぞれ、アンビエント、ディフューズ、エミッション、および スペキュラ色の色成分ソースを制御する。これらの各レンダリング ステートは、CONST_D3DMATERIALCOLORSOURCE 列挙型のメンバに設定できる。これらの列挙型は、現在のマテリアル、ディフューズ色、またはスペキュラ色を、指定された色成分のソースとして使用するようシステムに知らせる定数を定義する。