SuiTechLog

Unity,Arduino,RaspberryPiなど、モノづくり系を気ままに書き残すブログ。

Houdini Tips


ハニカム

RemeshSop等をかけてすべて三角ポリにしてから、DivideSOPで三角ポリをハニカム化できます。

DivideSopのComputeDualのチェックはONにしてください。

 

TIMESHIFTノードで計算軽量化

 

TImeShiftでフレームを固定することで、上流の計算を1Fだけしてその結果を固定することができます。毎フレーム計算する必要がないものはTIMESHIFTで固定しちゃってもいいかもしれません。

 

measureSOPでPrimitiveの面積を測る

 primitiveの面積を比較して消去したりするときにはmesureSOPが使えます。TypeをAreaにするとPrimitiveアトリビュートにArea(面積)が追加されます。

 

なおmeasureSOPには、以下の計測処理があるようです。

Area:プリミティブの面積を返す(値はprimitiveに格納)

Perimeter : 外周長 プリミティブの外周長を返す(値はprimitiveに格納)

Curvature : 曲率 ポイント部分の曲がり具合(曲率)を返す(値はPointに格納)

Volume  : 体積 プリミティブとCenterで指定された点を頂点とするピラミッドの体積を返す(値はprimitiveに格納)

 

ちなみに面を消すときは以下で消えます

if( @area<0.1){
removeprim(geoself(), @primnum, 1);
}

BOXノードの第二引数


第二引数にオブジェクトを指定すると、そのオブジェクトを囲むように
BOXが生成されます。


グループノードの第二引数


グループノードの第二引数に適当なオブジェクトを指定してKeep in Bounding Regionsにチェックをいれると、そのオブジェクトの内側にある第一引数のポイントや面をグループ化することができます。
つまり、第一引数にGRID、第二引数にBoxとか指定するとBoxの内側のGRIDのポイントだけがグループ化できるみたいです。とっても便利。

 

砕いたりバラバラになったオブジェクトにそれぞれ名前をつける

 

assembleSOPを使います。Create Packed GeometryにチェックをいれるとPack化されます。Pack化すると、破片オブジェクトがそれぞれポイント扱いになります。つまり、破片オブジェクト1が10のポイントからできていたとしても、重心の1つのポイントで扱うことになって、計算速度が向上します。ちなみにこのままでは見掛け上形状をそれぞれをいじることができなくなるので、その場合はunpackでオブジェクトを元の構成にもどします。