Houdini Recipe:Wrangle Memo 01
VEX sentence of Wrangle. Global Varialbles that frequently used Attribute read and write Add Point […]
FBrenderというファイルを変更すると、レンダリング時の出力先のプリセットを追加変更することができる。以前書いたFBresと同様、Houdini起動時に環境変数HOUDINI_PATHで指定されたパスにあるOPmenuファイルを参照します(たぶん)HOUDINI_PATHが設定されていなければ、$HOME/houdinixx.xを参照します(たぶん)参照先のパスに、OPmenuファイルがない場合は、"Opmenu"ファイルを作成して中身書きます(拡張子なし)$HHにファイルフォーマットの参考があります。ためしに、$HHにあるFBrenderを開いてみ[...]
read more
Let's start where we left off last time●BumpThe bump input accepts a shader that perturbs the normal for bump mapping.Use is possible at mia_material_x and mia_material_x_passes.Overall BumpThere is no influence of "No Diffuse Bump".Standard BumpThere is influence of "No Diffus[...]
read more
今回は"WriteToColorBuffer"ノードについて書くことにしました。MayaでPass出力する場合、避けては通れないノードですね。意外と長くなりそうなので、何回かに分けるつもりです。このノード、ひとことで言うと『自分で任意のカラーPassを作成することの出来るノード』です。各Attributeの説明はひとまず置いておくとして、実際の使い方を簡単にやってみたいと思います。例によってMayaは2012の英語版。サンプルシーンは下のようなもので、Materialはmia_material_x_passesに環境マップをコネクトしただけのシンプルなものです。[...]
read more
mib_amb_occlusionとRampノードを使って、オクルージョンを任意のグラデーションで出力する方法でっす。RampノードとSamplerInfoノードを使ってフレネルっぽい効果を出す方法はよくあるので、今回はその変則ということで。レンダリング画像を先に出すとこんな感じ。パッとみ分かりづらいかもだけど、赤や黄色の部分がオクルージョンの効果が強い部分。青や紫はオクルージョンの効果があまりない部分。mib_amb_occlusionのみだと、通常白黒のグラデーションですが、Rampノードを間に挟むことで任意のグラデーションにすることができます。それを何に使[...]
read more
今回は『mip_cameramap』のアトリビュートについて調べてみました。このノードはカメラから見たプロジェクションマップを実現するノード、とで言いましょうか。bent_normalの回ではmip_matteshadowと併用して、簡易背景を作るのに使ったりしました。せっかくなので、bent_normalで使ったシーンファイル↓を元に確認していきたいと思います。HyperShadeはこんな感じ↓cameramapを使ってHDR画像を貼り付け、mip_matteShadowで影をキャッチ、その結果をSurfaceShacerに渡すといったことをしてます。案外[...]
read more
Houdiniノード勉強回。Labs UV Transfer(SOP)UVの転送。以前これについての記事を書いたが、それのすごい版!トポロジが異るジオメトリに対して、いい感じにUVを転送してくれる。ひとまずVDBを介して低解像度ポリゴンを生成して、UVを転送してみるとその制度が分かる。中身をざっと確認してみると、手法的には以前書いた記事の中の、XYZ Distanceを使う手法と基本は同じで、UVのアイランド毎にUV転送を行っています。あとプラスアルファとしてUVの境界部の処理が付いている感じでしょうか。いつのまにこんな便利ノードが、と思うくらい[...]
read more
Houdiniメモ。カメラクリップのWrangleを書くのが面倒なので、コピーできるようにココに書いておく。vector _ndc = toNDC("/obj/cam1", @P);float _ox=ch("ox");float _oy=ch("oy");float _oz=ch("oz");if ((_ndc>1+_ox)) removepoint(geoself(), @ptnum); if ((_ndc>1+_oy)) removepoint(ge[...]
read more
Houdini回。Wrangle(SOP)のVEX例文。メモより抜粋その3。脈絡はないです。あと、時々コードが文字化けしてます。すいません。ローカル変数のマッピングi@test = 0;addvariablename(geoself(), "test", "TEST");自分で作ったアトリビュートをローカル変数として定義する。ここで定義したローカル変数は、このaddvariablenameという関数をサポートしたノードで利用可能らしい。最近の仕様では、あまりローカル変数使わないようになってるんだっけ[...]
read more
夜な夜なこんなのを作ってました。この記事はこんなの作ったよ~、くらいの内容です。悪しからず。破片の置換の応用です。「形が似てるなら、ポリゴン以外も置換できるな」とふと思い、手始めに煙で作ってみた次第です。以下、ネットワーク抜粋です。手順は以下の通り。A:煙のSIM読み込みB:煙にリタイムをかけて、箱を満たした辺りでストップするC:煙にNameアトリビュート(point)を付与。このNameは、"D"工程のNameと一致させておく。D:箱を落とすシミュレーションする。(Packed)E:煙の位置を箱の位置と一致させる。F:箱と煙を置[...]
read more
Twitterで流れてたgifが面白かったので、Houdiniでマネして作ってみた。2つの形状をブレンドして、変形の際にJiggleを適応したもの。Jiggleについてはこっちの記事でサンプルファイルをアップしています。反省点としては、作り方とネットワークが力技だったなぁ、と。形状大きさ間隔速度に依存しないスマートな作り方ができたはずだ、と。いずれリベンジを、と。[...]
read moreVEX sentence of Wrangle. Global Varialbles that frequently used Attribute read and write Add Point […]