都内自粛要請でどこにも行けない季節外れの大雪の日。
これまでの勉強の成果として、初となるCG作品、タイムリーな「雪」をテーマにした作品を公開しました。
同時にCGや実験映像専用のyoutubeチャネルを新規に開設、以前の動画と虚実入り混じらないように。
作品は雪の結晶を描いたもので、形状の生成はある反復アルゴリズムを使用。
コンピュータで反復アルゴリズムを使用して美しい造形を作る手法というのは、おそらく1980年代のMandelbrot集合あたりから連綿と無数にあって今回使用したのもそのうちの一つで所謂Cell Automataと呼ばれるものの派生形
個人的に最も美しい反復アルゴリズムと思っているのだけれど、元の論文はこれ。
3つの論文があるのだが、そのうちの"Modeling Snow Crystal Growth II"を採用。
本来、雪に限らず物質の結晶の成長をシミュレートするには「ステファン問題」と呼ばれる異なる相の境界を表現する一連の問題を微分方程式などを用いて解いてやる必要があるらしく、かなり難易度が高そうだし計算時間も膨大にかかってしまう。
今回の論文は氷や水蒸気の物理的な性質の本質的な所を極力簡略化したもので、かなり単純なアルゴリズムで複雑多様な雪の結晶を生成することができる。
とは言ってもやはり計算にはマシンパワーが必要で、1モデル生成するのに長いものだと数十分かかったりする。
これで生成できるのは二次元形状なのだけれども、その生成物をいろいろ工夫して三次元Surface Meshモデルにコンバートしてレンダリングした。
上リンクの中には更に発展させた直接三次元モデルを生成できるアルゴリズムもあって試しに雑にインプリメントしてみたものの、1モデルの生成が一晩計算しても終了しないので断念。(もしかしたらGPUを使えば高速化できるかもしれない)
レンダリングにはblenderを使用。結晶の成長など特殊な動きが多いので、制御は専らPythonを使用してそこからblenderのレンダリング機能を呼び出すようにした。
音楽については、これまたある勉強の成果物なのですが、書くと長くなりそうなのでまたの機会に。