Doc:JA/2.6/Manual/Lighting/Shadows
Shadows
(影)
光はその片割れなしには存在すらできません。影です。影とは、物体への光の照射が部分的または完全に遮られ、暗くなった部分です。影はシーンに、濃淡とボリュームを足します。現実世界に影のない場所はほとんどないため、現実味のある描画のためには影は必要です。Blender は次の種類の影をサポートします:
アンビエントオクルージョンは光そのものではなく、ジオメトリを元にした影です。ただ、物体を完全に一様に照らすことのない光の効果を真似るので、ここで説明します。また Ambient を増やすほど影の効果が弱まるため、Ambient Lighting の話題も重要です。
レイトレースとバッファシャドウを組み合わせて使い、違った結果を得ることができます。レイトレースシャドウの内側においても、照明によって違った様式や強度の影が作られます。照明の並べ方によって、ある照明が他の照明の作る影を打ち消すことも、重なることもあります。
影は、結果を出すためにさまざまな場所でたくさんの準備をする必要があります:
- 照明が影を作らなければならない(能力と向き)
- 不透明な物体は通過する光を遮らなければならない(位置とレイヤー)
- 相手の物体のマテリアルが影を受けなければならない(Shadow(影) と Receive Transparent(半透明影の受信) が有効であること)
- レンダーエンジンが影を計算しなければならない(バッファシャドウ用には Shadow、レイトレースシャドウ用には Shadow と Ray)
たとえば単純な Point(ポイント)、Area(エリア) と Sun(サン) 光源はバッファシャドウではなくレイシャドウを作ることができます。Spot(スポット) 光源はどちらも作ることができ、一方 Hemi(ヘミ) 光源は一切影を作りません。Sun 光源が横向きに射すと、平面上の球から平面に影は作られませんが、これは光がその方向には進まないためです。影を作れるすべての光源には共通のオプションがあり、これは こちらで 説明されています。
さらなる影のオプション(と混乱と問題)のご参考までに、光源とマテリアルは、物体の diffuse/specular 特性を照らさず影を作ったり受けたりすること だけ ができるように、個別に設定できます。またレンダーレイヤーは影のパスのオンオフ切り替えができ、出力に影情報を含むかどうかを決められます。
Lamps: Ray-traced Shadows
(光源:レイトレースによる影)
レイトレースシャドウは処理時間を費やして、非常に少ないメモリ消費で非常に正確な影を作ります。このタイプの影は Hemi を除くすべての光源で利用できます。
バッファによる影 とは対照的に、レイトレースシャドウは均一光源から光線を、一様にあらゆる方向に注ぐことで得られます。レイトレイサーは次に、光線に最終画像のどのピクセルが当たるか、どのピクセルが当たらないかを記録します。当たらないピクセルは当然、影によって不明瞭になります。
光源の種類によって光線は違った方法で放たれます。たとえば Spot 光源は円錐の範囲内のあらゆる方向に均一に光線を放ちます。Sun 光源は無限遠から光線を放ち、光線はすべて Sun 光源の向きと平行になります。
シーンにレイトレーシングを有効にした光源を追加するたびに、レンダリング時間が増加します。レイトレースによる影はバッファによる影よりも多くの計算を必要としますが、非常に少ないメモリ消費で、縁の鋭い影を生みます。
レイトレースシャドウを有効にするには、3つの操作が必要です:
- Render(レンダー) コンテキストの Shading(シェーディング) パネルで Shadows(影) をグローバルに有効にする
- 同じパネルで Ray tracing(レイトレーシング) をグローバルに有効にする
- 光源の Object Data(オブジェクトデータ) コンテキストの Shadow(影) パネルにある Ray Shadow(レイシャドウ) ボタンを使って、この光源用のレイトレースによる影を有効にします。このパネルは光源のタイプによって変化します。
- レイトレースシャドウを作れるすべての光源には共通オプションがあり、これは レイトレースによる影のプロパティ で説明されています。
レイトレースシャドウは次のタイプの光源によって作れます:
Lamps: Buffered Shadows
(光源:バッファによる影)
バッファによる影、バッファシャドウは精度や品質を犠牲にして、影を高速描画します。バッファシャドウはまた、メモリをレイトレースより多く必要とします。バッファシャドウを利用すべきかどうかは要件次第です。アニメーションをレンダリングする場合や、ソフトシャドウを使った複雑なシーンのレンダリングに何時間も待てない場合は、バッファシャドウは良い選択です。
スキャンラインレンダラー用に – Blender 組み込みのエンジンはスキャンラインレンダラーです – 影は シャドウバッファ を使って計算できます。スポット光源の視点で見た「画像」が「レンダリング」され、この画像内の各点とスポット光源の距離が保存されます。「レンダリング」された画像内にある、スポット光源の画像にあるどの点よりも遠い点はすべて、影になっているとみなされます。シャドウバッファはこの画像データを保管します。
バッファシャドウを有効にするには、以下の操作が必要です:
- World(ワールド) コンテキストの Gather(ギャザー) パネルで Approximate(近似) を選び、グローバルに影を有効にします
- 光源の Lamp(オブジェクトデータ) コンテキストの Shadow(影) パネルで Buffer Shadow(バッファシャドウ) ボタンを使ってこの光源に関する影を有効にします。
- 各 Material(マテリアル) コンテキストの Shadow(影) パネルで Cast Buffer Shadows(バッファシャドウを投影) オプションが有効であることを確認してください。
- Spot lamp(スポットランプ) はバッファシャドウを作れる唯一の光源です。