On this page |
このノードは、入力ポリゴンサーフェス(これはノードの片方または両方の入力に接続することができます)を受け取り、 Catmull-Clarkサブディビジョンアルゴリズムで各フェースを分割して、ポリゴンサーフェスを平滑化します。 これは、サーフェス全体または一部を分割して、局所的にディテールを加える(特にポリゴンモデルでよく起こる角が目立ったモデルを回避するのに役に立ちます)ことができるという点では、Pasteノードと似ていますが、 オブジェクト全体にたくさんの余分なジオメトリを追加する必要はありません。 入力メッシュのトポロジーの制約は特にありませんが、良い結果を得るには、すべてのポリゴンがConvex(凸)で、なるべく均一にポリゴンが分布しているのが良いです。
“Group”フィールドで指定した左の入力のすべてのポリゴンを使って、細分化するポリゴンメッシュを決めます。 同じポイントを共有しているポリゴンエッジは、同じエッジとして分類されます。 物理的に近いポイントを共有しているポリゴンエッジは、同じエッジとして分類されません。
“Creases”フィールドで指定した右の入力の要素が、Crease(折り目)として使われます。 Creaseポリゴンの各エッジは、同じポイント番号のポリゴンメッシュのエッジに対応します。 さらにポイントの位置は関係ありません。
このノードは、Vertexアトリビュートに対応していて、そのアトリビュートが保持されます。とはいえ、細分化した後のVertexアトリビュートは線形的に補間されるだけです。
Subdivideの使い方 ¶
To... | Do this |
---|---|
ポリゴンサーフェスを細分化する |
|
局所的にディテールを加える |
|
How to ¶
To... | Do this |
---|---|
局所的にディテールを加える |
|
インタラクティブにエッジにCrease(折り目)を付ける |
|
フェース番号でエッジにCrease(折り目)を付ける |
|
Warning
RenderManレンダラーは、Creaseノードで適用したcrease
アトリビュートを直接使いますが、Mantraレンダラーでは、特許の問題により、そのアトリビュートを 使いません 。
Creases ¶
Creasesフィールドには、2番目の入力に接続した参照ポリゴンのプリミティブ番号やグループを指定します。
Creasesは、サブディビジョンサーフェスにCrease(折り目)を付けることができます。 以下の図では、 Crease Weight を 0, 1, 2に設定した時の結果を表示しています。 ウェイトが大きくなるほど、Crease(折り目)が強くなります。
Crease WeightとRenderman ¶
ribファイルを生成する時、creaseweight
アトリビュートが追加されますが、サブディビジョン化はされません。
RenderManでは、そのアトリビュートを内部的に使用して、レンダリング処理の時にサブディビジョンサーフェスを生成します。
Note
ribファイルにcreaseweight
アトリビュートを出力するには、ジオメトリオブジェクトのパラメータエディタの Render タブ > Geometry > Render as Subdivisionパラメータが設定されている必要があります。
Crease(折り目)のアルゴリズム ¶
ノードの2番目の入力が接続されている場合:
-
Override Crease Weight Attribute をオンにすると、2番目の入力で定義されている各エッジが、その Crease Weight の値で上書きされます。
-
creaseweight
Vertexアトリビュートが2番目の入力に存在すると、2番目の入力の各エッジのCrease Weightは、そのエッジが属するVertexアトリビュートの中で一番大きい値に設定されます。 -
creaseweight
Primitiveアトリビュートが2番目の入力に存在すると、2番目の入力の各ポリゴンが、そのポリゴンに一致するエッジに対して、そのウェイトを設定します。
ノードの2番目の入力が接続されていない場合:
-
Override Crease Weight Attribute をオンにすると、サブディビジョンサーフェスのすべてのエッジが、その Crease Weight の値で上書きされます。
-
creaseweight
Vertexアトリビュートが1番目の入力に存在すると、このアトリビュートの値がサブディビジョンサーフェスのエッジに適用されます。 -
creaseweight
Primitiveアトリビュートが1番目の入力に存在すると、このアトリビュートの値がサブディビジョンサーフェスのエッジに適用されます。
共有エッジ上のCrease Weightの値は、そのエッジが属するVertexアトリビュートやPrimitiveアトリビュートの中で一番大きい値に設定されます。 例えば、2つのポリゴンがエッジを共有していて、それらのポリゴンのPrimitiveアトリビュートが使われる時、一番大きい値が、その共有エッジに適用されます。
改良版のOpenSubdivisionを使用する時は、以下のことも考慮されます:
-
cornerweight
Pointアトリビュートが存在すれば、そのアトリビュートを使って、サーフェスの頂点のコーナーウェイトが定義されます。 -
subdivision_hole
グループが存在すれば、そのグループ内のポリゴンは、サブディビジョン処理では穴と見なされます。 それらのポリゴンはサブディビジョンに寄与しますが、最終サーフェスには現れません。 -
osd_scheme
Detailアトリビュートが存在すれば、SOPで指定されているサブディビジョンアルゴリズムが上書きされます。 このアトリビュートにLoopサブディビジョンを指定する時は、入力のジオメトリが三角形化されていなければなりません。 -
osd_vtxboundaryinterpolation
Detailアトリビュートが存在すれば、 Point Attributes パラメータの値が上書きされます。 -
osd_fvarlinearinterpolation
Detailアトリビュートが存在すれば、 Vertex Attributes パラメータの値が上書きされます。 -
osd_creasingmethod
Detailアトリビュートが存在すれば、 Crease Method パラメータの値が上書きされます。 -
osd_trianglesubdiv
Detailアトリビュートが存在すれば、 Triangle Subdivision パラメータの値が上書きされます。
詳細は、OpenSubdivのドキュメントを参照してください。
Close Cracks ¶
Close Cracks フィールドでは、亀裂をPull(引っ張り)またはStitch(縫合)のどちらかで閉じることができます。 Bias パラメータは、Pullにのみ適用され、Stichでは無効になります。 Boundary パラメータは、PullまたはStitchのどれかを選択すると有効になります。
亀裂は、非サブディビジョン領域上の単一エッジとサブディビジョン領域上の複数エッジによって形成されます。 Boundary パラメータは、非サブディビジョン領域上の単一エッジ、つまりこのエッジを含むポリゴンに対する処理方法を指定します。
Boundary パラメータを No Edge Division にすると、亀裂を引っ張って閉じ、サブディビジョン領域のエッジのポイントすべてが、 非サブディビジョン領域の一番近いポイントに引っ張られます(つまり動かされます)。 No Edge Division を指定すると、 Bias が無効になります。
亀裂を Divide Edges オプションでPullすると、その非サブディビジョン領域のエッジがたくさんのセクションに分割されて、 その非サブディビジョン領域のエッジ上の各ポイントがそれらのセクションのエッジ上の新しいポイントに一致させます。 新しく分割されたエッジ上のポイントがサブディビジョン領域のポイントと結合されます。 Bias を1にすると、サブディビジョン領域に沿ってそれらの結合ポイントが配置されます。 Bias を0にすると、非サブディビジョン領域に沿ってそれらの結合ポイントが配置されます。 (0から1の間の値は、それらの中間に配置されます。)
亀裂を Triangulate オプションでPullすると、ほぼ Divide Edges と同じ動作をしますが、さらに非サブディビジョン領域を三角形化します。 非サブディビジョン領域を曲率のあるサブディビジョン領域の方向にPullすることで、非平面ポリゴンが生成される場合がありますが、Triangulateオプションは、そのポリゴンを小さな(平面)ポリゴンに分割 するので、望ましいオプションです。 Bias を1にすると、通所では一番良い結果が生成されます。
Triangulateオプションは、Divide SOPが非平面ポリゴンの処理を想定していないので、必要です。
一方で、Stitch Cracks Togetherオプションは、新しいポリゴン(三角形)を挿入して、亀裂を閉じます。 No Edge Division を選択すると、たくさんの三角形が作成され、非サブディビジョン領域のエッジの1個のポイントに対して頂点が1個になります。
Divide Boundary Edges を選択すると、非サブディビジョン領域のエッジが分割されるので、三角形で使用可能なポイントがたくさん生成されます。 生成される三角形は、より標準的な形(細長い三角形ではない)になります。 Triangulate オプションは、再度、非サブディビジョン領域を三角形化します。 ただし、このオプションは、ほぼ使用しません。なぜなら、このポリゴンはStitch中は平面ポリゴンのままだからです。
パラメータ ¶
Group
ポリゴンメッシュとして使用しサブディビジョン化するサブセット。
Creases
Crease(折り目)として使用するサブセット(2番目の入力)。
Algorithm
サブディビジョン化で使用するアルゴリズムを選択します。
Houdini Catmull-Clark
Houdiniのネイティブのサブディビジョンアルゴリズムを使用します。
Mantra Compatible Catmull-Clark
Mantra形式のサブディビジョンを使用します。
OpenSubdiv Catmull-Clark
サブディビジョン化するためのOpen Subdivライブラリを使用します。
OpenSubdiv Loop
ループサブディビジョンを実行するためのOpen Subdivライブラリを使用します(三角形で作られたモデルに最適です)。
OpenSubdiv Bilinear
双線形に改良したOpen Subdivライブラリを使用します(頂点のブレンドをしません)。
Depth
サブディビジョンの繰り返し回数。値が大きいほど、サーフェスがより滑らかになります。
Override Crease Weight Attribute
Crease(折り目)の度合いをcreaseweight
Primitive/Vertexアトリビュートで決めるのか、このオペレーションで上書きするのか設定します。
Crease Weight
Crease Weightを上書きすると、この値が使われます。
Generate Resulting Creases
Crease(折り目)を最終ジオメトリに生成します。
New Group
生成されたCrease(折り目)すべてを格納するグループの名前。
Close Cracks
Do Not Close
亀裂を閉じません。
Pull Cracks Closed
サブディビジョン化で発生した亀裂を閉じるために、サブディビジョン領域の境界上のポイントを動かします。
Stitch Cracks Together
サブディビジョン化で発生した亀裂を閉じるために、ポリゴンを追加します。
Boundary
No Edge Division
エッジを分割しません。
Divide Edges
Pull Cracks Closed または Stitch Cracks Together が設定されている時に、サブディビジョン領域周辺のエッジを分割するかどうか。
Triangulate
亀裂の境界上のポリゴンを三角形化するかどうか。
Bias
Pull Cracks Closed が設定されている時に、どのポイントを動かすのか決めます。
0
サブディビジョン領域のポイントを境界に合うように動かします。
1
境界上のポイントをサブディビジョン領域に合うように動かします。
Recompute Point Normals
ポイント法線が存在すれば、ポイント法線を再計算します。これを設定しなかった場合、ポイント法線は、ポイントと同じ方法で補間されます。
Smooth Vertex Attributes
オンにすると、VertexアトリビュートがPointアトリビュートと同じ方法で平滑化されます。しかし、継ぎ目(ポイントの位置は同じでも、Vertexアトリビュートが異なります)のVertexアトリビュートは線形的に補間されます。 オフにすると、Vertexアトリビュートが線形的に補間されます。Mantraサブディビジョンレンダリングに合わせるなら、これをオフに設定してください。
Enforce Consistent Topology
Pull Cracks Closed または Stitch Cracks Together が有効なら、サブディビジョンプリミティブと非サブディビジョンプリミティブ間の境界エッジに応じて、異なるトポロジーが生成される場合があります。 このオプションをオンにすると、この挙動が常に同一線上のエッジを無視することで、一貫したトポロジーを生成します。
Linear Creases
このオプションをオンにすると、標準(RenderMan)形式のCreaseからMantraの線形Creaseに切り替わります。
Build Polygon Soups
別々のポリゴンプリミティブではなく、Polygon Soupプリミティブを作成します。
Treat All Curves as Independent
ポリゴンカーブをサブディビジョン化していて、このオプションが有効な場合、カーブ間でポイントを共有することができなくなります。 各ポリゴンは、各頂点が独自のポイントを持っているものとしてサブディビジョン化されます。このオプションを有効にすると若干高速になり、 ポリゴンカーブをサブディビジョンカーブとしてレンダリングする時に、ビューポートやMantraがこの想定をするので、その結果が一致します。
Remove Holes
OpenSubdivで穴として判断されたフェースを削除します。これには、入力上のsubdivision_hole
グループで判断されたフェースを含みます。
Point Attributes
改良版のOpenSubdivを使用するとき、これは、Pointアトリビュート(P
を含む)をパッチ境界上で補間する方法を決めます。
Vertex Attributes
改良版のOpenSubdivを使用するとき、これは、Vertexアトリビュート(フェースは可変)をパッチ上で補間する方法を決めます。
Crease Rule
これは、サブディビジョン化する時にOpenSubdivがCrease(折り目)処理を実行する方法を決めます。
Triangle Subdivision
OpenSubdivがCatmull-Clark補間する時、これは、そのケイジ内に三角形があった時のサブディビジョンルールを制御します。
Examples ¶
SubdivideCrease Example for Subdivide geometry node
このサンプルでは、ボックスの底面を細分化すると同時に上面の折り目を保持する方法を2つ説明しています。
See also |