皆さんこんにちは武田です。
やっと涼しくなってきましたが、先日の暑いさなかにとった千切れ雲の写真です。
なんだか、今にも消えそうな小さな雲から雨が降っているように見えますね。
地上に届く前に蒸発しているようですが…
こんなに小さな雲から雨が降ることってあるのでしょうか。
それとも雨が降ってるから雲が弱って消えて行ってしまって、こうなっているのでしょうか。
謎です。
狐の嫁入りというのは遠くの雲からの雨が風で流されてくるのかと思っていたのですが、
まさかこんな雲から?というような小さい雲から雨が降ることもあるのでしょうか…
さて、ボリュームレンダリングを駆使してリアルな、もしくは絵っぽい雰囲気な雲を作りたいといろいろやってきたのですが、避けられない問題が、ボリュームレンダリングは重い!ということです。
レンダリングも重いし、細部まである雲の形状を作ろうとしたらデータそのものも重い、ということで
いい感じにできたとしても、どうしてもぼやっとした寝ぼけた感じになってしまいます。
どうにかそれを防ぐために、2Dの画像素材としての雲をいっぱい作って配置したりしてみました。
そこで、一旦ボリュームを離れて、メッシュで作った雲で良い感じの雲が作れるかにトライをしていみます。
モクモクした細部が欲しいのは、遠くに見えるモクモクした入道雲です。
雲の輪郭がはっきりしているし、モクモクの細部がくっきり見えた方が良いからです。
ちゃんとした形状は後で考えるとして、まずは球を手動でコピペしてモクモクした塊をつくりました。
複数の球の塊を作ったらひとまとまりのオブジェクトにして、さらにコピペ&回転…などしてすこし形を整えました。
さて、今までいろいろやっていて、雲のなかで多重散乱が起こっているのが雲っぽさに重要だということが分かっています。
ちゃんとしたボリュームレンダリングではないのですが、似たような内部の散乱を(比較的軽い計算速度で)表現するのが、サブサーフェススキャッタリングです。
ふつうは、人間の皮膚のように少し光を通す物質の表現に使う手法です(赤みがかった光が影の側にも浸透していくとリアルに…!)
普通のシェーダー(Principled BSDF)と、サブサーフェススキャッタリング用のシェーダーを混ぜて設定しています。
この仕組みを使って、雲の表現に近いことができないか頑張ってみましょう。
雲による光の散乱は、前方散乱が強いので、(雲が充分に厚くて光がさえぎられて影になる場所以外では)逆光で見ると太陽からの光がかなりカメラ側にやってくるので眩しくみえます。
その分、順光側から見るとカメラ側に戻ってくる光は少な目です。
雲が充分に厚くて、内部で光が乱反射してカメラ側に多く戻ってくるところは明るくなりますが、そうでない薄い雲や小さい雲は白というよりはグレー寄りに見えます。
こうした特徴を、サブサーフェススキャッタリングなどで代用して再現しようと考えると、順光で見るときと、逆光で見るときでパラメータを変えた方がうまく行きそうです。
まずは、逆光の場合を考えてみることにしました。
影が真っ暗にならないように、Principled BSDF ほんの少し発光要素をいれ、サブサーフェススキャッタリングと混ぜます。
光が浸透する距離を大きくすると、影側も明るくなっていきます。
ただのサブサーフェススキャッタリングだと、そこまで影側が明るくはならないのですが、
SubsurfaceTranslucency(サブサーフェスの透光)を有効にすると、あまり厚みのない箇所では、入射する光が透けて見える感じも表現に加わります。
光の透け具合を調整すると…
そんなに正確ではないかもしれませんが、ボリュームレンダリングで自分の影が落ちる雲のような雰囲気を出すことができました。
ところで、背景が真っ黒、雲も白黒ですね。
雲の散乱(ミー散乱)には色による違いはほとんどないので、白色光の太陽光が散乱しても色味に違いは出てきません。
そこで、白黒で作成したのですが、白黒写真の再現ではないのですから色をどうするか考えないといけません。
空気遠近法と、空が青く見える理由から雲の色を考えてみます。
空気によって青い光が優先されて散乱されるレイリー散乱が重要になるはずです。
A.まず、雲からカメラまで届く光を考えると、空気中を光が長距離進めば青い光が散乱されて、少し赤みがかってくるはずです。
夕日が赤く見える理由ですね。
B.一方で、雲とカメラの間の空気そのものには、太陽からの強烈な光が当たっているので、青い光の一部が散乱されてカメラ方向にも余計にやってきます。
つまり距離に応じて青い光が加わってきます。
青空が空が青く見える理由です。
そこで、それを再現できるように、デプス情報も利用してコンポジットで色を調整してみることをしてみます。
といっても、はるか遠方の雲を見ているのでない限り、A.の効果はほとんど無いので、まずはB.の効果を入れてみます。
距離によって、青みが加わるようにします。
これで、背景の黒い部分は(Z値も大きいので)真っ青、途中にある雲はほどほどに青くなるはずです。
雲の塊一つだと、ふーん、という感じですが、雲の影の部分が青空に溶け込み、遠くの雲の雰囲気が少し出てきました。
ボリュームでなくメッシュで雲を配置した利点は、ボリュームよりも大量に雲を配置しても大丈夫なことです。
そこで、インスタンスの仕組みも使って、コピペで大量に雲塊を配置します。
なかなか雄大な感じになってきました。しかし、そろそろ雲の形が単調で適当なのが気になってきました。
もう少し積乱雲っぽく雲を配置したくなってきたので、雲の形と配置をもう少し凝ってみましょう。
不規則に重なった球状の塊を一つの単位にして、
カーブに沿って配置する仕組みをジオメトリノードで作りました。
カーブは、手描きでぐりぐりと描くことができるので、手で形を整えられます。
しかし、あくまで2次元的に描くしかできないので、立体的にもくもくした構造を描くのはむずかしいです。
そこで、キャンバスになるように大雑把な雲の形をつくり、その表面にカーブを描きこむようにして3次元的な描画をしてみました。
表面に雲パーツを張り付けながら、モクモクした塊を複数作ってみます。
マテリアルを逆光寄りにして、空気遠近の仕組みで青色に寄せてみました。
色味や明るさ、グロー表現ををいろいろ調整してみると…
おおっ、なかなか逆光の雲のようにみえる雰囲気になりました。
ボリュームではないので、レンダリング速度も速いですし、解像度感もまずまず出ています。
ただ、すべてがくっきりした輪郭の雲なので、少しふわっとした雲感がたりません。
板ポリゴンの雲を、シーンの中に混ぜ込んでみます。
雰囲気が大分よくなりました。
これなら、「雲のパーツを雲のように配置する」というところを頑張れば、いい感じの空がつくれるかもしれません。
では、逆光ではない場合はどうなるか…!というところで続きます。
“Blenderを使ってCGで雲を作ってみる その21” への1件のフィードバック
TAKAAKI様、すごいですよ。レンダの空の色は写真からの色のように見えます。もう内部の散乱を使いましたが、もっとノイズを使えば、前より塊のように見えないようになるかもしれいません。ノイズは、コンポジットを付けったように、テクスチャで付けます。また、そういうで球の形をすこしのほうが無作為になります。私は日本語を勉強しておる大学生でございます、下手な日本語をすみませんでした。ゆっくりBlenderの雲を頑張ってください。