山里ぽん太

10 rainbows

23 September 2018

山里ぽん太は虹を10個作りました。


Chapter 1 虹
プリズムに光をあてると、虹ができます。
プリズムってぇのは、三角柱の形をしたガラスの塊です。
小学校の理科の実験で遊んだアレです。
でも、Houdini でそれをやろうとすると、できないんです(涙)。
後ろに影ができるだけです。

なので、なんとかして、虹を作ろうと思いました。
今回も、アイデア出し10個です。
今回は、静止画です。
Chapter 2 虹1 プリズムの虹
というわけで、なにはともあれ、プリズムの虹を作ってみました。
プリズムとは、三角柱のガラスの塊のアレです。
福井駅前のショッピングセンターPRISMではありません(笑)。
というわけで、作ってみましたー。

mantra くんは計算してくれないので、手動で計算しました(笑)。
アレです。
スネルの法則でもって、光の角度を計算しました。

光の波長によって光のスピードが違ってくることを、分散っていうんですけど、光のスピードが違うと屈折率も違ってきて、屈折率が違うと光の曲がり方が違ってきます。
というわけで、屈折率と曲がる角度を、エクセルで計算しました(笑)。
屈折率出射角度
1.4033.84971962
1.4233.47779235
1.4433.11692971
1.4632.76658791
1.4832.42625906
1.5032.09546813

でもって、6色の色に、屈折率と出射角度を割り当てました。
6色の色RGB値出射角度
R=1 G=0 B=032.09546813
R=1 G=1 B=032.42625906
R=0 G=1 B=032.76658791
シアンR=0 G=1 B=133.11692971
R=0 G=0 B=133.47779235
R=1 G=0 B=133.84971962

でもって、Distant Light を6個用意して、このRGB値と角度を割り当てて、シーンに配置しましたー。
というわけで、この絵の色は、mantra くんがプリズムのところで分離してくれているのではなくって、最初から虹の色の光を用意して照明しているだけです(爆)。
だがしかし、Distant Light は、シーンの全体を照明するので、プリズムのところだけ照明してくれるようにプリズムの断面と同じ大きさのスリットを作ったり、もとの白色光がスリットをシェーディングしないようにファントムの設定をしたり、とか、いろいろ細かい設定をしています。
ちょー面倒くさいです(笑)。
Chapter 3 虹2 コースティクスの虹
というわけで、Chapter 1 のセットに、Chapter 2 の6色の光を当ててみました。
コースティクスの影に虹ができましたが、ちょっと(だいぶ(ぜんぜん(まるっきり)))違います(笑)。
球体は、平面と違って、光が入射する角度も出射する角度もいろいろ違うので、難しい計算をして、スクリーンに当たる光を合成(積分)したりしなければいけなくって、結局、自分で、シェーディングすることになってしまいそうです。

Chapter 4 虹3 投影の虹 その1
この絵では、3原色の3つの Point Light を原点に配置して、その周囲にビー玉のような透明なガラスの球体をたくさん集めて配置しました。
でもって、球体の内側で作った丸いスクリーンに投影しています。
影が、不規則な形状になって、びっくりしています。
こんなになるなんて、思ってもみませんでした。
mantra くん、芸術家〜(笑)。
というわけで、この絵の虹は、分散で作った虹ではなく、3原色がテキトーに混色してできた色です(爆)。

Chapter 5 虹4 投影の虹 その2
この絵では、「The Algorithmic Beauty of Plants」の作例で作った植物を配置して、3原色の3つの Point Light で照明しました。
植物のマテリアルは、色をつけたガラスです。
植物の上のあたりにポイントライトを置いて、地面の位置に平面のスクリーンを置いて、投影しています。
なかなかキレイかも?(笑)。
というわけで、この絵の虹も、分散で作った虹ではなく、3原色がテキトーに混色してできた色です。
レストランのテーブルライトとかにいいかもしれないですね。
3Dプリンターを買ったら、実際に作れちゃ・・・わないかな?www。

Chapter 6 虹5 投影の虹 その3
Chapter 5 と同じセットです。
この絵では、ポイントライトを、植物の足元付近に置いて、Chapter 4 で使ったのと同じような、球形の内側のスクリーンに投影しています。
なかなかキレイっすよね?(笑)。
というわけで、この絵の虹も、分散で作った虹ではなく、3原色がテキトーに混色してできた色です。

Chapter 7 虹6 すりガラスの虹
お陽様の光が、すりガラスの向こう側から当たると、虹色に見えます。
というわけで、ソイツを作ってみました。
すりガラスは、グリッドに「Scatter」ノードでポイントをばらまいて、「Attribute Randomize」ノードで法線の向きをランダマイズして、「Platonic Solid」ノードの正21面体に SubDivision をかけて、Copy To Points して作りました。
AreaLight と DistantLight で照明しています。
なんだか、そんなことしなくっても、乱数だけで描けてしまいそうな気がしますが、そこは置いといて、次行ってみましょう(笑)。

Chapter 8 虹7 水滴の虹
水滴の虹です。
水滴は「Drip Fluid」シェルフ・ツールそのまんまです(笑)。
AreaLight と DistantLight で照明しています。
動画にしたらおもしろそうですが、またの機会に(笑)。

Chapter 9 虹8 つららの虹
屋根の軒先から垂れ下がったつららのイメージです。
つららは、「Tube」で円錐形を作って、「Attribute Wrangle」ノードをつないで、VEXpression でポイントの位置をランダムに変化させて、SubDivision をかけて作っています。
AreaLight と DistantLight で照明しています。
つららがもっとリアルだとよいのですが、もすこし勉強しなければ、というところです。

Chapter 10 虹9 幻燈の虹
幻燈です。
幻燈機の前に、パンチングメタルのような、いろんな形をした穴を開けた板を置いて、スクリーンに投影したものです。
昔の幻燈機は、光源に白色灯を使って、穴の空いた板を置いて、スクリーンに影を映したものでした。
このセットでは、光源に Chapter 2 の6色の色の点光源を置いています。
いつか、藤城清治さんが作ったような、美しい幻燈アニメーションを作ってみたいものです。
余談ですが、昔、PAF に出品していた「謎の幻燈団」というチームがありました。
よいネーミングだな、と思ったことを思い出しました。

Chapter 11 虹10 空の虹
10個目は、やはり、なんといっても、空の虹です。
空中を漂う水とか氷とかの粒に、お陽様の光が、屈折だの反射だのして、分光して、色とりどりになった光が目に飛び込む、というアレです。
Chapter 2 で作ったプリズムの虹みたいに、輪郭はボケボケになって、いい感じに混色して、地面に届くところもいい感じにフェードアウトして、って感じは、どうやったら出るでしょうか?。
というわけで、あれこれ考えたのは、ボリュームを使う方法でした!!。
虹の形の円弧に、「isoOffset」ノードを繋いだら、ボリュームはできたんですけど、円弧の形の串に、団子を串刺ししたみたいになってしまいました(涙)。
ボリュームは、やはり、丸っこい塊みたいな形に使うのがよさそうです。
というわけで、ボリュームの代わりに、「Scatter」ノードでポイントをいっぱいつくって、そのポイントの濃淡みたいな感じでできないかな、と思いました。
というわけで、「Scatter」ノードをつないで、「AttributeWrangle」ノードをつないで、ってやっていたら、iMac くんが、「Houdini がメモリを使い果たしましたー、強制終了してくださーい」って言って、Houdini があちらの世界へ行ってしまいました(逝)。
Scatter しすぎてしまったようです(涙)。
64GB を使い果たすとは、VEX おそるべし!!(怖)。
というわけで、あれこれ考えて、ひとまず、Chapter 2 で作ったプリズムの虹をそのまま使ってみることにしました。
Houdini のたくさんバリーションがあるライトのうち、ボケが出るのは、「Distant Light」だけみたいなんです。
というわけで、作ってみたのがコレです。
なかなかいい感じじゃあ〜りませんか(笑)。

しかし、この虹は、プロジェクションしている虹なので、写真みたいな平面にしか作れないんです(悲)。
3D でモデリングした町の、真ん中あたりに虹を出現させるためには、虹も3D でモデリングしてあげないといけません。
ということで、3D でモデリングした虹のアーチに、ルミナンスを割り当てた虹を作ってみました。
ボケとかは、どうしようか、と、いろいろ考えたのですが、結局、ポイントをばらまいて、「@pscale」の大きさを変えることにしました。
で、作ってみたのがコイツです。
クレヨン画みたいです(笑)。
でもまあ、これはこれで、使えることもあるかもしれません(笑)。

一部を拡大してみました。
作っている途中で使った作業用のカメラの絵なんですけど(笑)。
キレイです!(笑)。

Chapter 12 メモ
① これらの作例を作っていて、シェーダーの知識と、コンポジターの知識がない、ということを感じました。ポリゴンモデルを作るのではなく、光を描く作業ですから、当然といえば当然です。シェーダーや、コンポジターの学習は、SOP つまり、モデリングの知識があることが前提となりますが、Houdini の場合、SOP の学習だけでもなかなか大変なので、ページ数の多い書籍でも SOP だけを取り扱っていて、シェーダーやコンポジターを取り扱った書籍はないようです。

② Chapter 11 の作例を終えた後で、「Material」ジオメトリノードがあることに気がつきました(笑)。こんど使ってみます(笑)。

③ Chapter 11 で、ボリュームを作ってみたりしました。MODO のボリュームはそのままでレンダリングできますが、Houdini のボリュームはそのままではレンダリングできません。数学的な分布のデータの集合、というところでしょうか?。ソリッドモデルを「isoOffset」ノードでボリュームに変換して、その次に「Scatter」ノードを繋ぐと、ポイントを立体的に作ってくれることを確認しました。グラスの中に入れる氷の中に閉じ込められた気泡が作れそうです。

④ Houdini をちゃんと勉強したいものですが、どうすればよいのでしょうか?。SideFX で仕事をするのが一番手っ取り早いかもしれませんが、採用してくれるわけがありませんですね。はい(笑)。

⑤ 薄膜の虹を作りませんでした。薄膜の虹は、屈折の分散じゃなくって、薄膜の厚さと光の波との干渉によるものなので、ひと味違います。薄膜の分散ができると、ホログラムとホログラフが作れちゃいます。Houdini でホログラムとホログラフを作ることにどれくらい意味があるかは不明です(笑)。でも、3D プリンターでホログラムを出力することができるようになると、俄然超ものすごく重大な意味を持つようになります。