見出し画像

Houdini Copernicus ジオメトリから情報を取得する

前回の記事で、Copernicus の Tile Patternノードには回転やスケールを画像などで明確に定義する手段がないと書きました。
おそらくそのような設計になっているのは、Tile Patternはあくまでも簡易的にランダムにするものであり、そもそもHoudiniであればSOPの機能を使って自由に配置を行えるから、なのだと思います。
(Substance Designerのように画像を使って向きを制御するほうがよっぽど特殊だというのとも忘れてはいけません…)
今回はCopernicusでSOPから情報を取得する方法について書いてみます。

SOP Import + Rasterrize Geometry

COPでSOPの情報を扱うには、COP内にSOP Importを作成し、rasterize Geometryで必要な情報を取得するのが簡単です。

COP内にSOP Importを作成

rasterize GeometryにはプリセットでAlphaやPositionが入っていますが、SOPの持つアトリビュートであればある程度、何でも持ってこれます。
ラスタライズした時点で、float、2~4Vecter、Integerなどのoutput Typeの指定が必要なので、(UVが2vecter、IDがIntegerです)アトリビュートと、このOutputTypeが一致している必要があります。

rasterize Geometryで様々なアトリビュートをベイクできる

SOPのネットワーク

SOP importの中身を見てみましょう。
配置パターンに癖が欲しかったので、中心付近が小さくなるようにVEXでpscaleを制御しています。
またenumerateでIntegerのIDというアトリビュートを作成しています。これはCOPでIDとして使用します。
本題には関係ないですが、シームレスパターンになるように配置するために、LabsのMesh Tilerを使用しています。また、石の形を作るためにLabsのMesh Sharpenも使用しています。どちらも非常に便利ですね…!
ちなみにSOPのネットワークはpackしたままではベイクできないので、unpackしておきましょう。

SOPのネットワーク

ラスタライズした結果は様々な使い道があります。Pは奥行きも持っているので、Channel Splitでblueチャンネルだけ取り出してUV空間の深度だけにすることもできます。

一見わかりにくいが奥行き情報も持っている

IDも非常に便利です。
IDからランダムな色を作成したり、IDがそれぞれ収まるようなUVを作成する事もできます。

IDは便利なのでぜひ出力しておこう

マスク画像からSDFを作成

IDやモノクロのマスクからSDFを作成することもできます。
ちなみにラスタライズする際は、デフォルトではZフロントの2*2に収まっている必要がありますが、rasterize Setupノードを使うことで、ベイクの大きさや向きを自由に設定できます。

ブタさんを円をブレンド

この記事が気に入ったらサポートをしてみませんか?