物理ベーススカイのEarth (Simple)を使う

Physically Based SkyのModelには以下の3つがある。今回はその中から最も簡単なEarth(Simple)を使ってみる

  1. Earth (Simple)
  2. Earth (Advanced)
  3. Custom Planet

Typeとは何か

まずPhysically Based SkyのTypeとは何かについて軽く説明すると、TypeはHDRPがInspectorを簡素化するために用意したプリセットである。 Earth (Simple)とEarth (Advanced)は地球をシミュレーションするために用意されたプリセットである。

Earth (Simple)で設定できるプリセット

使用できるプリセットは以下

Planet

  • Sea Level
  • Ground Tint

Aerosols

  • Aerosol Density
  • Aerosol Tint

Artistic Overrides

  • Color Saturation
  • Alpha Saturation
  • Alpha Multiplier
  • Horizon Tint
  • Horizon Zenith Shift
  • Zenith Tint

Miscellaneous

  • Number Of Bounces
  • Intensity Mode
    • Exposure Compression
  • Update Mode
  • Include Sun In Baking

Planet

  • Sea Level
  • Ground Tint

の二つを設定することができる。

Sea Level

Sea Levelはワールド座標系における海面の位置を指定する。単位はメートルである。Sea Level = 0のときはY=0の位置を海面として物理ベーススカイのレンダリングを行う。 そのため高いところ(山頂など)の空をシミュレーションしたいのであれば、Sea Levelを負の値にすればよい。

Sea Level = 0 Sea Level = -5000
img img

右のほうが空の青色が少し濃くなり(正確に言うと黒に近づく)、太陽の色が白に近づく。 これは高度が高ければ大気が薄くなり、粒子の濃度が下がり結果的にレイリー散乱が地表と比べ起こりづらくなっているからである。 また太陽の位置を傾ければ夕日を見ることができるが、地表と比べ赤く見えない。これもレイリー散乱が起こりづらくなっているため起こる現象である。

※補足すると夕日が赤く見えるのは、地球が自転し太陽の位置が相対的に変わることで太陽光が地球に入ってからカメラに届くまでに通過する距離が長くなり、結果的にレイリー散乱の回数が太陽が真上にあるときに比べて多くなるからである。

Ground Tint

Ground Tintは地面の色を指す。

img img

Aerosols

Aerosol Density

Aerosol Densityは天頂(自身の真上の空の地点)の不透明度を設定する。 gif

ドキュメントの実装で参照しているPrecomputed Atmospheric Scatteringという論文を確認してみると、 Aerosol Densityは(5)の式のTransparency Tを不透明度に反転した値のことだと思われる。

Aerosol Tint

公式の説明では

エアロゾル粒子の単一散乱アルベド (カラーチャンネルごと) です。 値が 0 の場合は粒子を吸収し、値が 1 の場合は散乱させます。

と記載してある。ここで指定した色が散乱しているように見える。 デフォルトでは黒になり完全に光を吸収する。そのためAerosol Densityを1にすると完全に光を吸収し散乱しないため、真っ黒で太陽のみ白く見える。 ここで赤などを指定すると、赤色を散乱するようになる。

gif

Artistic Overrides

Color Saturation

空の色の彩度を設定する。何も指定しなかった場合は1。0に近づくにつれ同じ明度の灰色に近づく。

Alpha Saturation

空の不透明度の飽和度を制御します。

恐らく空に何かテクスチャを表示するときに使用する値だと思われる。今回はそこまでやってないので、特に違いは感じられない。しいて言えば太陽光が少し青っぽくなったように感じた。

Alpha Multiplier

HDRP が空の不透明度に適用する乗数です。

上に同じ。 Alpha Saturationをより細かく設定するための値と思われる

Horizon Tint

HDRP が水平線で空に色付けするために使うカラーを特定します。

gif

Zenith Tint

HDRP が観察者の真上の空の地点 (天頂) に色付けするために使うカラーを特定します。

gif

Horizon Zenith Shift

HDRP が Horizon Tint と Zenith Tint をどのようにブレンドするかを制御します。これを -1 に設定すると、Zenith Tint は水平線まで下に拡大します。1 に設定すると、Horizon Tint が天頂まで上に拡大します。

Zenith Tintを赤、Horizon Tintを青にして実験 gif

以上でEarth(Simple)の紹介は終了。これだけでも自由度がある。Advancedはまた機会があればやる。