エミッション ライト

エミッション ライト

エミッション ライティングは 1 つの項だけで記述される。

Emissive Lighting = Ce

ここで

パラメータ デフォルト値 説明
Ce (0,0,0,0) D3DCOLORVALUE エミッション色。

Ce の値は次のいずれかである。

  • 頂点色 1 (EMISSIVEMATERIALSOURCE = D3DMCS_COLOR1 で、頂点の宣言で最初の頂点色を指定した場合)
  • 頂点色 2 (EMISSIVEMATERIALSOURCE = D3DMCS_COLOR2 で、頂点の宣言で 2 番目の頂点色を指定した場合)
  • マテリアルのエミッション色

  いずれかの EMISSIVEMATERIALSOURCE オプションが使われていて、頂点色が指定されていない場合は、マテリアルのエミッション色を使う。

この例では、シーンのアンビエント ライトおよびマテリアルのアンビエント ライトを使ってオブジェクトに色を付けている。コードを次に示す。

// create material
D3DMATERIAL9 mtrl;
ZeroMemory( &mtrl, sizeof(mtrl) );
mtrl.Emissive.r = 0.0f;
mtrl.Emissive.g = 0.75f;
mtrl.Emissive.b = 0.0f;
mtrl.Emissive.a = 0.0f;
m_pd3dDevice->SetMaterial( &mtrl );
m_pd3dDevice->SetRenderState(D3DRS_EMISSIVEMATERIALSOURCE, D3DMCS_MATERIAL);

方程式に従うと、オブジェクトの頂点の色はマテリアル色になる。

次の画像は、緑のマテリアル色を示している。エミッション ライトは、オブジェクトのすべての頂点を同じ色で照らす。この色は、頂点の法線やライトの方向に依存しない。結果的に、球体は 2D の円のように見える。 これは、オブジェクトのサーフェイスにシェーディングの違いが生じないためである。

緑の球

この画像は、エミッション ライトが前の例で示した他の 3 種類のライトとどのようにブレンドするかを示している。球体の右側では、緑のエミッション ライトと赤のアンビエント ライトをブレンドしている。球体の左側では、緑のエミッション ライトが赤のアンビエント ライトおよびディフューズ ライトとブレンドして、赤い色が少しずつ変化している。スペキュラ ハイライトは中央では白く、スペキュラ ライト値が急激に減少する場所には黄色い輪ができている。この黄色は、アンビエント、ディフューズ、エミッションのライトの値をブレンドした色である。

エミッション ライトを設定した緑の球