光源の計算Mathematics of lighting

Direct3D の照明モデルは、環境光、拡散光、反射光、放射光を扱います。The Direct3D Light Model covers ambient, diffuse, specular, and emissive lighting. これにより、さまざまな照明の状況に十分対応することができます。This is enough flexibility to solve a wide range of lighting situations. シーン内の照明の合計量は、全体照明と呼ばれます。The total amount of light in a scene is called the global illumination.

全体照明は次のように計算されます。The global illumination is computed as follows:

global_illumination = ambient_lighting + diffuse_lighting + specular_lighting + emissive_lighting;

環境光は一定の照明です。Ambient lighting is constant lighting. 環境光は、すべての方向において一定であり、オブジェクトのすべてのピクセルが同じように色付けされます。Ambient lighting is constant in all directions and it colors all pixels of an object the same. 計算は高速ですが、オブジェクトはフラットに見え、リアル感が劣ります。It is fast to calculate but leaves objects looking flat and unrealistic.

拡散光は、光の方向とオブジェクト サーフェスの法線の両方によって決まります。Diffuse lighting depends on both the light direction and the object surface normal. 光の方向を変更し、サーフェスの法線ベクトルを変更すると、拡散光がオブジェクトのサーフェス上で変化します。Diffuse lighting varies across the surface of an object as a result of the changing light direction and the changing surface numeral vector. オブジェクト頂点ごとに変化するため、拡散光の方が計算に時間がかかりますが、オブジェクトに陰影が付き、3 次元 (3D) の奥行きが出るというメリットがあります。It takes longer to calculate diffuse lighting because it changes for each object vertex, however the benefit of using it is that it shades objects and gives them three-dimensional (3D) depth.

反射光では、光がオブジェクトの表面に当たり、カメラに向かって反射する明るい反射光を指定します。Specular lighting identifies the bright specular highlights that occur when light hits an object surface and reflects back toward the camera. 反射光は拡散光よりも強い光で、オブジェクトの表面から短時間で消えます。Specular lighting is more intense than diffuse light and falls off more rapidly across the object surface. 反射光の方が拡散光よりも計算に時間がかかりますが、反射光を使用すると、表面の表現力が格段に向上します。It takes longer to calculate specular lighting than diffuse lighting, however the benefit of using it is that it adds significant detail to a surface.

放射光は、オブジェクトにより放射される光 (輝きなど) です。Emissive lighting is light that is emitted by an object; for example, a glow. 放射によって、レンダリングされるオブジェクトが自己発光しているように見えます。Emission makes a rendered object appear to be self-luminous. 放射はオブジェクトの色に影響し、暗いマテリアルが明るくなったり、部分的に放射される光の色になったりする場合があります。Emission affects an object's color and can, for example, make a dark material brighter and take on part of the emitted color.

現実的な光は、これらの種類の光をそれぞれ 3D シーンに適用することによって実現できます。Realistic lighting can be accomplished by applying each of these types of lighting to a 3D scene. 環境、放射、および拡散コンポーネントに計算される値は、拡散頂点の色として出力されます。鏡面反射コンポーネントの値は、反射頂点の色として出力されます。The values calculated for ambient, emissive, and diffuse components are output as the diffuse vertex color; the value for the specular lighting component is output as the specular vertex color. 環境光、拡散光、反射光の値は、特定の光の減衰とスポットライト要素の影響を受けます。Ambient, diffuse, and specular light values can be affected by a given light's attenuation and spotlight factor. 減衰とスポットライト係数」を参照してください。See Attenuation and spotlight factor.

より現実的な照明効果を出すため、多くの照明を追加できますが、シーンのレンダリングに時間がかかります。To achieve a more realistic lighting effect, you add more lights; however, the scene takes longer to render. デザイナーが望むすべての効果を出すため、一部のゲームでは一般に使われているより多くの CPU 能力を使っています。To achieve all the effects a designer wants, some games use more CPU power than is commonly available. この場合、テクスチャ マップを使うと同時に照明マップと環境マップを使ってシーンに照明を追加することにより、照明計算の数を最小限に減らすのが一般的です。In this case, it is typical to reduce the number of lighting calculations to a minimum by using lighting maps and environment maps to add lighting to a scene while using texture maps.

照明は、カメラ空間で計算されます。Lighting is computed in the camera space. カメラの空間変換」をご覧ください。See Camera space transformations. 法線ベクトルが既に正規化されていて、頂点ブレンドが必要なく、変換マトリックスが直角であるという特殊な条件が存在する場合、最適化された照明をモデル空間で計算できます。Optimized lighting can be computed in model space, when special conditions exist: normal vectors are already normalized, vertex blending is not needed, and transformation matrices are orthogonal.

すべての照明計算は、ワールド マトリックスの逆数を使って、カメラ位置と共に光源の位置と方向をモデル空間に変換することにより、モデル空間で行われます。All lighting computations are made in model space by transforming the light source's position and direction, along with the camera position, to model space using the inverse of the world matrix. そのため、ワールド マトリックスとビュー マトリックスに不均一なスケーリングが導入されている場合、結果として生じる照明が不正確になることがあります。As a result, if the world or view matrices introduce non-uniform scaling, the resultant lighting might be inaccurate.

このセクションの内容In this section

トピックTopic 説明Description

環境光Ambient lighting

環境光は、シーンに一定の照明を生成します。Ambient lighting provides constant lighting for a scene. 頂点法線、光の方向、光の位置、減衰などの他の照明要素に依存していないため、すべてのオブジェクト頂点を同じように照らします。It lights all object vertices the same because it is not dependent on any other lighting factors such as vertex normals, light direction, light position, range, or attenuation. 環境光は、すべての方向において一定であり、オブジェクトのすべてのピクセルが同じように色付けされます。Ambient lighting is constant in all directions and it colors all pixels of an object the same. 計算は高速ですが、オブジェクトはフラットに見え、リアル感が劣ります。It is fast to calculate but leaves objects looking flat and unrealistic.

ディフューズ ライトDiffuse lighting

拡散光は、光の方向とオブジェクト サーフェスの法線の両方によって決まります。Diffuse lighting depends on both the light direction and the object surface normal. 光の方向を変更し、サーフェスの法線ベクトルを変更すると、拡散光がオブジェクトのサーフェス上で変化します。Diffuse lighting varies across the surface of an object as a result of the changing light direction and the changing surface numeral vector. オブジェクト頂点ごとに変化するため、拡散光の方が計算に時間がかかりますが、オブジェクトに陰影が付き、3 次元 (3D) の奥行きが出るというメリットがあります。It takes longer to calculate diffuse lighting because it changes for each object vertex, however the benefit of using it is that it shades objects and gives them three-dimensional (3D) depth.

反射光の効果Specular lighting

反射光では、光がオブジェクトの表面に当たり、カメラに向かって反射する明るい反射光を指定します。Specular lighting identifies the bright specular highlights that occur when light hits an object surface and reflects back toward the camera. 反射光は拡散光よりも強い光で、オブジェクトの表面から短時間で消えます。Specular lighting is more intense than diffuse light and falls off more rapidly across the object surface. 反射光の方が拡散光よりも計算に時間がかかりますが、反射光を使用すると、表面の表現力が格段に向上します。It takes longer to calculate specular lighting than diffuse lighting, however the benefit of using it is that it adds significant detail to a surface.

エミッション ライトEmissive lighting

放射光は、オブジェクトにより放射される光 (輝きなど) です。Emissive lighting is light that is emitted by an object; for example, a glow. 放射によって、レンダリングされるオブジェクトが自己発光しているように見えます。Emission makes a rendered object appear to be self-luminous. 放射はオブジェクトの色に影響し、暗いマテリアルが明るくなったり、部分的に放射される光の色になったりする場合があります。Emission affects an object's color and can, for example, make a dark material brighter and take on part of the emitted color.

カメラの領域の変換Camera space transformations

カメラ空間内の頂点は、ワールド ビュー マトリックスによってオブジェクト頂点を変換することにより計算されます。Vertices in the camera space are computed by transforming the object vertices with the world view matrix.

減衰させ、スポット ライトの係数Attenuation and spotlight factor

全体照明の方程式の拡散光および反射光コンポーネントには、光の減衰とスポットライト コーンを表す項が含まれています。The diffuse and specular lighting components of the global illumination equation contain terms that describe light attenuation and the spotlight cone.

 

関連トピックRelated topics

ライトとマテリアルLights and materials