光源の計算

Direct3D の照明モデルは、環境光、拡散光、反射光、放射光を扱います。 これにより、さまざまな照明の状況に十分対応することができます。 シーン内の照明の合計量は、全体照明と呼ばれます。

全体照明は次のように計算されます。

global_illumination = ambient_lighting + diffuse_lighting + specular_lighting + emissive_lighting;

環境光は一定の照明です。 環境光は、すべての方向において一定であり、オブジェクトのすべてのピクセルが同じように色付けされます。 計算は高速ですが、オブジェクトはフラットに見え、リアル感が劣ります。

拡散光は、光の方向とオブジェクト サーフェスの法線の両方によって決まります。 光の方向を変更し、サーフェスの法線ベクトルを変更すると、拡散光がオブジェクトのサーフェス上で変化します。 オブジェクト頂点ごとに変化するため、拡散光の方が計算に時間がかかりますが、オブジェクトに陰影が付き、3 次元 (3D) の奥行きが出るというメリットがあります。

反射光では、光がオブジェクトの表面に当たり、カメラに向かって反射する明るい反射光を指定します。 反射光は拡散光よりも強い光で、オブジェクトの表面から短時間で消えます。 反射光の方が拡散光よりも計算に時間がかかりますが、反射光を使用すると、表面の表現力が格段に向上します。

放射光は、オブジェクトにより放射される光 (輝きなど) です。 放射によって、レンダリングされるオブジェクトが自己発光しているように見えます。 放射はオブジェクトの色に影響し、暗いマテリアルが明るくなったり、部分的に放射される光の色になったりする場合があります。

現実的な光は、これらの種類の光をそれぞれ 3D シーンに適用することによって実現できます。 環境、放射、および拡散コンポーネントに計算される値は、拡散頂点の色として出力されます。鏡面反射コンポーネントの値は、反射頂点の色として出力されます。 環境光、拡散光、反射光の値は、特定の光の減衰とスポットライト要素の影響を受けます。 「減衰とスポットライト係数」を参照してください。

より現実的な照明効果を出すため、多くの照明を追加できますが、シーンのレンダリングに時間がかかります。 デザイナーが望むすべての効果を出すため、一部のゲームでは一般に使われているより多くの CPU 能力を使っています。 この場合、テクスチャ マップを使うと同時に照明マップと環境マップを使ってシーンに照明を追加することにより、照明計算の数を最小限に減らすのが一般的です。

照明は、カメラ空間で計算されます。 「カメラの空間変換」をご覧ください。 法線ベクトルが既に正規化されていて、頂点ブレンドが必要なく、変換マトリックスが直角であるという特殊な条件が存在する場合、最適化された照明をモデル空間で計算できます。

すべての照明計算は、ワールド マトリックスの逆数を使って、カメラ位置と共に光源の位置と方向をモデル空間に変換することにより、モデル空間で行われます。 そのため、ワールド マトリックスとビュー マトリックスに不均一なスケーリングが導入されている場合、結果として生じる照明が不正確になることがあります。

このセクションの内容

トピック 説明

環境光

環境光は、シーンに一定の照明を生成します。 頂点法線、光の方向、光の位置、減衰などの他の照明要素に依存していないため、すべてのオブジェクト頂点を同じように照らします。 環境光は、すべての方向において一定であり、オブジェクトのすべてのピクセルが同じように色付けされます。 計算は高速ですが、オブジェクトはフラットに見え、リアル感が劣ります。

拡散光

拡散光は、光の方向とオブジェクト サーフェスの法線の両方によって決まります。 光の方向を変更し、サーフェスの法線ベクトルを変更すると、拡散光がオブジェクトのサーフェス上で変化します。 オブジェクト頂点ごとに変化するため、拡散光の方が計算に時間がかかりますが、オブジェクトに陰影が付き、3 次元 (3D) の奥行きが出るというメリットがあります。

反射光

反射光では、光がオブジェクトの表面に当たり、カメラに向かって反射する明るい反射光を指定します。 反射光は拡散光よりも強い光で、オブジェクトの表面から短時間で消えます。 反射光の方が拡散光よりも計算に時間がかかりますが、反射光を使用すると、表面の表現力が格段に向上します。

放射光

放射光は、オブジェクトにより放射される光 (輝きなど) です。 放射によって、レンダリングされるオブジェクトが自己発光しているように見えます。 放射はオブジェクトの色に影響し、暗いマテリアルが明るくなったり、部分的に放射される光の色になったりする場合があります。

カメラの空間変換

カメラ空間内の頂点は、ワールド ビュー マトリックスによってオブジェクト頂点を変換することにより計算されます。

減衰とスポットライト係数

全体照明の方程式の拡散光および反射光コンポーネントには、光の減衰とスポットライト コーンを表す項が含まれています。

 

照明および素材