Version: 2019.1
クッキー

シャドウ

Unity のライトは、あるオブジェクトからそれ自体の一部や近くにある他のオブジェクトに 影 (シャドウ) を作ることができます。シャドウによって、オブジェクトのスケールや位置が明確になるため、シーンに奥行きと現実感が生まれます。シャドウがないと、オブジェクトは 「平坦」に見えてしまいます。

オブジェクトがシャドウを投影するシーン
オブジェクトがシャドウを投影するシーン

シャドウのしくみ

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

別の見方として、ライトと同じ位置にあるカメラをイメージしてください。影になるシーンの領域は、カメラで見ることのできない領域と正確に同じになります。

同じシーンの「ライトの視点」
同じシーンの「ライトの視点」

実際、まさにこれが、Unity がライトによるシャドウの位置を決定する方法なのです。ライトはカメラと同じ原理を使って、その視点からシーンを内部的に「レンダリング」します。シーンカメラとして使用されている深度バッファーシステムが、ライトに最も近いサーフェスを追跡します。視点の直線上にあるサーフェスは照明を受けますが、他のすべては影になります。この場合の深度マップは シャドウマップ として知られています(シャドウマッピングの詳細は Wikipedia Page を参照してください)。

続くページでは Unity の Light オブジェクトからのシャドウの投影に関して説明します。

クッキー