Houdini 18 SOP No.25 “Cross Section Surface SOP”


~“Cross Section Surface SOP”~

前回に引き続きHoudini18.0のSOPノードの解説を行います。
今回のノードは新しく追加されたものではなく、機能が追加されたノードになります。
前回の記事をご覧になられていない方はこちらからご覧ください。

※本記事ではHoudini 18.0.460を使用しています。

今回はCross Section Surface SOPについて説明していきます。

 

Cross Section Surface SOP

このノードは、Houdini 18.0にアップデートされた際に新しく追加されたノードとなります。
このノードの機能は、複数の断面を通過するグリッド、チューブ、ドーナツ形状のトポロジーを持ったサーフェスを作成するものです。 
この機能は、「Sweep SOP」ノードの第二入力のみを利用した物と同じ機能になります。そのため、「Sweep SOP」と同様の機能・設定項目があります。

では詳しく説明していきます。

まずはパラメータを確認します。

パラメータは下の画像のようになっています。

このパラメータは全て「Sweep SOP」と共通するパラメータとなります。

下の画像が共通するパラメータの場所となります。

このように全てのパラメータが共通しています。

 

ではパラメータの具体的な説明を行います。

まず初めにジオメトリを操作するパラメータについて説明します。

「Reverse Cross Sections」
 有効にすることでポリゴンの向きを反転させることができます。

「End Cap Type」
 変更することによってポリゴンの端を閉じることができます。
(デフォルトでは「None」になっているのでポリゴンの端は閉じられません)
このプルダウンは
「None」
 端は閉じられません。
「Single Polygon」
 単一ポリゴンで端を閉じます。
「Grid」
 ドーム状のポリゴンで端を閉じます。
「Side Single Polygon」
 入力されたエッジが開いている際は作成されるサーフェスの側面が閉じられません。

各設定の結果は下の画像のようになります。

このように、ジオメトリの端の面を閉じることができます。

「Surface Type」はアウトプットのモデルを変更することができます。

今回は下の画像のような断面ジオメトリを用いて説明します。

下の画像が実際にアウトプットした際の結果になります。
(今回は「End Cap Type」を“Grid”に変更しています)

「Primitive Type」はアウトプットするジオメトリの種類を変更することができます。

このパラメータも「Sweep SOP」と同様に“Automatic”を選択した場合は入力されたジオメトリの種類を参照してアウトプットするジオメトリのタイプを設定します。

各プルダウンのアウトプットは下の画像となります。

それ以外の3つトグルは「Ensure Unique Seam Vertices」、「Swap Rows and Columns」、「Close Implicit Backbone Curve if No Curve Input」になり、これらも「Sweep SOP」と共通になります。

各設定は以下のようになります。

「Ensure Unique Seam Vertices」
 「Surface Type」 が “Rows”、“Columns”、“Rows and Columns” のどれかで、「Revolve Type」 が “Closed” または“Closed Arc”、もしくは入力カーブが閉じている場合、パラメトリックカーブのUV座標値で0と1が存在するように頂点を分けるために、各カーブに余分に頂点を追加します。
「Primitive Type」が“Polygon Soup” 、“NURBS Surface ”、“Bezier Surface” 、“Bilinear Mesh” の場合、UVシームが正しく生成するのに必要となる頂点を余分に追加します。

「Swap Rows and Columns」
有効にすると、グリッド内のポイントとプリミティブの並びを、横並び順の行優先から、縦並び順の列優先になるように変更します。 これを切り替えると法線も逆になります。

「Close Implicit Backbone Curve if No Curve Input」
 第一入力にカーブが入力されていなかった場合、断面毎に1個の原点位置の頂点を持った単一曲線があると仮定して断面ジオメトリをスイープします。

以上がジオメトリ関係のパラメータとなります。

 

では次にUV関係のパラメータについて説明します。

このパラメータも「Sweep SOP」と共通になります。しかし、名前等で異なる点があります。「Sweep SOP」パラメータは「Revolve SOP」と共通していました。では、「Revolve SOP」と「Cross Section Surface SOP」のパラメータを比較します。

各パラメータを比較したものが下の画像となります。

左のパラメータの黄枠以外すべて共通しています。

ではこのパラメータについて説明します。

「Compute UVs」
 有効にすると、以下で説明するパラメータを有効にし、uvVertexアトリビュートを生成します。 U座標は、入力カーブのパラメトリック座標に相当し、V座標は、回転軸のパラメトリック座標に相当します。
  Surface Type が Points の時、これはuvPointアトリビュートになります。

「Override Any Existing UVs 」
 有効にすると、既存のuvVertexアトリビュートに新規のuvVertexアトリビュートを上書きします。

「Length-Weighted UVs」
 有効にすると、他のエッジを基準に、該当するエッジ長によって、UとVの座標の距離がスケールされます。

「Normalize Computed Us」
 有効にすると、U座標が0から1の範囲に収まるようにスケーリングされます。
 無効にすると、Uはメッシュ上の断面に沿った平均距離にスケーリングされます。
 下の画像が有効になっている場合と無効になっている場合のUVの比較となります。

「Normalize Computed Vs」
 有効にすると、V座標が0から1の範囲に収まるようにスケールされます。 
 無効にすると、Vはメッシュ上のV方向に沿った平均距離または入力されたカーブに沿った距離にスケールされます。

「Make Computed Us Wrap Seamlessly」
 Normalize Computed Us が無効でこのトグルが有効な時、テクスチャがU方向で正しく循環するように、Uの範囲が一番近いプラスの整数値にスケールされます。    
 Normalize Computed Us と Normalize Computed Vs の両方が無効であれば、 UV Scale は小さなジオメトリに対してスケールを指定することができます。 

「Make Computed Vs Wrap Seamlessly」
 Normalize Computed Vs が無効でこのトグルが有効な時、テクスチャがV方向で正しく循環するように、Vの範囲が一番近いプラスの整数値にスケールされます。
 これは、 Normalize Computed Us と Normalize Computed Vs が両方とも無効の場合、 UV Scale は小さなジオメトリに対してスケールを指定することができます。 

「Use Max Cross Section Length for Proportional Scale」
 Normalize Computed Us が有効で、Normalize Computed Vs が無効な場合、Vエッジ毎にそのエッジの前のエッジと次のエッジの断面サイズの平均の代わりに、最大断面サイズをVスケールの計算に使用します。 
断面サイズが大きく変わる場合は、テクスチャの一部が伸びたような見た目になってしますが、Vスケールの不安定さと不整合を回避することができます。 

「Flip Computed Us」
 これを有効にすると、計算されたU値がmax-uに変換され、テクスチャが裏返しになるのを回避します。 前面から見た際にテクスチャをサーフェス上に正しく表示するには、これを有効にする必要があります。
  背面から見た際にテクスチャをサーフェス上に正しく表示するには、これを無効にする必要があります。

「UV Scale」
生成されるUV座標に対してスケールを変更することができます。 

以上がCross Section Surface SOPの説明となります。

 

このノードは説明したようにSweep SOPの第二入力の機能を扱うことのできるノードとなります。断面形状を利用したジオメトリの作成を行うことができるようになります。

 

こちらの記事のhipファイルが以下のURLからダウンロードできますので興味のある方はご確認ください。
https://www.dropbox.com/sh/b2hgoq7rcic9mxl/AADuj9B50EF3ks5Hd-W8yO98a?dl=0