Doc:JA/2.6/Manual/Lighting/Ambient Occlusion
Page status (reviewing guidelines)
Page reviewed and in good shape |
Ambient Occlusion
(アンビエントオクルージョン)
アンビエントオクルージョン(Ambient Occlusion、環境閉塞)は高度なレイトレーシング演算で、Ambient Light (周辺光)が塞がれ届かない隅やメッシュの交差、しわ、割れ目に暗がりを作り、やわらかな大域照明の影をシミュレートします。
現実世界には AO のようなものはありません。AO は物理的な正確さのない(しかし通常は見栄えのいい)特殊な描画トリックです。基本的には表面上の各点を中心とした半球をサンプリングしてその半球の何割が他のジオメトリに塞がれているか調べ、それに応じてピクセルに陰影をつけます。
AO は照明とは全く関係ありません。描画トリックでしかない AO が自然に見えるのは、現実世界で間近にある面同士(小さなすきまなど)は影やほこりなどのせいで、前に何も置かれていない面より暗くなるためです。
とは言え AO が行うのはこの結果の近似です。光の跳ね返りや通過のようなものはシミュレートしません。これがシーンにひとつも光源がなくても AO が動作する理由です。また AO を単体で有効にすることがシーンの「照明」方法として非常にまずいのは、このためです。
AO を動作させるためには Render(レンダー) コンテキストの Shading(シェーディング) パネルでレイトレーシングを有効にしておく必要があります。
World(ワールド)コンテキストで Ambient Light Color(周辺光の色)をセットしておかねばなりません。デフォルトでは Ambient Light Color は停電時の真夜中の地下室と同じ黒です。Ambient としてこの色を用いると事実上全ての色を暗くします。屋外の真昼に適した色は RGB (0.9, 0.9, 0.8) で、これは晴れてはいるが日差しはさほどきつくない日中の、白味がかった黄色の太陽の色です。
Options
(オプション)
- Factor(強さ)
- AO 効果の強さで、加算用の係数です。
アンビエントオクルージョンはレンダリング中に合成されます。2つのブレンドモードが利用できます:
- Add(加算)
- ピクセルは塞がれていない 光線/ray の本数に比例する光を受けます。シーンの明るさは増します。これは大域照明をシミュレートします。
- Multiply(乗算)
- アンビエントオクルージョンはシェーディング処理に上乗せされ、ものの暗さを増します。
備考
Multiply(乗算) を選ぶ場合は他の光源が必要です。そうしないとシーンは真っ暗になります。Add(加算) ならば明確な光源が存在しなくても AO エフェクトだけでシーンが照らされます。シーンを照らす手軽なショートカットとして AO の単独使用を好む人は多いですが、結果は曇りの日のような色味の抑えられた平坦なものになります。たいていは Blender の標準ランプできっちりとシーンを照らすのが一番で、その後で AO をその上に使って、詳細の追加や Contact Shadow 用に「Multiply(乗算)」に設定します。
|
Gather パネルにはアンビエントオクルージョンの品質に関する設定があります。この設定は Environment Lighting(環境照明)や Indirect Lighting(間接照明)にも使われることに注意してください。
アンビエントオクルージョンの主な計算方式は2つあります。Raytrace(レイトレース) と Approximate(近似) です。
Gather
(ギャザー/集光)
Raytrace
(レイトレース)
Raytrace 方式のほうが正確ですが結果にノイズが増えます。ノイズがほとんどない画像も作れますが、相応のレンダリング時間が必要です。空/Sky のテクスチャの色を使いたい場合は、これが唯一の選択肢になります。
- Attenuation(減衰)
- 光線/ray の長さはどの程度離れた他の面と閉塞効果を作れるか定義します。この距離が長いほど遠いジオメトリまで閉塞効果が及びます。レンダラーは Distance(距離) 値が高いほど閉塞するジオメトリを遠くまで探索する必要があるので、満足する効果が得られる範囲でこの距離をなるべく短くするとレンダリング時間を最適化できます。
- Sampling(サンプリング)
- Samples(サンプル)
- オブジェクトが閉塞しているかどうかの検知に使う光線の本数です。サンプル数が多いほど滑らかで正確な結果が得られますが、レンダリング時間は遅くなります。デフォルト値の 5 は通常はプレビューに適しています。実際に射出される光線の本数はこの値の2乗になります(Samples が 5 なら 25 本の光線)。光線はランダムなパターン(上述のサンプル方式によって決まります)によって半球に対して射出されます。射出された光線が望ましい統計的データを作れるほど多くないと、隣接ピクセルの閉塞パターンに違いができます。
- サンプリングのオプションが3つあります:
- Constant QMC
- 基本の擬似モンテカルロ法。光線が均一にランダムに分配されます。
- Adaptive QMC
- QMC の改良版で、サンプルレートを下げたりサンプルをスキップしたりする条件を次の2つの設定を基にして決めます:
- Threshold(しきい値)
- サンプルが完全に閉塞している(「黒」)か閉塞していない(「白」)とみなしスキップする下限値。
- Adapt to Speed(速度に順応)
- 高速移動するピクセルの AO サンプリングを減らすための係数。Vector(ベクトル) レンダーパスを使うため、このパスが有効である必要があります(レンダーパスのページ をご覧ください)。
- Threshold(しきい値)
QMC について
擬似モンテカルロサンプル方式について、詳しくは レイトレースによる影のページ をご覧ください。
|
- Constant Jittered
- 昔使われていたサンプル方式です。「bias」アーティファクトを作りやすいです…
- Bias(バイアス)
- 半球を狭くする角度です (ラジアン単位)(この半球はもう本当の半球ではありません。半円ではなく、
「π - バイアス値」
ラジアンの円の円弧です)。 - バイアス設定は AO のレンダリングにどれだけ滑らかな「Smooth」な面が表示されるか調整します。AO は Smooth 前の角ばったメッシュに生じるため、「Smooth」がオンになったオブジェクトであっても AO の光で面が見えるようになる可能性があります。これは AO の光線の射出方法によるもので、Bias(バイアス) スライダーで調整できます。なおこの現象は QMC サンプル方式を使っても起きる可能性がありますが、Constant Jittered を使うほうがはるかに目立ちます。いずれにせよ QMC には Bias(バイアス) オプションはありません。
- 半球を狭くする角度です (ラジアン単位)(この半球はもう本当の半球ではありません。半円ではなく、
Approximate
(近似)
Approximate(近似) 方式ではより滑らかな結果を同じレンダリング時間で得られますが、その名の通り Raytrace(レイトレース) 方式の近似でしかなく、アーティファクト(画像の乱れ等)を作る可能性があります。またベースカラーに 空/Sky のテクスチャを使えません。
この方式は結果を「閉塞しすぎる」傾向があるようです。これを抑える補完オプションが2つあります:
- Passes(パス)
- 前処理のパス数を 0 (前処理なし)から 10 の間で設定します。数を増やすほどレンダリング時間が増えますが、アーティファクトや閉塞のしすぎの一部を解消します。
- Error(エラー)
- 近似エラーについての許容係数です(近似結果とフル計算した結果との許容差異)。値が低いほど結果の正確性は増しますがレンダリングは遅くなります。0.0 から 10.0 の範囲で、デフォルトは 0.250 です。
- Pixel Cache(ピクセルキャッシュ)
- 有効にすると計算したピクセルの値を保持して隣接ピクセルを使って補間します。通常は目立った劣化なしにレンダリングを高速化します
- Correction(補正)
- 閉塞のしすぎを抑えるための補正係数です。0.0(無補正)から 1.0 の範囲です。
Common Settings
(共通設定)
- Falloff(減衰)
- 有効にすると閉塞を作るオブジェクト間の距離が影の「深度」に影響します。閉塞を作るジオメトリが離れるほど、「影」は薄くなるということです。この効果は Strength 係数が 0.0 を上回る場合にだけ起きます。これは大気中の光の分散を模したものです。
- Strength(強さ)
- Falloff(減衰) で有効化された影の減衰を調整します。値が高いほど影は短くなり、減衰は速くなります(霧/ほこりの濃さに相当します)。0.0 (デフォルト、減衰なし)から 10.0 の値を取ります。
Technical Details
(技術的詳細)
アンビエントオクルージョンの計算は目に見えている点それぞれから光線を打ち、そのうち実質的に空まで届く数と、逆にオブジェクトに遮られる数を数えて行われます。
ある点における光の量は、「抜け出して」空に到達した光線の数に比例します。この判定は影の光線を半球領域のあちこちに発射して行われます。光線が他の面に当たれば(塞がれているので)この光線を「影」であるとみなし、当たらなければ「光」であるとみなします。「影」と「光」の比率が指定ピクセルの明るさを決めます。
Hints
(ヒント)
アンビエントオクルージョンは(少なくとも Raytrace(レイトレース) 方式に関しては)光線をたどる技術であるため、処理は遅くなる傾向があります。さらに処理効率は 8分木/octree の大きさに左右されます。詳しくは レンダリングの章 をご覧ください。