作成者別アーカイブ: admin

新しいおもちゃ

今日ペットショップに寄って
エルの新しいおもちゃを買ってきた。

2016-07-16_220253

エルにはおもちゃの好みがあるらしく、
買ってきてもほとんど遊ばないケースもある。

今日のは遊んでくれた。

2016-07-16_215755
2016-07-16_215728

 

ただ、飽きるのも結構早い。

2016-07-16_215707

Houdini カールノイズ

http://www.serenelight3d.com/blog55/?p=2806
でノイズについて書いたが、カールノイズが抜けていたので今回検証してみた。

 

カール(curl)とは場(フィールド)を対象とするベクトル解析における「回転」演算を意味する。
Houdiniにおけるカールノイズは、ベクトル場に発散や消失を発生させないような
複数の渦巻き状の流れを作るベクトル場を構成する。

Houdiniでは次の4種類のVEX関数が用意されている。
引数は3次元ベクトルと4次元ベクトルの2つのバージョンがあるが
4次元ベクトルは位置(@P)+時間(@Time)として使用することが多い。

■PerlinノイズベースのCurl
vector curlnoise(vector xyz)
vector curlnoise(vector4 xyzt)

■SimplexノイズベースのCurl
vector curlxnoise(vector xyz)
vector curlxnoise(vector4 xyzt)

このカールノイズを速度ベクトルとして使用した場合には
そのベクトル場に沿いながらポイントが移動することになるが、その際
ポイントが一箇所に溜まったりバラバラに離散したりすることを避けながら
適度に不規則な動きを作ってくれる。

今回はカールノイズを使ってポイントをサーフェイス上で這わせてみた。
(DOP(Flip,POP,Grain等)は使用せずに全てSOP内で行っている)

カールノイズはSDFの-0.1~0のボクセル(サーフェイスの真下付近)だけに仕込んでおく。
SDFの勾配ベクトルと距離情報から、ポイントとサーフェイスのめり込み補正を行い
位置の補正後に近傍ボクセルのカールノイズを参照してポイントを動かしている。

Wrangleで常に重力をかけているので、サーフェイス上を這いながら
落下していく動きを作ることが出来る。

このテクニックで、SOPだけでいわゆる”Cling”ができる。
ポイントの軌道はカールノイズの周波数を変えるだけで簡単に変えることができる。

 

Houdini SOP Curl Noise Frequency test v001 from shuichi sakuma on Vimeo.

 

Houdini SOP Cling & Wetmap test v001 from shuichi sakuma on Vimeo.

Houdini 花火

 

そろそろ花火大会の季節。
ということで今回はHoudiniで花火を作ってみた。

全てSOPだけでフルスクラッチ。

重力加速度、空気抵抗、ポイントからのポイント放出、放出のタイミング制御、
ポイントの寿命・世代の管理、ゴール機能、カラーリング、積分器などは
全てWrangleを使ってVEXで実装した。

DOPを学習する前に
SOPだけで物理法則に従うアニメーションを作っておくと
DOPを理解する上で必ず役に立つと思う。

 

Houdini Fireworks test v001 from shuichi sakuma on Vimeo.

Houdini 画像からの街並モデリング

Houdiniで画像を使用して街並みのモデリングを行ってみた。

今回、素材となる画像を生成するために
専用のアプリケーションを開発した。

cinderというフレームワークを使いC++で実装。
このアプリケーションでは乱数ベースで様々なパターンの通路を自動生成し、
パラメーターを変えることで無限のバリエーションを作ることが出来る。

street2

cinderはWindows上でちょっとしたリアルタイムアプリを作るには
ちょうどいいC++のクラスライブラリ。
cinderはOpenGL、各種IO、音声・画像データ、数学関連の
クラスライブラリが扱いやすく、標準でBoostも入っている。
https://libcinder.org/

 

以下、これらの画像を使ったモデリング結果。
中心となるのはTrace SOP。

 

<パターン1>

city_gray
city_gray_rev_rend

 

<パターン2>

c2
c2_rend

 

<パターン3>

c7
c7_rend

 

隣接している建物は全て別ジオメトリになっているため
それぞれ個別に動かすことができる。
 

Houdini Building Generator test v001 from shuichi sakuma on Vimeo.

 

 

 

 

 

Houdini CHOPによる稲妻表現

HoudiniのCHOPを使って稲妻を作ってみた。

 

Houdini Lightning test v001 from shuichi sakuma on Vimeo.

 

腕と指先のアニメーションはMayaで作成しておき
Alembic経由でHouidniにインポートした。

CHOPは全て結果がグラフ表示されるので理解しやすい。
また、計算も早いため様々なエフェクトで補佐的に使っていけると思う。

Houdini チューブワームテスト1

通常、Mayaにおけるモデリング作業というと
手動でポリゴンの頂点を動かしていくが、
Houdiniではオペレーターを通して
プロシージャルにモデリングを行うことができる。

今回、最初に以下に示すようなポリゴンチューブを用意して
Houdiniの様々なオペレーターやVEXを使って複雑な形状にしてみた。

2016-06-26_210422

Mayaのように頂点を直接手で動かさなくても
Houdiniのプロシージャルシステムを使えば
単純なポリゴンチューブからこんな形状を作ることができる。

2016-06-26_210523

the_warm02

また、Houdiniにおいてはモデリング作業とアニメーション作業に
厳密な境界線はないため、モデリングとアニメーション作業を
並行して行うことも可能になる。

VEXを使ってアニメーションを作ってみた。

Houdini Tube Worm test v001 from shuichi sakuma on Vimeo.

Houdini ノイズ関数

<ノイズ関数についての備忘録>

Houdiniには複数のノイズ関数が用意されているが
その効果の違いを確認するため
振幅、周波数、オフセットパラメータなどを全て同じ値にして
代表的なノイズ関数を比較してみた。

それぞれディスプレイスマッピングのレンダリング画像と
ベクトルフィールドの結果になっている。
(worleyノイズのみ距離を返す関数のためスカラフィールド)

 

ディスプレイスマップのノイズパラメータは
以下のデフォルト値を使用した。
(worleyノイズのみ周波数1に設定)

■周波数:10 10 10
■オフセット:0 0 0
■振幅:1
■粗さ:0.5
■減衰:1
■乱流:5

 

オリジナルの状態(Sphere SOPで作成した球体)

normal

 

 

◆originalperlin noise

originalperlin

originalperlin2

標準的なノイズ関数。
近傍との連続性を維持しながら全体的に均等なノイズがかかる。

 

◆alligator noise

alligatornoise

alligatornoise2

領域ごとにノイズのかかり方に共通性が現れる。
ディスプレイスメントマップではそれが細胞状の隆起となって確認できる。

 

◆simplex noise

simplexnoise

simplexnoise2

ノイズのかかり方は比較的緩やか。
領域によるノイズの変動も小さい。

 

◆sparcecovolusion noise

sparcecovolusionnoise

sparcecovolusionnoise2

領域ごとに特定方向に大きなうねりを作る。
うねりごとの領域面積にはばらつきが見える。
ノイズ関数の中では見た目の変動が一番大きくなる。

 

◆worley noise

worley 2016-06-27_110055

ポアソン分布に従ってばら撒かれたポイントまでの
距離を返す関数であるため、alligator noiseと同様に
領域ごとにノイズのかかり方が異なり、その見た目は細胞状になる。

トマト栽培

ベランダでプチトマトを育てている。

順調に育ってきており、
今朝摘んで食べてみたが甘くて美味しかった。

定年後はトマト農家やりたい。

2016-06-24_070057

2016-06-24_070020