山里ぽん太

Molecular Structure

22 September 2019

山里ぽん太は分子構造を眺めました。


Chapter 1 Molecular Structure
今回は分子を作ります!。
分子ってのは、分数の横棒の上に書いてある数字です。
違います。
分子ってのは、昔学校で化学の授業で習ったあの分子です。
分子を作るって、錬金術みたいなことが、Houdini にできるんでしょうか?(謎)。
大丈夫です!。
Houdini は魔術師です!。
不可能はありません!(おおー)。
と言いたいところですが、さすがに Houdini も、錬金術で分子を錬成することはできません。
というわけで、分子構造の絵を描いてみましょう。
Chapter 2 a Network
というわけで、ネットワークです。
ほとんど VEX で作ります。

Chapter 3 Create a Primitive
というわけで、まずは Primitive を作ります。
VEX の addprim で空っぽの primitive を追加してもいいんですけど、リファレンスにこんなことが書いてあります。

Houdiniのコードでは空っぽのポリゴンを扱えるようにしてはいるものの、その空っぽのポリゴンのせいでおかしな結果になったり不具合を起こす可能性があります。

なので、ジオメトリノードの add を使って、point をひとつだけ追加します。
これで、point がいっこだけの primitive がいっこ作られました。

Chapter 4 add 6 points
次に、分子を構成する原子の位置に point を追加します。
ここでは、正8面体の頂点の位置に point を6つ追加します。
アレです。
ぽん太さんは永遠に買うことができないダイヤモンドの分子の形です。
そして、Chapter 3 で追加した point は、removepoint で削除します。
見やすくするために、point の位置に sphere を Copy to Points しています。

Chapter 5 add 12 polylines
次に、分子構造の頂点を結ぶ poliline を12本引きます。
見やすくするために、polywire で太くしてあります。
むかし、大学の研究室で、MZ-80B を使って、ワイヤフレームのこんな 3D の絵を描いていたことを思い出しました。
遠い目です(笑)。

Chapter 6 add 8 polygons
次に、分子構造の面を張ります。
このときに、point を3つ指定するのですが、法線の方向は、指定した順の回転方向に対して、右ねじ方向になりますので、法線が外側を向くように、右にねじねじします(笑)。
というわけで、できました。

Chapter 7 application 1
というわけで応用です。
これは別に難しくはありません。

Chapter 8 application 2
これも別に難しくないです(笑)。

Chapter 9 application 3
風が渡る草原、ってのを作ろうと思ったのですが、計算時間が短くなるようにしたら、こんな寂しい絵になってしまいました(笑)。
計算もいい加減なことをしています(笑)。

Chapter 10 Wind Blow a Field Grass
というわけで、風が渡る草原、ってのを実用的に作ってみました。
VEX で逐次処理するのではなく、SIMD で計算するように書いてあります。
結果、超速くなりました(笑)。
計算だけでなく、レンダリングまで数倍速くなりました(驚)。
理由はわかりません(笑)。
VIVA !! SIMD !!(笑)。
草原を作る汎用のネットワークはこちらです。

草原に風を吹かせるネットワークはこちらです。

シーンビューはこんなんなります。
これに @width を適用します。

レンダリングした結果はこちらです。

Chapter 10 メモ
① Chapter 10 の絵は、本来は Fur を使うところなのでしょうが、まだ不勉強で、思うように使えません。

② 今回は、分子構造を作っていたはずが、草原の絵になってしまいました(笑)。

③ VEX は強力ですが、逐次処理ではなく、SIMD を使うべし、ということを、今回も実感しました。