反射光では、光がオブジェクトの表面に当たり、カメラに向かって反射する明るい反射光を指定します。 反射光は拡散光よりも強い光で、オブジェクトの表面から短時間で消えます。 反射光の方が拡散光よりも計算に時間がかかりますが、反射光を使用すると、表面の表現力が格段に向上します。
反射反射をモデル化するには、光の進行方向と視聴者の目への方向をシステムが認識している必要があります。 このシステムでは、フォン反射モデルの簡略化されたバージョンを使用します。このモデルでは、中間ベクトルを使用して反射反射の強度を近似します。
既定の照明状態では、反射ハイライトは計算されません。
反射照明の数式
反射照明は、次の式で説明します。
反射光 = Cₛ * sum[Lₛ * (N · H)P * Atten * Spot]
変数、その型、および範囲は次のとおりです。
パラメーター | 既定値 | 型 | 説明 |
---|---|---|---|
Cs | (0,0,0,0) | 赤、緑、青、アルファ透明度 (浮動小数点値) | 反射色。 |
sum | 該当なし | 該当なし | 各ライトの反射コンポーネントの合計。 |
N | 該当なし | 3D ベクトル (x、y、z 浮動小数点値) | 頂点法線。 |
H | 該当なし | 3D ベクトル (x、y、z 浮動小数点値) | 半角ベクトル。 中間ベクトルのセクションを参照してください。 |
P | 0.0 | 浮動小数点数 | 反射力。 範囲は 0 ~ +無限大です |
Ls | (0,0,0,0) | 赤、緑、青、アルファ透明度 (浮動小数点値) | 明るい反射色。 |
Atten | 該当なし | 浮動小数点数 | ライト減衰値。 「減衰とスポットライト係数」を参照してください。 |
スポット | 該当なし | 浮動小数点数 | スポットライト係数。 「減衰とスポットライト係数」を参照してください。 |
Cs の値は次のいずれかです。
- 頂点カラー 1。反射マテリアル ソースが拡散頂点カラーの場合は、頂点宣言で最初の頂点の色が指定されます。
- 頂点カラー 2。反射マテリアル ソースが反射頂点の色の場合は、頂点宣言で 2 番目の頂点の色が指定されます。
- マテリアルの反射色
注 鏡面マテリアル ソース オプションが使用されているか、頂点の色が指定されていない場合は、マテリアルの反射色が使用されます。
反射コンポーネントは、すべてのライトが個別に処理および補間された後、0 から 255 にクランプされます。
中間ベクトル
中間ベクトル (H) は、オブジェクト頂点から光源へのベクトルと、オブジェクト頂点からカメラ位置へのベクトルの 2 つのベクトルの中間に存在します。 Direct3D には、中間ベクトルを計算する 2 つの方法があります。 カメラ相対反射ハイライトが有効になっている場合 (直交反射ハイライトではなく)、システムはカメラの位置と頂点の位置と、光の方向ベクトルを使用して中間ベクトルを計算します。 次の数式は、これを示しています。
H = norm(cp - Vp) + Ldir)
パラメーター | 既定値 | 型 | 説明 |
---|---|---|---|
Cp | 該当なし | 3D ベクトル (x、y、z 浮動小数点値) | カメラの位置。 |
Vp | 該当なし | 3D ベクトル (x、y、z 浮動小数点値) | 頂点の位置。 |
Ldir | 該当なし | 3D ベクトル (x、y、z 浮動小数点値) | 頂点位置からライト位置への方向ベクトル。 |
この方法で中間ベクトルを決定すると、計算負荷が高くなります。 別の方法として、(カメラ相対反射ハイライトではなく) 直交反射ハイライトを使用すると、ビューポイントが z 軸上で無限に離れているかのように動作するようにシステムに指示します。 これは次の式に反映されます。
H = norm((0,0,1) + Ldir)
この設定は計算負荷は低くなりますが、精度がはるかに低いので、直交投影を使用するアプリケーションで最適に使用されます。
例
この例では、シーンの反射ライトの色とマテリアルの反射色を使用してオブジェクトに色を付けます。
この式に従って、オブジェクト頂点の結果の色は、マテリアルの色と光の色の組み合わせになります。
次の 2 つの図は、グレーの反射素材の色と、白の反射光の色を示しています。
結果の反射ハイライトを次の図に示します。
反射ハイライトとアンビエント照明と拡散光を組み合わせると、次の図が生成されます。 3種類の照明をすべて適用すると、これはより明確に現実的なオブジェクトに似ています。
反射照明は、拡散光よりも計算の負荷が高くなります。 通常、表面材料に関する視覚的な手掛かりを提供するために使用されます。 反射ハイライトは、サーフェスのマテリアルのサイズと色によって異なります。
関連トピック