山里ぽん太

Snow

09 December 2018

山里ぽん太は積もった雪を作ろうと思いました。


Chapter 1 雪が降る前に
というわけで、だんだん日が短くなって、だんだん寒くなってきました。
自動車のタイヤを冬タイヤに取り替えて、雪囲いもしなければいけません。
もうすぐ雪が降って、積もります。
Houdini の中にも、雪が積もるでしょう。
というわけで、積もった雪を作ってみようと思いました。
Chapter 2 ポイントを積もらせる
というわけで、積もった雪って、どう表現したらいいでしょう?。
最初に考えたのは、ポイントをダイナミクスで降らせて、地面だの木だのを Static Object にしておいて積もらせて、それに、雪の結晶を Copy to Point する、というものでした。
しかし、それって、ポイントの数はどれくらい用意したらいいでしょう?。
縦1メートル、横1メートル、奥行き1メートル、の、つまり1立方メートルの中に、縦1000個、横1000個、奥行き1000個、の、つまり、10億くらい?。
まじっすか?。
じゃあ、横100メートルの奥行き100メートルなら、10兆っすか。
却下です(笑)。
Chapter 3 テクスチャを使う
というわけで、積もった雪の表面を作れないでしょうか?。
つまり、ハリボテです(笑)。
noise で緩やかなでこぼこを作って、結晶の形を rand で作って、積もった雪の表面の形状を作ってみましょう。
というわけで、これがテクスチャです。
周期的な Perlin Noise を使っています。

このテクスチャを Displacement に割り当ててレンダリングしてみました。
なんとなく良さそうですが、パターンの繰り返しが、雪っぽくない感じです。
それに、透明度とかも別途テクスチャを割り当てないといけないし、モデルのサイズが変わったりするので、テクスチャでは、なかなかたいへんそうです。

Chapter 4 ノイズを使う
Principledshader の Displacement のところにある、ノイズを使えないでしょうか?。
ノイズが使えたら、ちょー楽です(笑)。
というわけで、作ってみました。
デフォルトの Simplex Noise に デフォルトの Roughness のままで、大きさだけを小さくしました。
うん、なかなかいい感じじゃあーりませんか(笑)。
緩やかな起伏は、SOP でつけてあります。

Chapter 5 実際にどう使う
Chapter 4 では、10×10の Grid で試しました。
空き地とかは、これでいいかもしれません。
でも、現実の風景は、空き地だけではありません。
家があったり、木があったり、自動車があったりします。
そういった、いろんなものの上に積もった雪はどうすればいいでしょう?。
家の屋根は、平面で構成されるので、作りやすいかもしれません。
でも、屋根の端は、どう処理すればよいでしょう?。
単純に PolyExtrude しちゃうと、豆腐みたいな形状になってしまいます。
木の枝はどうすればよいでしょう?。
自動車の上は、丸くまるまった雪になることでしょう。
雪の降りかたや、積もった後の天候や、積もった後の経過時間によっても、形状は異なります。
うーん、なんて難しい(困)。
駄菓子菓子(笑)、これは、実は、モデリングをがんばれば、いろんな表現ができる、ということを意味しています。
いろんな雪を見て、触って、経験している僕の独擅場じゃあーりませんか(笑)。
Chapter 6 Steven Knipping's Snow
FACEBOOK の Houdini のグループで案内されていた Steven Knipping さんの Snow は、なかなか見事です。
ホームページはこちらです。

Chapter 7 メモ
① 中途半端ですが、積雪のモデルの応用は、次の機会に譲ります。