メソッド ¶
splitGeosByGroup
: bool
Property
通常では、ジオメトリは2つの異なる方法でパートに分割されます。 まず最初にジオメトリはグループで分割され、次に、各グループ内のジオメトリがプリミティブタイプで分割されます。
例えば、メッシュの半分とvolume1を含んだgroup1、メッシュのもう半分とcurve1とvolume2を含んだgroup2で構成されたジオメトリがあったとすると、 それは5個のパートに分かれます。 最初の2個のパートはgroup1のメッシュとvolume1で、残りの3個のパートはgroup2に属します。
このトグルは、グループによる分割を無効にして、プリミティブタイプのみでジオメトリを分割することができます。 デフォルトでは、これがTrueになっているので、ジオメトリはグループとプリミティブタイプで分割されます。 これをFalseに設定すると、ジオメトリはプリミティブタイプのみで分割されます。
splitGroupSH
: int
Property
通常では、ジオメトリは2つの異なる方法でパートに分割されます。 まず最初にジオメトリはグループで分割され、次に、各グループ内のジオメトリがプリミティブタイプで分割されます。
例えば、メッシュの半分とvolume1を含んだgroup1、メッシュのもう半分とcurve1とvolume2を含んだgroup2で構成されたジオメトリがあったとすると、 それは5個のパートに分かれます。 最初の2個のパートはgroup1のメッシュとvolume1で、残りの3個のパートはgroup2に属します。
このトグルは、グループによる分割を無効にして、プリミティブタイプのみでジオメトリを分割することができます。 デフォルトでは、これがTrueになっているので、ジオメトリはグループとプリミティブタイプで分割されます。 これをFalseに設定すると、ジオメトリはプリミティブタイプのみで分割されます。
splitGeosByAttribute
: bool
Property
このトグルは、指定したアトリビュートの値別での分割を可能にします。 デフォルトでは、これはFalseで、ジオメトリは上記で説明したように分割されます。 これをTrue、splitGeosByGroupをFalseに設定すると、メッシュのジオメトリがアトリビュート値で分割されます。 分割に使用されるアトリビュート名は必ずhapi.setCustomStringを使って作成してから、その構造体にsplitAttrSHハンドルを設定してください。
splitAttrSH
: int
Property
このトグルは、指定したアトリビュートの値別での分割を可能にします。 デフォルトでは、これはFalseで、ジオメトリは上記で説明したように分割されます。 これをTrue、splitGeosByGroupをFalseに設定すると、メッシュのジオメトリがアトリビュート値で分割されます。 分割に使用されるアトリビュート名は必ずhapi.setCustomStringを使って作成してから、その構造体にsplitAttrSHハンドルを設定してください。
maxVerticesPerPrimitive
: int
Property
メッシュにのみ有効で、これによってメッシュが凸化されます。
-1
を使用することで凸化が無効になり、パフォーマンスが幾分良くなります。
refineCurveToLinear
: bool
Property
カーブにのみ有効です。 これをTrueに設定すると、すべてのカーブが直線カーブに細分化され、もはやオリジナルのCVにアクセスできなくなります。 この細分化の細かさはhapi.CookOptions.curveRefineLODを介して制御することができます。 これをFalseに設定すると、そのカーブタイプ(NURBS、Bezierなど)はそのままになります。
curveRefineLOD
: float
Property
カーブを直線カーブに細分化する際の1ユニット距離あたりの分割数を制御します。 Houdiniのデフォルトは8.0です。
clearErrorsAndWarnings
: bool
Property
このオプションを有効にすると、クックを実行する前にすべてのノードのエラーと警告(とメッセージ)を再帰的にクリアします。
cookTemplatedGeos
: bool
Property
すべてのテンプレートジオメトリを再帰的にクックするかどうかを決めます。
splitPointsByVertexAttributes
: bool
Property
Vertexアトリビュートでポイントを分割するかどうかを決めます。 これは、すべてのVertexアトリビュートを受け取り、それらのアトリビュートを個々のポイントへコピーするのを試みます。 2つの頂点のアトリビュート値に違いがあれば、それに呼応したポイントは2つのポイントに分割されます。 すべてのVertexアトリビュートがポイントにコピーされるまで、これを繰り返します。
このオプションを有効にすると、(UVなどの)アトリビュートの共有が最適化されるので、ゲームエンジン側で頂点の総数を減らすことができます。 この機能をフル活用するには、Houdiniのポイントをゲームエンジンの(共有可能な)頂点と考える必要があります。 このオプションを無効にすると(または、この機能が存在しなかった頃では)、すべてのアトリビュート値が考慮されるようにするためにHoudiniの頂点をゲームエンジンの頂点にマッピングする必要がありました。
packedPrimInstancingMode
: hapi.packedPrimInstancingMode
Property
クックがパックプリミティブをどのように扱うのかを選択します。 デフォルトはhapi.packedPrimInstancingMode.Disabledです。
handleBoxPartTypes
: bool
Property
どの特別なパートタイプを扱うのかを選択します。 扱われない特別なパートタイプは、単にhapi.partType.Meshに変換されるだけです。
handleSpherePartTypes
: bool
Property
どの特別なパートタイプを扱うのかを選択します。 扱われない特別なパートタイプは、単にhapi.partType.Meshに変換されるだけです。
checkPartChanges
: bool
Property
有効にすると、クック中にhapi.PartInfo.hasChangedメンバーが設定されます。 無効にすると、そのメンバーは常にTrueになります。 パートの変更のチェックは処理が重いので、無効にすることでパフォーマンスを良くすることができます。
cacheMeshTopology
: bool
Property
このトグルは、メッシュトポロジーのキャッシュ化を有効にすることができます。 デフォルトでは、これはFalseです。 これをTrueに設定すると、メッシュジオメトリをクックした時に、ポイント数が変化した場合にのみそのトポロジーを更新します。 これを使用することで、メッシュを変形させる時のパフォーマンスを良くすることができます。
preferOutputNodes
: bool
Property
有効にすると、OBJノードに対してhapi.cookNodeをコールすると、その中のSOPノードの出力ノードがクックされるようになります。 出力ノードが存在しなかったり、このオプションが無効になっている場合、代わりにHAPIはその中のSOPの表示ノードをクックします。
extraFlags
: int
Property
内部でのみ使われます。 :)