SideFX Labs Edge Damage SOPとLabs Mesh Sharpen SOP


こちらの記事では、Labs Edge Damage SOPとLabs Mesh Sharpen SOPについて解説します。


▼記事で紹介している内容
1. Labs Edge Damage SOPについて
2. Labs Mesh Sharpen SOPについて
3. Labs Edge Damage SOPとLabs Mesh Sharpen SOPを使用したシーンの作成


▼サンプルファイルについて
こちらの記事では、サンプルファイルを配布しています。ファイルは、下記のリンクからダウンロードすることができます。

https://houdinifx.jp/trdata/HIPShare.zip

※本記事では、Houdini19.0.383、SideFXLabs19.0.383 を使用しています。



Labs Edge Damage SOP

最初に、Labs Edge Damage SOPの概要や各パラメーターについて、紹介します。

Labs Edge Damage SOPとは

Labs Edge Damage SOPは、入力されたジオメトリにプロシージャルなダメージを生成します。ダメージのメソッドを変えることでダメージの付き方が変化します。

各入出力の項目については以下の通りです。

①入力
ジオメトリを入力します。

②出力
ダメージが追加された入力ジオメトリを出力します。

各パラメーターについて

こちらのノードでは、ダメージを与えるメソッドとして「VDB」「Boolean」「Colors」メソッドの3つの種類があります。

VDBとBooleanは、同じパラメータが表示されますが、Colorsのみ一部パラメータの種類が異なります。こちらの記事では「VDBとBoolean」、「Colors」に分けて各パラメータをご紹介します。

①Method
ダメージを生成する方法を変更します。VDB、Boolean、Colorsの3種類から選択します。

②Visualize Damage
ダメージが加えられた箇所を赤色で表示し、視覚的にダメージを分かりやすく表示します。

③Seed
ダメージのバリエーションを変更します。

④Mask Attribute
アトリビュートを使用してダメージを与えない箇所を指定します。


VDB / Booleanメソッド

【Damage Controls】
この項目では、生成されるダメージの内容を制御します。

①Amount
ハードエッジ上に生成されるダメージの量を変更します。

②Resolition
解像度の度合いを設定します。これはダメージを生成する為に使用されます。

③Process Input
チェック項目を有効にすると、ダメージが生成される前にメッシュを整理します。

④Direction
生成されるダメージの向きを設定します。正の値ではダメージ箇所が盛り上がるような挙動になり、負の値では削られたような挙動になります。この項目はVDBメソッドで有効になります。

⑤Mask Strength
ダメージ生成に使用するマスクの強度を制御します。この項目はVDBメソッドで有効になります。

⑥Cusp Angle
ダメージが生成された領域の頂点の法線を計算する際に使用される角度を設定します。この項目はBooleanメソッドで有効になります。



【Voxelization】
この項目ではボクセル関係のパラメーターを制御します。

⑦Voxelize
チェック項目を有効にすると、入力されたジオメトリのボクセル化を有効にします。

⑧Voxel Size
ボクセルの大きさを設定します。値を低くするほど計算時間が増えますが、ダメージの品質が上がります。この項目はVDBメソッドで有効になります。

⑨Smoothing Iterations
ボクセルをジオメトリに変換する際、変換する前にボクセルを滑らかにする度合を設定します。この項目はVDBメソッドで有効になります。

⑩Per Piece
入力されたジオメトリが複数ある場合、チェック項目を有効にすると別々にボクセル化を行います。こちらの項目はColorsメソッドのみ有効になります。

⑪Create Piece Attribute
チェックを有効にすることで、下の”Piece Attribute”パラメータで設定されているnameアトリビュートを作成します。

⑫Piece Attribute
入力されたジオメトリに対してnameアトリビュートを設定します。
(入力された複数のジオメトリを単一のジオメトリとして処理するため、ループ処理ですべてのジオメトリのPrimitiveに”surface”という名前を設定します。)

⑬Union
チェック項目を有効にすると、ボクセル化を行う前にブーリアン演算処理を行います。


【Noise】
この項目では、ダメージ生成に使用されるノイズについて変更を加えます。

⑭Noise
チェック項目を有効にすると、曲率値にノイズが加えられ生成されるダメージの挙動が変化します。

⑮Center Noise
チェック項目を有効にすると、ノイズ値が0を基準にしたものとなり、0付近に集中します。

⑯Height
ノイズの強さを制御します。

⑰Element Size
ノイズの大きさを制御します。

⑱Noise Type
ノイズの種類を変更することができます。

⑲Roughness
ノイズの粗さを制御します。


【Post Processing】
この項目では、ダメージが生成された後の処理を制御します。

⑳Post Blur
生成されたダメージのぼかし度合いを制御します。

㉑Normal
出力されるジオメトリの頂点の法線を計算する際に使用される角度を設定します。

㉒Extract Largest Piece
入力ジオメトリが複数のパーツで構成されている場合、最も面積の大きいパーツのみ残します。


Colorsメソッド

【Damage Controls】
この項目では、生成されるダメージの内容を制御します。

①Amount
ハードエッジ上に生成されるダメージの量を変更します。

②Resolition
解像度の度合いを設定します。これはダメージを生成する為に使用されます。この項目はVDB・Booleanメソッドで有効になります。

③Samples
平滑化を行うエッジ上の範囲を制御します。
(内部的には、Cdアトリビュートをマッピングする閾値を制御しています。)

④Relax
入力されたジオメトリのエッジにブラーを適用し、平滑化を行います。
(内部的には、Cdアトリビュートをマッピングする閾値を制御しています。)

⑤Curvature Tolerance
ダメージが生成される曲率値の許容点を制御します。

⑥Contrast
入力されたジオメトリのエッジの強調度合いを制御します。

⑦Brightness
Contrastパラメータに対する乗数を制御します。

⑧Ramp
ランプパラメーターを使用して曲率の値を制御します。


【Voxelization】
この項目ではボクセル関係のパラメーターを制御します。

⑨Voxelize
チェック項目を有効にすると、入力されたジオメトリのボクセル化を有効にします。

⑩Voxel Size
ボクセルの大きさを設定します。値を低くするほど計算時間が増えますが、ダメージの品質が上がります。

⑪Smoothing Iterations
ボクセルをジオメトリに変換する際、変換する前にボクセルを滑らかにする度合を設定します。

⑫Per Piece
入力されたジオメトリが複数ある場合、チェック項目を有効にすると別々にボクセル化を行います。こちらの項目はColorsメソッドのみ有効になります。

⑬Create Piece Attribute
チェックを有効にすることで、下の”Piece Attribute”パラメータで設定されているnameアトリビュートを作成します。

⑭Piece Attribute
入力されたジオメトリに対してnameアトリビュートを設定します。
(入力された複数のジオメトリを単一のジオメトリとして処理するため、ループ処理ですべてのジオメトリのPrimitiveに”surface”という名前を設定します。)

⑮Union
チェック項目を有効にすると、ボクセル化を行う前にブーリアン演算処理を行います。


【Displacement】
この項目では、ダメージを加えた箇所の凹凸具合を制御します。

⑯Displacement
チェック項目を有効にすると、曲率値に基づいてダメージを加えた箇所のメッシュを凹凸に変形させることができるようになります。

⑰Amount
[16.Displacement]の効果量を制御します。

⑱Blur
ダメージを加えた箇所のエッジをぼかして滑らかにする度合いを制御します。

⑲Blur Range
[18.Blur]でエッジのぼかしを適用する影響範囲を制御します。

⑳Sharpen
ダメージを受けたジオメトリに対して、鋭角化を適用したモデルと適用していないモデルを混ぜ合わせます。

㉑Sharpening Iterations
ジオメトリを鋭角化させるために鋭角化を適用させる回数を制御します。


【Noise】
この項目では、ダメージ生成に使用されるノイズについて変更を加えます。

㉒Noise
チェック項目を有効にすると、曲率値にノイズが加えられ生成されるダメージの挙動が変化します。

㉓Center Noise
チェック項目を有効にすると、ノイズ値が0を基準にしたものとなり、0付近に集中します。

㉔Height
ノイズの強さを制御します。

㉕Element Size
ノイズの大きさを制御します。

㉖Noise Type
ノイズの種類を変更することができます。

㉗Roughness
ノイズの粗さを制御します。

㉘Post Blur
生成されたダメージのぼかし度合いを制御します。

㉙Normal
出力されるジオメトリの頂点の法線を計算する際に使用される角度を設定します。

㉚Extract Largest Piece
入力ジオメトリが複数のパーツで構成されている場合、最も面積の大きいパーツのみ残します。



Labs Edge Damage SOPの使用方法

ここからは、Labs Edge Damage SOPの使用方法について、簡単にご紹介します。

Labs Edge Damage SOPにダメージを与えたいジオメトリを接続します。デフォルトの値で既にある程度ダメージ表現が出る設定になっているため、自分の好みのダメージになるように各パラメーターを調整します。

【ご注意】下画像のように面が裏返っている箇所がある場合、正しく計算処理されないことがあります。

ダメージの挙動が正常に動作しない場合は、面の法線を確認することをお勧めします。

Labs Edge Damage SOPの使用については、以上です。



Labs Mesh Sharpen SOPについて

次に、Labs Mesh Sharpen SOPの概要や各パラメーターについて、ご紹介します。

Labs Mesh Sharpen SOPとは

Labs Mesh Sharpen SOPは、入力されたメッシュ上の曲率に基づいて鋭角化を行うことで、ジオメトリをシャープにします。この処理を行った際にジオメトリの体積が少し失われてしまいますが、平滑化を行うパラメーターを調整する事である程度鋭角化を維持しながら復元することができます。


各入出力の項目については以下の通りです。
①入力
ジオメトリを入力します。

②出力
メッシュに効果が適用されたオブジェクトを出力します。


各パラメーターについて

【Sharpening】
この項目では、メッシュを鋭角化させるパラメーターを制御します。

①Step Size
ジオメトリをシャープにする割合を制御します。値が0.5より大きい場合は動作が不安定になります。

②Iterations
ジオメトリを鋭角化させるために鋭角化を適用させる回数を制御します。

③Pin Borders
チェック項目を有効にすると、半球などの面が閉じられていない境界部分をそのまま維持します。


【Smoothing】
この項目では、メッシュを平滑化させるパラメーターを制御します。

④Iterations
ジオメトリを平滑化させるために平滑化を適用させる回数を制御します。

⑤Step Size
各反復毎の平滑化の割合を制御します。

⑥Use OpenCL
チェック項目を有効にすると、平滑化を行う際にOpenCLを使用します。無効にすることで少し処理が遅くなる代わりにVEXを使用します。

⑦Curvature Type
曲率の計算に使用するメソッドを変更することができます。

⑧Make Scale Independent
チェック項目を有効にすると、計算された曲率がメッシュの大きさに依存しないようになります。

⑨Curvature Exponent
鋭角化させる際に曲率に適用される値を制御します。値が大きいほど曲率の高い領域が優先的に鋭角化されます。


Labs Mesh Sharpen SOPの使用方法

ここからは、Labs Mesh Sharpen SOPの使用方法についてご紹介します。

曲面のあるジオメトリをLabs Mesh Sharpen SOPの入力に接続します。

好みの効果を得られるようにLabs Mesh Sharpen SOPのパラメーターを調整します。

Labs Mesh Sharpen SOPの使用については、以上です。



Labs Edge Damage SOPとLabs Mesh Sharpen SOPを使用したシーンの作成

最後に、Labs Edge Damage SOPとLabs Mesh Sharpen SOPの使用例を簡単にご紹介します。

下画像は、事前に作成した崖のオブジェクトです。
この崖のオブジェクトには、ノイズによって全体的にジャギーが出ていることが確認できます。

このような場合、Labs Mesh Sharpen SOPを適用することで、メッシュを平滑化することができます。

下画像は、Labs Mesh Sharpen SOPを適用した結果です。
全体的にジャギーが際立っていた部分が、Labs Mesh Sharpen SOPを適用することで表面が滑らかになったことが分かります。

次に、Labs Mesh Sharpen SOPを使用した例を紹介します。
こちらも事前に用意した通路のような鉄の鋼板に対して、Labs Edge Damage SOPを適用します。

鉄の鋼板にLabs Edge Damage SOPを適用することで、断面の部分にダメージを簡単に追加することができました。

このように、Labsツールを用いることで、簡単にメッシュの表面を滑らかにしたり、ダメージのような表現を追加してバリエーションを作成することができます。


最後に、こちらでは、Labs Edge Damage SOPを適用した「崖のオブジェクト」とLabs Mesh Sharpen SOPを適用した「通路のようなオブジェクト」を組み合わせて、下画像のようなシーンを作成しました。

こちらのHipファイルは、下記のリンクからダウンロードすることができます。

https://houdinifx.jp/trdata/HIPShare.zip

Labs Edge Damage SOPとLabs Mesh Sharpen SOPの紹介は以上です。
今後の学習に是非ご活用ください!