Labs Thicken / Voxel Mesh / Measure Curvatureノードについて


こちらの記事では、「Labs Thicken」「Labs Voxel Mesh」「Labs Measure Curvature」ノードの概要および各ノードのパラメーターについてご紹介します。
SideFXLabsツールのノードは、SideFX社のホームページで紹介されています。併せてご覧ください。

SideFXLabsツールのインストール手順

SideFX Labsツールセットのインストール手順については、以下の記事をご参照ください。

Houdiniの内部システムからの直接インストール

Githubからの手動インストール



Labs Thickenとは

平均化された法線に沿ってメッシュを押し出すシンプルヘルパーノードです。

メッシュに厚みを与えるのは、隙間のないものを確実に作る簡単な方法であり、衝突や物理法則で上手く機能します。
しかし、単に PolyExtrude SOP を使用するだけでは、通常はいくつかの欠落があります。複雑なジオメトリがそれ自体でクラッシュすることは、よくありますが、厚みを与えるために何かを両側から押し出す必要がある時は、通常、複数のノードが必要になります。
このノードは、曲線のようなものを取得して、1つのノードで厚みのあるものを生成できるようにするために、他の一般的に使用されるノードを集めたシンプルなものです。

各パラメーターについて

1.Depth
押し出しまでの距離を設定します。

2.Both Directions
外側と内側の押し出しを切り替えます。

3.Dissolve Middle Edge
両方向に押し出す場合は、双方からの半分を繋げるエッジを削除します。

4.Reduce Back Side
内側の面を[Poly Reducing]に切り替えます。メッシュが密集していて厚みが必要な場合、または内側のディテールを考慮しない場合に便利です。

5.Reduction Percentage
内側の面をどれだけ削減するかを設定します。0は可能な限り面を削減することを意味し、100は面を削減しないことを意味します。


Labs Thickenノードの機能

こちらでは、Githubに公開されている[thicken_demoscene.hip]というシーンファイルを使用して、Labs Thickenノードの機能についてご紹介します。
以下のリンクからシーンファイルが保存されている、Github > SideFXLabs > hip にアクセスできます。

https://github.com/sideeffects/SideFXLabs/tree/Development/hip

今回は、Houdini18.0.460を使用しています。最初に、Houdiniを起動してSideFX Labsツールが正常に読み込まれていることを確認します。

thicken_demoscene.hipを展開すると、Stashノードにキャッシュされたジオメトリが表示されていることが確認できます。

Stashノードの下にLabs Thickenノードを接続します。

このノードはとてもシンプルです。Labs Thickenノードを接続して、ディスプレイフラグを付けるだけでジオメトリに厚みが作成されます。

また、Depthパラメーターの数値を大きくすることで厚みを調整することができます。

下の動画では、「Both Directions」「Dissolve Middle Edge」「Reduce Back Side」「Reduction Percentage」パラメーターについてご紹介しています。併せてご覧下さい。

Labs Thickenノードについては以上です。次に、Labs Voxel Meshノードについてご紹介します。



Labs Voxel Meshとは

ポリゴンからVDBを作成し、それをポリゴンに戻すワークフローのショートカットです。

基本的な一連のノードは、VDB From Polygons SOPであり、直後にConvert VDB SOPが接続されています。
これは、メッシュをボリュームに変換して、それからメッシュに戻します。これには、有益な効果があり、この方法で、メッシュの小さな穴を閉じ、新しい均等なトポロジを与えることや内部のジオメトリを削することができます。
Voxel Meshは、フォトグラメトリデータを無効化する際によく使用されますが、これはメッシュ上の小さな欠陥を修正するためです。

■補足:UVは通常、VDBのラウンドトリップ中に破棄されます。元のメッシュからボクセル化されたものにUVを転送する場合は、Labs UV Transferノードを使用します。

※ラウンドトリップ:データを発信して、応答が帰ってくるまでの過程

各パラメーターについて

1.Resolution Preset
解像度用に有用なプリセットとして、数字を扱う代わりに、[Low],[Mid],[High]のプリセットを使用します。

2.Bounding Box Relative
メッシュが1単位であるかのようにボクセル計算を行います。

3.Adaptivity
結果として得られるメッシュのトポロジが均等になるように制御します。Adaptivityの値が高い場合、曲率の高い領域にポリゴンが集中していることを意味し、曲率の低い場合はポリゴンの分布が均等になることを意味します。

4.Dilate/Erode
ボクセルには、拡大および縮小の機能があり、メッシュのより良い侵食と拡大に使用することができます。これは、Peak SOP に似ていますが、ジオメトリがそれ自身にクラッシュしたときに不充分なジオメトリを生成することはありません。
※Peak SOPは、各法線に沿ってプリミティブ、ポイント、エッジ、またはブレークポイントを変換します。

5.Smooth Iterations
一般的な手順は、拡張ステップの後にスムージングすることです。これにより、メッシュ上の問題のある領域が削除されます。

6.Project to Original
必要に応じて、取得したメッシュを元のメッシュにレイで戻します。

7.Post Smooth Iterations
投影ステップは、複数の不具合のあるオーバーラップポリゴンを生成する可能性があります。Post Smooth Iterationsパラメーターは、これらのポリゴンの一部を緩和させることができます。

8.Sharpen Features
ボクセルの間にフィーチャー(特質)が入っている可能性があるため、ボクセル化された場合ジオメトリがソフトになる傾向があります。これによりフィーチャー(特質)が強化され、ハードサーフェスでの使用に役立ちます。

9.Edge Tolerance
Sharpen Featuresパラメーターの切り替えで考慮するエッジの許容値を設定します。


Labs Voxel Meshノードの機能

次に、Labs Voxel Meshノードについてご紹介します。こちらも同様に、Houdini18.0.460を使用しています。
最初にジオメトリネットワーク上でTestgeometry Rubbertoyを作成します。

テストジオメトリの下にLabs Voxel Meshノードを接続します。このノードはとてもシンプルです。ノードを接続するだけで、メッシュをボリュームに変換して、再度メッシュを形成することが可能です。

ここから、Labs Voxel Meshノードの各パラメーターについてご紹介します。
Resolution Presetパラメーターを[Low]、[Mid]、[High]に変更することで、メッシュの解像度を調整することができます。

このノード情報を参照し、[Low]と[High]を比較した場合、Highのポリゴン数はLowのポリゴン数の約400倍であることが確認できます。

下の画像は、Adaptivityパラメーターを調整した結果です。このパラメーターは、数値を変更した場合メッシュのトポロジを均等に制御することができます。数値を大きくすることで、ローポリゴンになることが確認できます。

下画像は、Dilate/Erodeパラメーターを調整した結果です。このノードには、メッシュを拡大、縮小する機能があります。数値を負の値および正の値に調整することで、メッシュをスケーリングすることが可能です(デフォルト値は0です)。

下画像は、Sharpen Featuresパラメーターを有効/無効に切り替えた結果です。このパラメーターをオンにすることで、エッジがシャープになりハードサーフェス等で使用する際に役立ちます。

Labs Voxel Meshノードについては以上です。次に、Labs Measure Curvatureノードについてご紹介します。



Labs Measure Curvatureとは

モデルの曲率に基づいてポイントカラーを生成します。
スキャッタリングやポリリダクションなど、あらゆるタイプの計算に役立ちます。曲率は、基本的なメッシュプロパティの1つであり一般的に便利です。Single Color Valueパラメーターで設定しない限り、デフォルトでは、緑色は凸面を表し、赤色は凹面を表します。

■ご注意:このノードは、新しいMeasure 2.0 SOPの機能をまだ実装していません。


各パラメーターについて

Curvature Values

1.Calculate Per Piece
全体または接続されていない部分の計算を切り替えます。

2.Method
いくつかのアルゴリズムを使用した項目をドロップダウンから指定します(一部はコミュニティユーザーPetz氏によって提供されています)。

3.Voxel Size
ボクセルベースの計算では、ボクセルグリッドのサイズを調整します。

Convex Adjustment

4.Range Scale
強度(Intensity)のコントロールに似ていますが、Contrast/Intensityパラメーターが実行される前に、凸カラーの範囲を乗算します。

5.Contrast
色のコントラストを引き締めます。

6.Intensity
色に対して別の乗数を割り当てます。

7.Blur Amount
オプションのぼかしで色を柔らかくすることができます。

Concave Adjustment

8.Range Scale
強度(Intensity)のコントロールに似ていますが、Contrast/Intensityパラメーターが実行される前に、凹カラーの範囲を乗算します。

9.Contrast
色のコントラストを引き締めます。

10.Intensity
色に対して別の乗数を割り当てます。

11.Blur Amount
オプションのぼかしで色を柔らかくすることができます。

Extra Settings

12.Visualize As Color
パラメータをCdアトリビュートとして出力します。

13.Single Color Value
赤/緑の出力または単一の値を切り替えます。

14.Fit To 0-1
出力を0〜1にクランプ(固定)します。


Labs Measure Curvatureノードの機能

次に、Labs Measure Curvatureノードについてご紹介します。こちらも同様に、Houdini18.0.460を使用しています。
最初に、ジオメトリネットワーク上でTestgeometry Squabを作成します。

次に、シェーダーを削除するためにテストジオメトリの下にAttribute Deleteノードを接続します。Primitive Attributesパラメーターのプルダウンを選択して、[shop_materialpath]を選択します。

パラメーターでshop_materialpathを指定することで、テストジオメトリのシェーダーが削除されたことが確認できます。

次に、Attribute Deleteノードの下にLabs Measure Curvartureノードを接続します。ディスプレイフラグを付けるとポイントカラーが生成され、ジオメトリに色が割り当てられたことが確認できます。

ここからは各パラメーターについてご紹介します。
Convex Adjustment > Range Scaleの数値を高くすることで、凸面に割り当てられる緑色を強くすることができます。
■補足:これは、Intensityパラメーターに似ていますが、Range Scaleパラメーターを最初に調整することで、Contrast及びIntensityパラメーターの設定し易くなります。

下画像は、Concave Adjustment > Range Scaleを調整した結果です。
このパラメーターの数値を大きくすることで、凹面に割り当てられる赤色を強くすることができます。

下画像は、Visualize As ColorとSingle Color Valueパラメーターの有効/無効を切り替えた結果です。Visualize As Colorパラメーターをオンにすることでカラー表示を行い、Single Color Valueパラメーターをオンにすることで単一色で表示されます。

また下の動画では、Convex AdjustmentおよびConcave Adjustmentの[Intensity]、[Contrast]、[Blur Amount]パラメーターについてご紹介しています。併せて、ご覧下さい。

「Labs Thicken」「Labs Voxel Mesh」「Labs Measure Curvarture」ノードについては以上です。

これらのノードを使用することで、「メッシュに厚みを付ける」ことや「ポリゴンからVDBに変換し、再度ポリゴンへ変換する場合」や「モデルの曲率に基づいたポイントカラーの生成」など、Labsツールを使用することで容易に作業を行うことが出来ます。