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