Volume & atmosphere

Aerial Perspective

空気遠近法

遠くの景色ほど空気の色に近づける。

7 / 10

Interactive demo

Preparing the demo…

Aerial Perspective

Drag to orbit, Ctrl/⌘ + scroll to zoom. Use two fingers on touch screens.

This explanation is currently available in Japanese.

ひとことで

遠くの景色ほど、空気の色に近づいて、コントラストが下がり、青っぽくかすんで見える現象、またはそれを再現する表現です。景色からの光が空気の中を長く通るうちに弱まり、代わりに空気自身が散乱した空の光が加わるためです。人間はこのかすみ具合から距離を感じ取るので、オープンワールドの遠景に奥行きとスケール感を与える重要な手がかりになります。

ゲームでの使いどころ

  • オープンワールドの遠景:遠くの山脈、地平線まで続く森、街並みを、手前と明確に区別する。
  • スケール感の演出:巨大な建造物や山を、かすませることで「遠くにある巨大なもの」と感じさせる。
  • 時間帯・天候の表現:夕方は橙に、霧の朝は白く、夏の湿った日は青白くかすむ。
  • 描画距離のごまかし:遠くで描画を打ち切る境目を、かすみで自然に隠す。

しくみ

景色の本来の色を CC、視線の距離を dd とすると、目に届く色は次のように近似できます。

C見え方=C⋅T(d)+C空気⋅(1−T(d)),T(d)=e−σdC_{\text{見え方}} = C \cdot T(d) + C_{\text{空気}} \cdot \big(1 - T(d)\big),\qquad T(d) = e^{-\sigma d}
  • T(d)T(d):景色の光が届く割合(ビール・ランバート則)
  • C空気C_{\text{空気}}:空気が散乱して目に届ける光(その方向の空の色に近い)

色ごとの係数:σ\sigma を RGB で別々に持ち、青を大きくすると(レイリー散乱)、遠くの景色は青みを帯びます。エアロゾルが多い日は色による差が小さく(ミー散乱)、白くかすみます。

視線方向で色を変える:空気の色を、視線方向の空の色から取ると、太陽の方向を見たときは明るく暖かく、反対側は青く、景色と空がなじみます(デモの夕方)。

これは、ゲームで昔から使われている「フォグ(霧)」を物理的に解釈し直したものとも言えます。単純なフォグは一定の色に混ぜるだけですが、空気遠近法は空の色、太陽の向き、色ごとの散乱を考慮します。

実装のポイント

  • 空と同じ計算を使う:空の描画と遠景のかすみで同じ空気のモデル(または同じ空の色の関数)を使うと、地平線で景色が空に溶け込み、継ぎ目が消えます。実際のエンジンでは、空気遠近法の効果を視錐台の 3D テクスチャに事前計算して使います。
  • 高さで薄くする:空気は高いところほど薄いので、高い山頂や空中の物体はかすみにくくします(高さフォグ)。
  • 遠景の LOD と組み合わせる:遠景の簡略化されたモデルの粗さを、かすみで目立たなくできます。

つまずきやすい点

  • 近景にもかけすぎる:密度が高すぎると、数 m 先の物までかすんで、世界が小さく見えてしまいます(ミニチュアのような印象)。
  • 空と景色の色が合わない:一定色のフォグで、空の色と違う色に混ぜると、地平線で景色が浮いて見えます。
  • 半透明物や粒子:水面、草、パーティクルなどにも同じ効果をかけないと、そこだけかすまずに浮いて見えます。

デモで試すこと

  1. 奥へ重なる山並みが、遠くほど空の色に溶け込み、青くかすんでいます。「空気遠近法」をオフにすると、すべての山が同じ濃さになり、どれが遠いのか分かりにくくなります。
  2. 「色ごとに散乱を変える」をオフにすると、かすみは青くならず、灰色っぽくなります。
  3. 「空気の濃さ」を上げると、手前の山まですぐにかすみ、世界が小さく感じられます。下げると、遠くまで澄んだ景色になります。
  4. 時間帯を「夕方」にすると、太陽の方向の空気が橙に染まり、山並みのシルエットが夕景に溶け込みます。

References

Unreal Engine Sky Atmosphere ↗

A general reference for this subcategory.