On this page | |
Since | 14.5 |
Python Scriptオブジェクトは、格納されたジオメトリをPythonスクリプト経由での変更を可能にします。
パラメータ ¶
Transform ¶
Translate
x、y、z方向にそれぞれ1、2、3移動するには、
n = hou.pwd()
t = hou.hmath.buildTranslate((1, 2, 3))
n.setCookTransform(t)
Rotate
x、y、z軸の周りをそれぞれ30度、60度、90度回転するには、
n = hou.pwd()
r = hou.hmath.buildTranslate((30, 60, 90))
n.setCookTransform®
Scale
x、y、z軸に沿ってそれぞれ2、3、4とスケールするには、
n = hou.pwd()
s = hou.hmath.buildScale(2, 3, 4)
n.setCookTransform(s)
Transform
スケーリング、回転、移動の順に適用するには、
n.setCookTransform(s*r*t)
Note
n, t, r, sは上記のように定義します。
Examples
コーディングターミナルの右側のドロップダウンメニューを参照してください。
Render ¶
Material
Materialノードのパス。
Display
このオブジェクトをビューポートで表示してレンダリングするかどうか。チェックボックスをオンにすれば、Houdiniは、このパラメータを使用します。 値を0にするとビューポートでオブジェクトが非表示になりレンダリングされず、1にするとオブジェクトが表示されてレンダリングされます。 チェックボックスをオフにすると、Houdiniはこの値を無視します。
Phantom
true
の時、オブジェクトが主光線でレンダリングされなくなります。副光線のみがオブジェクトに当たります。
(Render Visibilityプロパティを参照してください。)
Renderable
このオプションをオフにすると、インスタンスがレンダリングされなくなります。オブジェクトのプロパティはVEX内から照会することが可能ですが、ジオメトリはレンダリングされません。これはオブジェクトをトランスフォーム空間オブジェクトに変換するのとほぼ同等です。
Render Visibility (vm_rendervisibility
プロパティ)を参照してください。
Display As
ビューポート内のジオメトリの表示方法。
Polygons As Subdivision (Mantra)
ポリゴンをサブディビジョンサーフェスとしてレンダリングします。creaseweight
アトリビュートは、線状の折り目を生成します。このアトリビュートは、ポイント、頂点、プリミティブで定義することができます。
OpenSubdivを使ってレンダリングする時は、creaseweight
アトリビュートだけでなく、cornerwieght
アトリビュート、subdivision_hole
グループ、追加アトリビュートを取り込んで、精密化の挙動を制御することができます。
これらの情報は、他の設定を上書きします:
-
int osd_scheme
,string osd_scheme
: OSDサブディビジョンの構造を指定します(0が“catmull-clark”、1が“loop”、2が“bilinear”)。Loopサブディビジョンに関しては、そのジオメトリには三角形しか含めることができません。 -
int osd_vtxboundaryinterpolation
: Vertex Boundary Interpolationメソッド(詳細は、vm_osd_vtxinterp
を参照してください) -
int osd_fvarlinearinterpolation
: Face-Varying Linear Interpolationメソッド(詳細は、vm_osd_fvarinterp
を参照してください) -
int osd_creasingmethod
: Crease(折り目)メソッドを指定します。0がCatmull-Clark、1がChaikinです。 -
int osd_trianglesubdiv
: 三角形のウェイト付けアルゴリズムを指定します。0がCatmull-Clarkウェイト、1が“滑らかな三角形”ウェイトです。
Shading ¶
Categories
スペースまたはカンマで区切ったこのオブジェクトが属するカテゴリのリスト。
プリミティブ単位でのマテリアルの割り当て(Material SOP)は現在サポートされていません。
Reflection Mask
パターンのリスト。これらのパターンに一致するオブジェクトが、このオブジェクトに映し出されます。オブジェクトを指定するには、ワイルドカード(例えば、key_*
)とバンドル参照を使うことができます。
Light Linkerペインを使えば、グラフィカルユーザインターフェースを使ってライトとオブジェクト間の関係を編集することもできます。
Mantraのobject:reflectmask
プロパティは、 ReflectionカテゴリとReflectionマスクを組み合わた結果を含んだ計算されたプロパティです。
Refraction Mask
パターンのリスト。これらのパターンに一致するオブジェクトが光の屈折で見えるようになります。オブジェクトを指定するには、ワイルドカード(例えば、key_*
)とバンドル参照を使うことができます。
Light Linkerペインを使えば、グラフィカルユーザインターフェースを使ってライトとオブジェクト間の関係を編集することもできます。
Mantraのobject:refractmask
プロパティは、 RefractionカテゴリとRefractionマスクを組み合わた結果を含んだ計算されたプロパティです。
Light Mask
パターンのリスト。これらのパターンに一致すライトが、このオブジェクトを照明します。ライトを指定するには、ワイルドカード(例えば、key_*
)とバンドル参照を使うことができます。
Light Linkerペインを使えば、グラフィカルユーザインターフェースを使ってライトとオブジェクト間の関係を編集することもできます。
Mantraのobject:lightmask
プロパティは、 LightカテゴリとLightマスクを組み合わせた結果を含んだ計算されたプロパティです。
Volume Filter
いくつかのボリュームプリミティブ(Geometry Volumes、Image3D)はボリュームチャンネルの評価中にフィルターを使用することができます。これはフィルターを指定します。デフォルトのボックスフィルターは評価が速くて、ほとんどの滑らかな流体シミュレーションに対して鮮明なレンダーを生成します。ボクセルデータがエイリアス(エッジに沿ったギザギザ)を含んでいると、もっと大きなフィルター幅またはもっと滑らかなフィルターを使って納得できる結果を生成する必要があります。エイリアスのあるボリュームデータに対しては、フィルター幅が1.5のgauss
が良いフィルターです。
-
point
-
box
-
gauss
-
bartlett
-
blackman
-
catrom
-
hanning
-
mitchell
Volume Filter Width
これはobject:filter
プロパティのフィルター幅を指定します。フィルター幅はボクセルの数で指定します。フィルター幅が大きいほどレンダリングやブラーの生成に時間がかかりますが、ある種のボクセルデータではエイリアスを処理する必要が出てきます。
Matte Shading
有効にすると、オブジェクトのサーフェスシェーダがプライマリ光線用のMatteシェーダに置き換えられます。
デフォルトのMatteシェーダは、オブジェクトを完全に不透明でアルファ値が0としてレンダリングします。
オブジェクトを表示させる場所で画像に穴を効果的に切り取ることができます。
この設定は、手動で画像をパスに分ける時に役に立ちます。つまり、背景要素を前景オブジェクトと別々にレンダリングすることができます。
デフォルトのMatteシェーダは、“Matte” VEXシェーダですが、vm_matteshader
レンダープロパティを追加して、他のシェーダを割り当てることで、別のMatteシェーダを設定することが可能です。
セカンダリ光線が、まだオブジェクトに割り当てられたサーフェスシェーダを使用しているので、オブジェクトを直接レンダリングしなくても、反射と間接照明を表示することができます。
ボリュームの正しいマットシェーディングについて:
-
オブジェクトに
vm_matteshader
プロパティを追加します。 -
Volume Matte シェーダを作成します。
-
このシェーダの密度をジオメトリシェーダの密度に合わせます。
-
このシェーダを
vm_matteshader
に割り当てます。
そして、 Matte Shading トグルが有効な時、デフォルト(密度を単に1に設定)ではなく、あなた独自のボリュームマットシェーダを使用します。 完全に不透明なマットが必要であれば、ボリュームマットではなく、マットシェーダを使用します。
Raytrace Shading
マイクロポリゴンの頂点をシェーディングするのではなくて、すべてのサンプルをシェーディングします。この設定はオブジェクト単位基準でレイトレースレンダリングを有効にします。
マイクロポリゴンレンダリングの時、シェーディングは通常ではフレームの最初のマイクロポリゴンの頂点で起こります。サンプルのカラーを決めために、コーナー頂点が補間されます。object:rayshade
を有効にすると、レイトレースシェーディングアルゴリズムが読み出されます。これは各サンプルを単独でシェーディングします。これはシェーディング負荷が膨大に増えることを意味します。しかし、各サンプルは正しい時間と位置でシェーディングされます。
プリミティブ単位でのマテリアルの割り当て(Material SOP)は現在サポートされていません。
Sampling ¶
Geometry Velocity Blur
このメニューでは、オブジェクトに対して実行する ジオメトリVelocityブラー のタイプを選択することができます。 トランスフォームブラー や 変形ブラー とは別に、時間と共に変化するポイントに保存されたアトリビュートを使って、ポイントの動きに応じたモーションブラーをレンダリングすることができます。 ジオメトリ内のポイント数が時間と共に変化する場合(例えば、ポイントが誕生したり死亡するパーティクルシミュレーション)、このタイプのブラーを使用してください。
フレーム間でジオメトリのトポロジーが変化する場合、Mantraはジオメトリを補間できなくて正しくモーションブラーを計算できなくなります。
そのような場合、元のジオメトリが変化しても整合性のあるv
やaccel
のアトリビュートをモーションブラーに使用することができます。
流体シミュレーションのサーフェスがまさにそのよい例です。
この場合と他のタイプのシミュレーションデータでは、ソルバが自動的にVelocityアトリビュートを作成します。
No Velocity Blur
レンダラーでモーションブラーを許可するように設定しても、このオブジェクトに対してモーションブラーをレンダリングしません。
Velocity Blur
Velocityブラーを使用するには、ポイントVelocityを計算して、それをv
Pointアトリビュートに保存しなければなりません。
レンダラーは、このアトリビュートが存在すれば、それを使用してVelocityモーションブラーをレンダリングします(レンダラーがモーションブラーのレンダリングを許可するように設定されていることが前提です)。
シミュレーションノード(例えばパーティクル系DOPs)は自動的にv
アトリビュートを生成します。
他にも、Point Velocity SOPを使ってVelocityを計算して追加することができます。
v
アトリビュートの単位は、1秒あたりのHoudiniユニットです。
Acceleration Blur
加速度ブラーを使用するには、ポイント加速度を計算して、それをaccel
Pointアトリビュートに保存しなければなりません(geo_accelattributeプロパティを使えば、その加速度アトリビュート名を変更することができます)。
レンダラーは、このアトリビュートが存在すれば、それを使用して複数セグメントの加速度モーションブラーをレンダリングします(レンダラーがモーションブラーのレンダリングを許可するように設定されていることが前提です)。
シミュレーション系ノードは自動的にaccel
アトリビュートを生成することができます。
他にも、Point Velocity SOPを使って加速度を計算して追加することができます。
Acceleration Blurがオンの時、ジオメトリに 角速度 アトリビュート(w
)が存在すれば、急回転にもブラーがかかります。
これは、ベクトルアトリビュートであり、各コンポーネントは、X、Y、Z軸を基準とした1秒あたりのラジアンの回転速度を意味しています。
これを“Velocity Blur”または“Acceleration Blur”に設定すると、変形ブラーがオブジェクトに適用されなくなります。 これを“Acceleration Blur”に設定すると、geo_motionsamplesプロパティを使用して、加速度サンプルの数を設定することができます。
Dicing ¶
Shading Quality
このパラメータは、すべてのレンダリングエンジンに対してジオメトリのサブディビジョン解像度を制御し、さらにマイクロポリゴンレンダリングに対してシェーディング解像度を制御します。他のすべてのパラメータがデフォルトの時、値を1にすると、近似で1つのマイクロポリゴンがピクセル毎に作成されます。値を高くするとより小さいマイクロポリゴンを生成します。これはシェーディングが細かくなり、品質が良くなることを意味します。
レイトレースエンジンでは、シェーディング品質は、サーフェスのシェーディング量を変更することなく、滑らかなサーフェス(NURBS、サブディビジョンとしてのレンダリング)とディスプレイスメント用のジオメトリのサブディビジョン品質にのみ影響を与えます。レイトレースを使用する時は、サーフェスシェーディング品質を良くするためには、ピクセルサンプルとレイサンプリングのパラメータを使用しなければなりません。
シェーディング品質の変更の効果は、vm_shadingquality
の 2乗 の係数によってシェーディングの量を増やしたり、下げたりすることができます。つまり、シェーディング品質を2にすると、4倍シェーディング量を実行し、0.5にすれば0.25倍のシェーディング量を実行します。
Dicing Flatness
このプロパティはほぼ平坦なプリミティブのテセレーションレベルを制御します。値を上げることで、より多くのプリミティブが平坦とみなされ、細分化が少なくなります。より精密(最適化がすくない)なほぼ平坦なサーフェスにするなら、このオプションを 下げて ください。
Ray Predicing
このプロパティは、レンダリング開始前に、このオブジェクトが全てのディスプレイスメントとサブディビジョンが適用されたジオメトリを生成するようにします。この設定を有効にすると、レイトレースは膨大なメモリを必要としますが非常に速くなります。
Disable Predicing
ジオメトリが光線に当たると、細分化されます。
Full Predicing
同時にすべてのジオメトリを細分化して保存します。
Precompute Bounds
正確な境界ボックスを計算するためにジオメトリをすべて細分化します。 この設定では、ボックスが計算されればすぐに細分化したジオメトリを破棄するのでメモリ効率が非常に良いです。 これはFull Predicingのようにメモリをたくさん消費する必要がなく大きなディスプレイスメント境界を使ってディスプレイスメントを効率よく処理するのに役に立ちます。
レイトレースするとき、モデル上のすべてのポリゴンが(プライマリまたはセカンダリの光線で)可視ならば、ジオメトリの一部をキャッシュ化してオンザフライでジオメトリを再生成するよりは、モデル内のすべてのジオメトリをPre-diceする方が効率が良いです。これは特にグローバルイルミネーションを計算するときがそうです(光線間の干渉が少ないので)。
プリミティブ単位でのマテリアルの割り当て(Material SOP)は現在サポートされていません。
Shade Curves As Surfaces
カーブをレンダリングする時、カーブをサーフェスに変換してdicingするので、そのサーフェス上の複数のポイントにサーフェスシェーダが実行されます。これはカーブをカーブのようなサーフェスにするときには役に立ちますが、効率が悪くなります。デフォルトでは単にカーブのポイントにシェーダを実行し、作成されたサーフェス上にシェーディングしたポイントを複製します。
Geometry ¶
Backface Removal (Mantra)
有効にすると、カメラ側を向いていないフェースはレンダリングされません。
Procedural Shader
このオブジェクトのレンダージオメトリを生成するためにレンダラーで使用されるジオメトリSHOP。
Force Procedural Geometry Output
プロシージャルシェーダを割り当てた時のジオメトリの出力を有効にします。あなたが割り当てたプロシージャルが、正しく機能しているプロシージャルに存在するジオメトリに依存していないことがわかっていれば、このトグルを無効にできます。
Polygons As Subdivision (Mantra)
ポリゴンをサブディビジョンサーフェスとしてレンダリングします。creaseweight
アトリビュートは、線状の折り目を生成します。このアトリビュートは、ポイント、頂点、プリミティブで定義することができます。
OpenSubdivを使ってレンダリングする時は、creaseweight
アトリビュートだけでなく、cornerwieght
アトリビュート、subdivision_hole
グループ、追加アトリビュートを取り込んで、精密化の挙動を制御することができます。
これらの情報は、他の設定を上書きします:
-
int osd_scheme
,string osd_scheme
: OSDサブディビジョンの構造を指定します(0が“catmull-clark”、1が“loop”、2が“bilinear”)。Loopサブディビジョンに関しては、そのジオメトリには三角形しか含めることができません。 -
int osd_vtxboundaryinterpolation
: Vertex Boundary Interpolationメソッド(詳細は、vm_osd_vtxinterp
を参照してください) -
int osd_fvarlinearinterpolation
: Face-Varying Linear Interpolationメソッド(詳細は、vm_osd_fvarinterp
を参照してください) -
int osd_creasingmethod
: Crease(折り目)メソッドを指定します。0がCatmull-Clark、1がChaikinです。 -
int osd_trianglesubdiv
: 三角形のウェイト付けアルゴリズムを指定します。0がCatmull-Clarkウェイト、1が“滑らかな三角形”ウェイトです。
Render As Points (Mantra)
ジオメトリのポイントのレンダリングの方法を制御します。デフォルトの設定の No Point Rendering は、パーティクルシステムのポイントのみをレンダリングします。 Render Only Points に設定すると、頂点とプリミティブの情報をすべて無視して、ポイントのアトリビュートのみを使ってジオメトリをレンダリングします。 Render Unconnected Points も同様に動作しますが、ジオメトリのプリミティブで使われていないポイントだけをレンダリングします。
以下の2つのアトリビュートは、それが存在すればポイントプリミティブを制御します。
orient
ポイントジオメトリの法線を決めるベクトル。このアトリビュートがなければ、ポイントは入射光の方向を向きます(VEX I
variable)。
width
ポイントの3Dサイズを決めます(デフォルトは0.05)。
Use N for point rendering
Mantraは、ポイントプリミティブをレンダリングする時にNアトリビュートからNグローバルを初期化します。無効(デフォルト)にすると、ポイント法線はカメラ方向に初期化されます。
Metaballs as Volume
サーフェスとは対照的にメタボールをボリュームとしてレンダリングします。メタボールのボリューム品質は、ジオメトリ内のすべてのメタボールの平均のサイズに基づいて設定されるので、メタボールのサイズを大きくしたり、小さくしたりすると、自動的にレンダリング品質が調整されます。
Coving
Mantraが隙間を防ごうとします。
Covingとは、レンダリング時に細分化したジオメトリで発生した隙間を埋める処理で、隙間は、異なるレベルの細分化の隣合わせでTジャンクションでのズレが原因で作成されます。
デフォルト設定の Coving for displacement/sub-d は、ディスプレイスメントシェーダとサブディビジョンサーフェスのサーフェスの隙間だけを埋めます。ポイントの変位は大きい隙間を作成する可能性があります。これは、ほとんどのレンダリングでは十分ですが、非常に低いシェーディングレートを使っていたり、レンダリングした画像のアルファに隙間があれば、 Coving for all primitives を使う場合があります。
Disable Coving を使わないでください。これは、パフォーマンスのメリットがなく、実際にパフォーマンスに悪影響を及ぼす場合があります。なぜなら、Houdiniは、隙間から見えるジオメトリをレンダリングしなければならなくなるからです。
0
隙間埋めなし。
1
変位サーフェスとサブディビジョンサーフェスのみを隙間埋めします。
2
すべてのプリミティブを隙間埋めします。
Material Override
Material Overrideの評価とIFDの出力の方法を制御します。
Evaluate Once に設定すると、チャンネルやエクスプレッションを使用するマテリアルのパラメータは、全体のディテールのために一度だけ評価されます。これにより、Houdini側ではなくMantra側で完全にマテリアルパラメータの割り当てをハンドルできるので、非常に高速にIFDが生成されます。 パラメータの値を Evaluate for Each Primitive/Point に設定すると、プリミティブ単位またはポイント単位でパラメータを評価します。 パラメータを Disabled に設定すれば、完全にマテリアルの上書きをスキップすることもできます。
Automatically Compute Normals (Old)
MantraがNアトリビュートを自動的に計算します。Nアトリビュートが存在すれば、値はそのままです。しかし、Nアトリビュートが存在しなければ、作成されます。これはNアトリビュートを持たないポリゴンジオメトリを滑らかにシェーディングします。
プリミティブ単位でのマテリアルの割り当て(Material SOP)は現在サポートされていません。
Ignore Geometry Attribute Shaders
ジオメトリにシェーダがプリミティブ単位で定義されている時、このパラメータは、それらのシェーダを上書きして、オブジェクトのシェーダのみを使用します。これは、オブジェクトにマットシェーディングを実行するのに役に立ちます。
プリミティブ単位でのマテリアルの割り当て(Material SOP)は現在サポートされていません。
Misc ¶
Set Wireframe Color
指定したワイヤーカラーを使用します。
Wireframe Color
オブジェクトの表示カラー。
Viewport Selecting Enabled
オブジェクトがビューポートでピック可能になります。
Select Script
ビューポートでオブジェクトをピックした時に実行するスクリプト。Select Scriptを参照してください。
Cache Object Transform
一度Houdiniがオブジェクトトランスフォームを計算すると、それらをキャッシュ化します。これは、特にワールド空間位置の計算負荷が高いオブジェクト(例えば、Stickyオブジェクト)と長い親子チェーンの最後にあるオブジェクト(例えば、ボーン)に役に立ちます。 このオプションはStickyオブジェクトとBoneオブジェクトではデフォルトでオンになっています。
オブジェクトトランスフォームキャッシュのサイズを制御する方法に関しては、Houdini Preferencesウィンドウの OBJ Caching の章を参照してください。
Shade Open Curves In Viewport
ビューポートでこのオブジェクトに含まれた開いたカーブが照らされます。
これをオンにすると、ジオメトリにwhitehair
やguardhair
のアトリビュートがあれば、よりヘアーに適したGLSLシェーダも使用されます。
さらに、width
アトリビュートを持ったカーブは、シェーディングモードで色々な幅の太いリボンとしてレンダリングされます。
ローカル変数 ¶
IPT
これは通常では-1です。しかし、オブジェクトがポイントインスタンスを実行していれば、この変数はテンプレートジオメトリのポイント数に設定されます。IPT変数をアクティブにするには、Point Instancingパラメータが、このオブジェクトで有効になっている必要があります。
Note
この変数は廃止予定です。代わりに、instancepointエクスプレッション関数を使ってください。