Blenderを使ってCGで雲を作ってみる その2

みなさんこんにちは。
武田です。

このところあまり青空になりませんね。
青い空と白い雲の実物がなかなかみれません。

前回は、ポリゴンでモクモクした形を作ってレンダリングをしてみました。いいところで続く!になっていたので、ちょっと早めに続きの更新です。
こんどは、ポリゴンの雲から実際の雲に近づけるために、ガスの雲を作ってみます。

ここで新機能(2.91で搭載)の Mesh to Vlume (メッシュのボリューム化)モディファイアの登場です。
CGの用語では、ポリゴンで作った表面のはっきりした塊ではなくて、ガスや液体のような連続したデータをボリュームと呼びます。
ポリゴンから、同じ形をしたボリューム(ガス)の雲を作ることができます。

モディファイアを使って、ポリゴンのメッシュをガスのボリュームに変換

以前まで、blenderでボリュームを表示するときは
「ボリューム表示の機能は機能として持っているけど、表示するボリュームの形はどうするの?頑張ってシミュレーションするの?」
という問題があったのですが、これで楽々雲の形のガスをつくることができます。
ということで、雲のポリゴンからガスの雲を作って配置してみました。

ボリュームの雲を配置

遠くに大きな雲、手前に小さな雲を配置して、雲の重なりを表現してみます。
横から見てレンダリングをしてみると、ふわっとした感じになって、より雲の表現に近づいてきました。
(Eevee によるレンダリング)

影が濃すぎるかもしれないので、濃さを調整してみると

もう少しおとなしめの雲になりました。
ただ、こうしてみると実際の雲に比べると、ちょっと色合いが単調です。
全体的に一本調子で、写真で見た雲の複雑な色味にはなっていないようです。
(色味の調整とかを全くしていないせいかもしれませんが…)

写真の雲

と、この辺で色々試行錯誤をしてもなかなかうまい感じに雲の雰囲気にならなかったので、
話を表示法やCGの話からさらに遡って、なぜ雲が白く見えるのか?
というところを調べてみました!

空が青く見えるのは、夕焼け空が赤いのはレイリー散乱のせい。
これは、結構有名な話で聞いたことがある人も多いでしょう。
空気の粒(分子)のように非常に小さい粒子に太陽の光が当たると、
青い光の方が散乱されやすいので散乱されて青空になる。
太陽の角度が低い夕焼けの時は、太陽光が大気の中を長い距離を通ってやって来るので、
青い光がその分失われていて、残った赤い成分で赤く見える…

それでは、雲がなぜ白く見えるのかというと、
雲を作る水滴ぐらいに粒が大きなってくると、レイリー散乱ではなくミー散乱と呼ばれる現象で散乱して、
この場合は色による性質の違いはほとんどなく、
太陽の光を波長に関係なく同じように散乱するので、太陽光の色そのままに白くなるそうです。

さて、このミー散乱を詳しく調べてみると、
光が入って来る方向(下の図の場合は左から右)と同じ方向に散乱することが多く、
反対方向には少なめという特徴があるそうです。
これを前方散乱といいます。
(本当はもっと凸凹した複雑な形になるのですが、ここでは単純な図を使いました)

ミー散乱の模式図

ボリュームの設定に、前方散乱後方散乱を決めるパラメータ(異方性、Anisotropy)があるので、早速調整してみます!
カメラを、太陽からの光の反対側に回り込ませて雲を見てみます。異方性パラメータを調整してみると、

おおっ!確かに太陽が反対側から雲を照らして、雲が明るく光っている雰囲気が出てきました!
奥から手前にやってくる太陽からの光の一部が散乱でちょっと曲がって、カメラの方に向かってやって来る量が増えたのですね。

しかし…!
このままさっきの方向にカメラを戻してみると…雲が暗い!
前方散乱は、反対側に光をスカスカ通してしまうわけですから、
順光側から見ると光があんまり反射せずにそうなってしまいます。

順光側から見てみると、今度は雲が暗くなってしまった…!

でも、実際の雲は白く太陽の光を反射して見えているじゃないか、ということなのですが、
本当の雲の中では、光が一回だけ曲げられるのではなくて、
(1回だけだと、大部分が向こう側に通り抜けてしまう…!)
何度も曲がったり跳ね返ったりを繰り返して「多重散乱」していることが本質的な違いのようです。

Eeveeでは、多重散乱は計算できないはずですから、ここはもう一つの、
より物理に即した(リアルだけど重い)レンダリングエンジンである、Cycles の出番になりそうです。

しかし、「多重」散乱。
聞いただけで計算が重そうな響きがします。
果たして、リアルな雲を Cyclesで作ることはできるでしょうか…!

というところで次回に続きます…!

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です