Advent Calendarの17日目に参加です。ボリュームを捻じ曲げる方法です。H19で追加されたVolume Deformer(SOP)を使わない、VOPを使った方法です。そのうち書こうと思ってたらHoudiniの進化で過去の遺物になってしまったかもしれないネタ。Volumeを変形させる方法はいろいろありますが、ここでは私が良く使うVolume Sample(VOP)を用いた方法をシンプルな例を用いて紹介します。SampleFile・・・VolumeDeformSample.hiplc使用バージョンはHoudini19.0431VOPで煙を捻じる[...]
read more
こんなの作ってました。作業画面はこんな。Rebelwayのチュートリアル見返してて、ふと「ちゃんと作ろう」と思って。背景はMegascan。そういえば以前のバージョンにはMistのシェルフがあったけど、今のバージョン(H18)には無いなってると思って調べてみたら、見事に無いなってた。ドキュメントのGas Mist Solverにも今後のバージョンで削除される的なことが書いてありました。Gas Mist Solverはちゃんと理解してなかったけど、なんか好きなノードだったんだけどなぁ。結局Mistに相当する煙は、WhiteWater SourceをもとにP[...]
read more
mib_amb_occlusionとRampノードを使って、オクルージョンを任意のグラデーションで出力する方法でっす。RampノードとSamplerInfoノードを使ってフレネルっぽい効果を出す方法はよくあるので、今回はその変則ということで。レンダリング画像を先に出すとこんな感じ。パッとみ分かりづらいかもだけど、赤や黄色の部分がオクルージョンの効果が強い部分。青や紫はオクルージョンの効果があまりない部分。mib_amb_occlusionのみだと、通常白黒のグラデーションですが、Rampノードを間に挟むことで任意のグラデーションにすることができます。それを何に使[...]
read more
Houdiniノード勉強回。Labs UV Transfer(SOP)UVの転送。以前これについての記事を書いたが、それのすごい版!トポロジが異るジオメトリに対して、いい感じにUVを転送してくれる。ひとまずVDBを介して低解像度ポリゴンを生成して、UVを転送してみるとその制度が分かる。中身をざっと確認してみると、手法的には以前書いた記事の中の、XYZ Distanceを使う手法と基本は同じで、UVのアイランド毎にUV転送を行っています。あとプラスアルファとしてUVの境界部の処理が付いている感じでしょうか。いつのまにこんな便利ノードが、と思うくらい[...]
read more
OSをLinuxに移行しようかな、と思い立って。LinuxディストリビューションはCentOS、Ubuntu、Linux Mintの3つで悩んで、結局Linux Mintを選択しました。マシンは中古のDELL T7600に、グラボGTX 1080tiを載せ替たもの・・・高かった。さてLinuxでnvidiaのグラボを使うと、「起動しない」とか「画面が真っ暗」とかあるそうで、私ももれなくハマりました。以下、行ったインストールの手順。1:LinuxMintのisoをダウンロード公式ページからダウンロード可能。2GBくらい。https://www.linu[...]
read more
Houdini Advent Calendar2016 16日目に参加しました。前回の続きでHoudiniのL-Systemの作例です。Sample011PermiseF-F-F-F-F-F-F-FRule 1F=F--F+F+F+F+F+F+F--FAngle45Generations1Sample012 - Koch_Curve 01コッホ曲線Permise-FRule 1F = F+F-F-F+FAngle90[...]
read more
Houdini studyHoudini study roundI couldn't figure out how to add more control points in Cureve(SOP) later, so I looked into it.The answer is to select the curve, hold down Enter! & Shift, and click!I took the trouble to look it up, but when I looked closely, it was written on[...]
read more
Houdini回。Wrangle(SOP)のVEX例文。メモより抜粋その3。脈絡はないです。あと、時々コードが文字化けしてます。すいません。ローカル変数のマッピングi@test = 0;addvariablename(geoself(), "test", "TEST");自分で作ったアトリビュートをローカル変数として定義する。ここで定義したローカル変数は、このaddvariablenameという関数をサポートしたノードで利用可能らしい。最近の仕様では、あまりローカル変数使わないようになってるんだっけ[...]
read more
前回に引き続き、内積についてです。前回は内積を使って角度を知る方法についてでしたが、今回はベクトルの大きさについてです。内積を上手に使うと、任意のベクトルが別のベクトルに落とす影の大きさを知ることができるのです。・・・なんのこっちゃですかね。初回のトロッコの例で、斜めに押す力(ベクトルa)の中にトロッコを動かす力(ベクトルb)がどれだけ含まれているかを求めました。cosを使って|a|cosθでしたね。この|a|cosθの値を知りたい時にも内積が使える、そういうことです。内積の定義式は、|a||b|cosθでしたね。ここで、ベクトル[...]
read more
久々更新Houdini回。マニュアル読んでて、ちょっとおもしろいなと思ったので。なんでもビューポートに働きかけるDetailアトリビュートがあるそうな。まず、gl_wireframe。float型のアトリビュートで、0以外の値の場合、そのオブジェクトはシーンビューで常にワイヤーフレーム表示になるそうな。やってみた。単純な球体にwrangleでgl_wireframeというDetailアトリビュートを追加。すると、シーンビューがシェーディング表示になっていても、そのオブジェクトはワイヤーフレーム表示になる。へ~もうひ[...]
read more