Platform SDK: DirectX

ライティング済みの頂点の使用

[C++]

D3DLVERTEX 構造体に類似する、ライティング済みの頂点を使用するアプリケーションでは、D3DRENDERSTATE_LIGHTING レンダリング ステートを FALSE に設定して Direct3D ライティング エンジンを無効にする必要がある。デフォルトでは、ライティングが有効になっている場合、入力頂点にゼロ以外のカラー値が含まれていても、法線ベクトルを含んでいない頂点の色は 0 (黒) に設定される。D3DLVERTEX などライトを当てた頂点は、本来、頂点法線を含んでいないため、ライティング エンジンが有効になっていると Direct3D に渡される色情報がレンダリング時に失われる。

独自のライティングを実行するアプリケーションにとっては、頂点色が重要な要素であることは明らかである。デフォルト値の使用を避けるために、D3DRENDERSTATE_LIGHTING を FALSE に設定すること。

[Visual Basic]

D3DLVERTEX 型に類似する、ライティング済みの頂点を使用するアプリケーションでは、D3DRENDERSTATE_LIGHTING レンダリング ステートを FALSE に設定して Direct3D ライティング エンジンを無効にする必要がある。デフォルトでは、ライティングが有効になっている場合、入力頂点にゼロ以外のカラー値が含まれていても、法線ベクトルを含んでいない頂点の色は 0 (黒) に設定される。D3DLVERTEX などライトを当てた頂点は、本来、頂点法線を含んでいないため、ライティング エンジンが有効になっていると Direct3D に渡される色情報がレンダリング時に失われる。

独自のライティングを実行するアプリケーションにとっては、頂点色が重要な要素であることは明らかである。デフォルト値の使用を避けるために、D3DRENDERSTATE_LIGHTING を False に設定すること。