次の方法で共有


放射照明 (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 種類のライトとどのようにブレンドされるかを示しています。 球体の右側では、緑色の放射光と赤色の環境光がブレンドされています。 球体の左側では、緑色の放射光が赤色の環境光および拡散光とブレンドされ、赤色のグラデーションが生成されています。 鏡面ハイライトの中央は白色ですが、環境光、拡散光、放射光の値のブレンドによって黄色が作成されている状態のまま、反射光の値が急激に低下するため、黄色の輪が作成されています。

放射光による緑色の球体の図

照明の計算