放射照明 (Direct3D 9)
放射光は単一の項で表されます。
放射光 = Cₑ
各値の説明:
パラメーター | 既定値 | 型 | 説明 |
---|---|---|---|
Cₑ | (0,0,0,0) | D3DCOLORVALUE | 放射色。 |
Cₑ の値は次のいずれかです。
- 頂点 color1(EMISSIVEMATERIALSOURCE = D3DMCS_COLOR1の場合)、頂点宣言で最初の頂点の色が指定されます。
- 頂点 color2(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 種類のライトとどのようにブレンドされるかを示しています。 球体の右側では、緑色の放射光と赤色の環境光がブレンドされています。 球体の左側では、緑色の放射光が赤色の環境光および拡散光とブレンドされ、赤色のグラデーションが生成されています。 鏡面ハイライトの中央は白色ですが、環境光、拡散光、放射光の値のブレンドによって黄色が作成されている状態のまま、反射光の値が急激に低下するため、黄色の輪が作成されています。
関連トピック