クッキー

Unity のライトは、何か物体によって生じる 影 (シャドウ) を、その物体自身や近くにあるオブジェクトに落とすことができます。 影を落とすことによって、オブジェクトの位置や大きさが明確になるため、シーンに奥行きと現実感が生まれます。影がないと、物体は “平坦” に見えてしまいます。

オブジェクトが影を落しているシーン
オブジェクトが影を落しているシーン

影のしくみ

光源が1つしかない単純なシーンをイメージしてください。光源から発せられた光(光線)は、光源から直線的に移動し、やがてシーン内にある何かオブジェクトにぶつかります。光線がオブジェクトにぶつかると、それ以上は進めなくなるので、その先を照らすことはありません。(つまり、光は最初にぶつかったオブジェクトで停止し、通過することはありません)。オブジェクトによって生じる影というのは、単純に光が届かないために照らされない領域のことなのです。

別の見方として、光と同じ位置にカメラがあるのをイメージしてください。そうすると、影の部分は、カメラでは見ることのできない領域と同じになります。

同じシーンの光の視点
同じシーンの“光の視点”

これは、Unity が正確に光の影の位置を決定する方法として使われています。光はビューの位置から、シーンの内部を “レンダリング” するカメラと同じ原理を使用しています。シーンカメラで使用されるデプスバッファシステムは、光に最も近い面をトレースします。見通しのきく表面が照明を受けて明るくなりますが、他のすべては影となり暗くなります。この場合、デプスマップは Shadow Map として知られています(役に立つシャドウマッピングの詳細は Wikipedia を参照してください)。

以下では Unity のライトオブジェクトからの投影に関しての詳細を説明します。

クッキー