osd_limitsurfaceは、サブディビジョンサーフェスとして指定されたジオメトリ内のPointアトリビュートを評価します。
頂点アトリビュートに関しては、osd_limitsurfacevertexを使用してください。
int osd_limitsurface(<geometry>geometry, string attrib_name, int patch_id, float u, float v, <type>&result)
int osd_limitsurface(<geometry>geometry, string attrib_name, int patch_id, float u, float v, float &result[])
<geometry>
ノード(例えばWrangle SOP)のコンテキスト内で実行する時は、この引数にジオメトリの読み込み元の入力番号(0から始まります)を意味する整数を指定することができます。
別の方法として、読み込み元のジオメトリファイル(例えば、.bgeo)を示した文字列を指定することができます。
Houdini内で実行する時は、この引数にop:/path/to/sop参照を指定することができます。
&result
計算されたアトリビュート値は、この引数に渡された変数に格納されます。 この変数のタイプは、読み込むアトリビュートのタイプに合わせてください。
Returns
アトリビュートの計算に成功すれば1、失敗すれば0を返します。
失敗で考えられる原因:
-
ポリゴンやトポロジーを含まないジオメトリは、Open Subdivでは変換することができません。
-
入力ジオメトリ上にアトリビュートが存在しない。
-
アトリビュートのサイズ/タイプが
result引数のVEXタイプに一致しない。
Examples ¶
サブディビジョンメッシュの境界サーフェス上にポイントクラウドを生成します。
int npatches = osd_patchcount(file); for (int patch = 0; patch < npatches; patch++) { for (int v = 0; v < 100; v++) { vector P; if (osd_limitsurface(file, "P", patch, nrandom(), nrandom(), P)) { int ptid = addpoint(geohandle, P); } } }
| See also | |
| subd |