AN:Instancing Material

オブジェクトとマテリアルをそれぞれインスタンスして、マテリアルのアトリビュートを書き換え&適用。この場合オブジェクトはObject Instancerノードにて”Deep Copy”でインスタンス化する必要があります。

BlenderではマテリアルはMeshデータにリンクされています。オブジェクトのインスタンス化とはトランスフォーム値のみ複製しMeshデータを共有する、つまりMeshに紐づいたマテリアル割り当て情報も共有された状態になってしまいます。Deep CopyをするとMeshデータは共有されなくなります。「インスタンス」じゃなくて名の通り「コピー」です(メモリの消費も増えます)。これで個別にマテリアルの割り当てが可能になります。

MayaのShading Group(Shading Engine)を介して割り当てる方式がいいなあ。


Marching Squares

Animation Nodes + Extra NodeにMarching Squareノードが実装されました。

New Marching Squares and Texture Falloff nodes in Animation Nodes for Blender – Tutorial[youtube.com]

マーチングキューブの2D版ですね。FallOffノードの等位線を可視化するものです。

上は500×500グリッドで50のThreshold値を評価したもの。重いです。Texture FallOffを使うならDisplacementをかけたメッシュを水平にスライスしても似たような事は出来ますね、アホなことした…。

heightマップはterrain.partyより取得しました。

ちなみに、Animation Nodes + Extra Node(Win)の最新ビルドは、Downloadボタンから手に入れます。「Download the LTS release of AN+EN for Win OS」のリンクは長期サポートで、最新機能は取り込まれていません。


Particle System on A-Frame

前回(Vertices of icosphere)の続き~。前回はthree.jsでしたが今回はA-Frameのコンポーネントととして。中身はthree.jsですが

aframe-sprite-particles-componentなど、バリエーション豊かなコンポーネントはたくさん見つかりますが、細かいコントロールが出来ず結局スクラッチで作ってみる事に。

THREE.Pointsで何万パーティクルと動かしてみましたがスマホでも60fpsで動くんですね。


Vertices of icosphere

Icosphere(polyhedron?)の頂点が欲しくて生成するプログラムを探してたところ有りました。

Fast Icosphere Mesh

これを丸ごとコピーしてthree.jsで描画してみました。

Three.jsに「IcosahedronBufferGeometry」があってこれでも多面体の生成は可能ですが頂点が共有されておらず、正二十面体なら頂点12のところ60になってしまうので使えませんでした。

まるごとコピーは後ろめたいな…。完成版はnpmパッケージでISCライセンスで公開されているので問題は無いんでしょうけど。

今回のソースはデモから確認してください、JavascriptはHTMLに直書きです。

ところで、オリジナルのコードを記載してるObservableってサービスはなんだろ?Jupyter NotebookのJavascript版かな?