2016年 7月 の記事

Houdini VDBによる移流

SOP内でVDB Advect SOPを使ってポイントを動かしてみた。

 

Houdini VDB Advect test001 from shuichi sakuma on Vimeo.

 

今回のやり方は最初にPointWrangleでポイントごと作成したベクトルアトリビュートを
Volume Wrangle内からポイントクラウドとして読み込んで、近傍ボクセルへ移しておく。

ベクトルフィールドの元となるポイントのアトリビュートは
図のようにサーフェイスの傾斜に沿った下向きのベクトルになっている。
このベクトルは、鉛直下向きのベクトル{0,-1,0}をPolyFrame SOPによって作成した
tangentu、tangentvベクトルに内積計算で投影することで作成した。

2016-07-30_070524

また、VDB Advectによって移流されたポイントがサーフェイスから離れた瞬間に
VDB Advectによるフィールド移流からPoint Wrangleによる重力落下に切り替えている。
よって、今回もDOP系オペレーターは使用せず全てSOPオペレーターで行っている。
今回コリジョン計算はしていないので、100万個以上のポイントでもほぼリアルタイムに近い速度で再生できた。

Volume Wrangle SOPからもポイントクラウドが読めるは自分的には盲点だった。
これができれば、色々なことに応用ができそうだ。

ブラッシング後のエル

毎日朝と夜の2回、エルのブラッシングをしている。

ブラッシング後のエルは満足して
ちょっとおとなしくなる。

写真は夜のブラッシング後。

2016-07-29_213851

2016-07-29_213945

2016-07-29_213921

Houdini SOP Wrangle コンストレイン ver.2

以前作ったSOPコンストレインのver.2

今回のものは球体だけが磁石の役割をするのではなく、
球体に吸着したオブジェクトも次々に磁石になっていくように
VEXを拡張している。

 

Houdini Sop Wrangle constraint v002 from shuichi sakuma on Vimeo.

 

牛のジオメトリをそのまま使うと計算負荷が高すぎるので
牛のバウンディングボックスにスキャッタしたポイントを
吸着の判定に使用している。

銚子旅行

銚子へ旅行へでかけた。

千葉駅から特急。

2016-07-24_171819

 

銚子には定期的に来ているが
銚子の太平洋の海はずっと見ていて飽きない。
近所の埋め立ての海岸とは全く表情が異なる。

2016-07-24_172058 2016-07-24_171848 2016-07-24_171917

 

銚子に来たら海の幸。

今回は鮪が最高に美味しかった。地魚も◎。
このお店は銚子漁港のすぐ目の前にあるお店で
銚子に来たら必ず寄っている。

二人でこの量を食べた。

2016-07-24_171943 2016-07-24_171953 2016-07-24_172004

ロードバイク日和

今日は気温、湿度共に
ロードバイクには最高のコンディションだったので
いつもより長めの距離の40キロ程度を走った。

2016-07-23_193534

 

最近のロードバイクは空気抵抗を少なくしたエアロフレームが流行りなので
自分のロードのような湾曲アームはほとんど見なくなった。
4,5年前のロードの方が色々な形があったような気がする。

2016-07-23_193421

 

ステム、バーテープ、シートは自分に合ったものに変えている。
カスタマイズもロードバイクの楽しさ。
そろそろコンポーネントも変えたいな~

2016-07-23_193459

 

今日も何回食べても飽きないマンゴーパフェを食べた。

2016-07-23_193552

今日は肌寒い一日だった。

気温が下がるとエルは必ず巣に入る。
巣の中は暖かいらしい。

なぜか片腕を出すエル。

2016-07-22_201426 2016-07-22_201335

新しいおもちゃ

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

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.

 

 

 

 

 

TOP