On this page |
概要
たいていのレンダラーには、サンプリングレート、モーションブラーコントロール、Dicing品質などのジオメトリ単位で設定可能な独自設定が用意されています。 これらのプロパティは、一般的にはUSD規格の一部で十分に適用できるようなものではありませんが、特定のレンダラーをターゲットにしたバッチレンダリングでは非常に重要になってきます。
これらのジオメトリ設定は、シーン全体のレンダリングに影響を与えないという点でRender Settings Primでの設定とは異なります。 これらのジオメトリ設定は、ターゲットのジオメトリPrimsにのみ影響します。 レンダラー固有のライト設定は、Light LOP自体で既に指定されているので、このノード上にはありません。
このノードは、ジオメトリPrimsセットに対してこれらのレンダラー固有の設定を設定することができます。
Note
サードパーティ製レンダラー用のパラメータを追加する方法が知りたいのであれば、HDKドキュメントの"USD Hydra: Customizing for Houdini"を参照してください。
継承
-
個々のレンダラーは、これらのパラメータの値をUSDアトリビュートまたはPrimvarsとして設定することができます(KarmaはPrimvarsとして設定します)。
-
設定をPrimvarsに保存すると、それらの設定をシーングラフ階層の下流に継承させることができるので、膨大な数のジオメトリPrimsに対して特定の設定を適用するのが簡単になります。
How to
-
設定を適用したいジオメトリPrimsを Primitives パラメータで指定します。
-
パラメータの左側にあるポップアップメニューを使って、このノードによるその設定のオピニオンの編集方法を制御します。
ポップアップのメニュー項目
意味
Set or Create
既にアトリビュートが存在しているかどうかに関係なく、指定した値をそのアトリビュートに設定します。
Set If Exists
既にアトリビュートが存在している場合にのみ、指定した値をそのアトリビュートに設定します。
このモードを使用することで、正しいタイプのPrimsにのみアトリビュートを設定することができます。 例えば、
UsdGeomSphere
Primsのみがradius
アトリビュートを持つようにしたい場合です。Block
アトリビュートが存在していないように見せかけるので、これはデフォルト値を取得します(アトリビュートがPrim上にまだ存在していない場合、これは何もしません)。
Do Nothing
このパラメータを無視し、どのようにしてもアトリビュートを作成も変更もしません。
パラメータ
Primitives
このノードを動作させるPrim(s)。
Scene Graph Tree ペインからPrim(s)をこのテキストボックスにドラッグすることで、それらのパスを追加することができます。
または、このテキストボックスの隣にある 再選択ボタンをクリックすることで、ビューア内でPrim(s)を選択することができます。
他にも、この再選択ボタンを⌃ Ctrlクリックすることで、ポップアップツリーウィンドウからPrim(s)を選択することができます。
コレクション内のすべてのPrimsのマッチング(
/path/to/prim.collection:name
)といった高度なマッチングには、プリミティブパターンを使用すると良いでしょう。
Karma
Enable Motion Blur
モーションブラーを有効にするかどうか。 Display Optionsでこれを変更したら、レンダーを再起動する必要があります。
Velocity Blur
このパラメータでは、オブジェクトに対して実行する ジオメトリVelocityブラー のタイプを選択することができます。 トランスフォームブラー や 変形ブラー とは別に、時間と共に変化するポイントに保存されたアトリビュートを使って、ポイントの動きに応じたモーションブラーをレンダリングすることができます。 ジオメトリ内のポイント番号が時間と共に変化する場合(例えば、ポイントが誕生したり死亡するパーティクルシミュレーション)、このタイプのブラーを使用してください。
フレーム間でジオメトリのトポロジーが変化する場合、Karmaはジオメトリを補間できなくて正しくモーションブラーを計算できなくなります。
そのような場合、元のジオメトリが変化しても整合性のある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アトリビュートに保存しなければなりません。
レンダラーは、このアトリビュートが存在すれば、それを使用して複数セグメントの加速度モーションブラーをレンダリングします(レンダラーがモーションブラーのレンダリングを許可するように設定されていることが前提です)。
シミュレーション系ノードは自動的にaccel
アトリビュートを生成することができます。
他にも、Point Velocity SOPを使って加速度を計算して追加することができます。
Acceleration Blurがオンの時、ジオメトリに 角速度 アトリビュート(w
)が存在すれば、急回転にもブラーがかかります。
これは、ベクトルアトリビュートであり、各コンポーネントは、X、Y、Z軸を基準とした1秒あたりのラジアンの回転速度を意味しています。
これを"Velocity Blur"または"Acceleration Blur"に設定すると、変形ブラーがオブジェクトに適用されなくなります。 これを"Acceleration Blur"に設定すると、karma:object:geosamplesプロパティを使用して、加速度サンプルの数を設定することができます。
![](../../images/render/motionblur_velocity.jpg)
v
)を使って線形モーションブラーを実行したVelocity Motion Blur。![](../../images/render/motionblur_acceleration.jpg)
![](../../images/render/motionblur_angular_acceleration.jpg)
Geometry Time Samples
シャッターオープン時間に対して 変形 モーションブラーをレンダリングする時に計算するサブフレームのサンプル数。 デフォルトは1サンプル(シャッター時間の開始のみのサンプル)で、デフォルトでは変形ブラーは ありません 。 高速に変形するジオメトリを適切にブラーさせたい場合、この値を2以上に上げなければなりません。
Note
この値は、レンダリングされるUSDファイルで利用可能なサブサンプル数で制限されます。 この例外で許可されているのは、USD Skelデフォーマです。
"Deformation"は、ジオメトリ(SOP)レベルでトランスフォームだけを参照したり、キャラクタやフレームに応じて形状が急速に変化するオブジェクトなどの実際の表面の変形を参照することができます。
1フレーム内で複雑に変形するオブジェクトには、Geo Time Samplesの数を上げる必要があります。
変形ブラーは、シャッター時間内の アトリビュート値の変化 もブラーさせることができます。
例えば、オブジェクトが移動した時にポイントカラーが急変化する場合、そのCd
アトリビュートにブラーをかけることができます。
Geo Time Samplesの数を上げると、Karmaの使用メモリ量に 影響を与えてしまします 。 サンプル数が増える度に、Karmaはシャッター時間の間にサンプリングしている間はメモリ内にそれだけのジオメトリのコピーを維持しなければなりません。 レンダリングを最適化する時、滑らかなモーションの軌跡を生成するのに必要な最低限のGeo Time Samplesを調べることは良い考え方です。
Velocity Motion Blurが有効なオブジェクトでは、変形ブラーは無視されます。
Transform Time Samples
シャッターオープン時間に対して トランスフォーム モーションブラーをレンダリングする時に計算するサンプル数。 デフォルトは2サンプル(シャッター時間の開始と終了)で、1つのセグメントにブラーがかかります。
極端に速く移動したりと方向を変更するオブジェクトの場合、サブフレームでの方向の変更を取り込むためにサンプル数を上げる必要があります。
上図の例では、1フレーム内で発生した複雑な動きを正しくレンダリングするために40個のトランスフォームサンプルが必要です(1フレーム内でのこの変化量は、非常に稀で、説明をするために使用しただけです)。
トランスフォームブラーは、各オブジェクトのフレーム間のトランスフォームを補間することでブラーをシミュレーションしているので、計算が軽いですが、表面の変形を取り込みません。 変形ジオメトリのブラーを有効にするには、karma:object:geosamplesを上げます。
Dicing Quality
このパラメータは、スムースサーフェス(サブディビジョンサーフェスや変位サーフェス)のジオメトリサブディビジョン解像度を制御します。 他のすべてのパラメータがデフォルトの時、値を1にすると、近似で1つのマイクロポリゴンがピクセル毎に作成されます。値を高くするとより小さいマイクロポリゴンを生成します。これはシェーディングが細かくなり、品質が良くなることを意味します。
シェーディング品質の変更の効果は、karma:object:dicingquality
の 2乗 の係数によってシェーディングの量を増やしたり、下げたりすることができます。つまり、シェーディング品質を2にすると、4倍シェーディング量を実行し、0.5にすれば0.25倍のシェーディング量を実行します。
Diffuse Samples
間接ディフューズシェーディングの品質を指定します。 サンプル数1は、シェーディング計算あたり約1個の追加ディフューズサンプルに相当します。 サンプル数4は、シェーディング計算あたり約4個の追加ディフューズサンプルに相当します。
Reflect Samples
間接反射シェーディングの品質を指定します。 サンプル数1は、シェーディング計算あたり約1個の追加反射サンプルに相当します。 サンプル数4は、シェーディング計算あたり約4個の追加反射サンプルに相当します。
Refract Samples
間接屈折シェーディングの品質を指定します。 サンプル数1は、シェーディング計算あたり約1個の追加屈折サンプルに相当します。 サンプル数4は、シェーディング計算あたり約4個の追加屈折サンプルに相当します。
Volume Samples
間接ボリュームシェーディングの品質を指定します。 サンプル数1は、シェーディング計算あたり約1個の追加ボリュームサンプルに相当します。 サンプル数4は、シェーディング計算あたり約4個の追加ボリュームサンプルに相当します。
SSS Samples
間接サブサーフェススキャタリングシェーディングの品質を指定します。 サンプル数1は、シェーディング計算あたり約1個の追加サブサーフェススキャタリングサンプルに相当します。 サンプル数4は、シェーディング計算あたり約4個の追加サブサーフェススキャタリングサンプルに相当します。
Diffuse Limit
ディフューズ光線がシーンを伝搬できる回数。
![](../../images/render/mug/limits_tab/DiffuseLimit.jpg)
Reflect Limits や Refract Limits と違って、このパラメータは、シーン内の全体のライトの量を増やし、グローバルイルミネーションの大部分に寄与します。 このパラメータを0より大きく設定すると、Diffuseサーフェスは、直接光源に加えて、他のオブジェクトからのライトも蓄積します。
この例では、 Diffuse Limit を上げて、最終画像の見た目に劇的な効果が出ています。 現実的な照明環境を模倣するには、 Diffuse Limit を上げる必要があることが多いです。 とはいえ、ライトの寄与度は通常ではDiffuseバウンス毎に小さくなるので、 Diffuse Limit を4よりも大きく上げても、シーンでの視覚的な忠実性の改善はほとんどありません。 さらに、 Diffuse Limit を上げると、ノイズレベルとレンダリング時間が劇的に増える可能性があります。
Reflection Limit
![](../../images/render/mug/limits_tab/ReflectLimit.jpg)
光線がシーン内で反射できる回数。
![](../../images/render/mug/limits_tab/ReflectSceneSetup.png)
この例では、2つの鏡の間に配置した被写体を使った典型的な"鏡のホール"のシナリオを載せています。
![](../../images/render/mug/limits_tab/ReflectLimitCompare.jpg)
これは、無限に続く反射を効果的に作成しています。
![](../../images/render/mug/limits_tab/ReflectSubtleCompare.jpg)
このカメラ角度では、その反射制限が非常にわかりやすく、最終画像の精度に大きく影響していることがわかります。 しかし、ほとんどの場合では、その反射制限を巧妙に調整することで、シーン内の反射の数を減らすことができ、レンダリング時間を最適化することができます。
光源がオブジェクトで一度反射すると、それを直接反射と見なされることを覚えておいてください。 そのため、 Reflect Limit を0に設定しても、まだ光源のスペキュラー反射が見られます。
Refraction Limit
![](../../images/render/mug/limits_tab/RefractLimit.jpg)
このパラメータは、光線がシーン内で屈折する回数を制御します。
![](../../images/render/mug/limits_tab/RefractSceneSetup.png)
この例では、10個のグリッドすべてが1列に並んだ単純なシーンを載せています。
![](../../images/render/mug/limits_tab/RefractLimitCompare.jpg)
屈折のあるシェーダを適用することで、それらのグリッドを通じて、背景の夕焼けの画像を見ることができます。
![](../../images/render/mug/limits_tab/RefractSubtleCompare.jpg)
このカメラ角度では、画像の精度を良くするためには、屈折制限をシーン内のグリッドの数に合わせなければなりません。
しかし、ほとんどのシーンでは、この数の屈折オブジェクトすべてが一列に並ばないので、最終画像に影響を与えずに屈折制限を下げることができます。
![](../../images/render/mug/limits_tab/RefractLimitSurfaces.jpg)
この Refract Limit は、オブジェクトの数ではなく、光線が通過しなければならないサーフェスの数を参照していることを覚えておいてください。
光源がサーフェスを一度屈折すると、それを直接屈折と見なされることを覚えておいてください。 そのため、 Refract Limit を0に設定しても、まだ光線の屈折が見られます。 しかし、シーン内のほとんどのオブジェクトは、最低でも2枚のサーフェスを持つので、その光源と直接屈折が最終レンダリングではあまりわからないことが多いです。
Volume Limit
ボリューム光線がシーンを伝搬できる回数。これは Diffuse Limit パラメータと同じように動作します。
Volume Limit パラメータを上げると、よりリアルなボリューム効果が得られます。 これは、特にボリュームの一部のみが直接照明を受けている状況で顕著です。 さらに、ボリュームオブジェクトが他のオブジェクトからの間接照明を受けるためには、 Volume Limit パラメータを0よりも大きく設定しなければなりません。
Volume Limit を0より大きい値に設定すると、Fogボリュームは、ボリュームを通過するライトから、あなたが求めている独特の光の散乱を行ないます。 しかし、 Diffuse Limit と同様に、一般的には、ライトの寄与度は、光線が跳ね返る度に小さくなるので、4より大きい値を使用しても、目で見てわかるほどに現実的な画像になるとは限りません。
また、このパラメータの値を上げると、ボリューム画像のレンダリングに費やされる時間が劇的に増える可能性があります。
SSS Limit
Volume Sampling Mode
Volume Step Rate
Uniform Volume
Uniform Volume Density
Visibility Mask
Trace Sets
Light Categories
Is Matte
これを設定すると、そのオブジェクトが"マット"として扱われます。 つまり、照明が計算されなくなります。 サーフェスの不透明度は、そのオブジェクトの背後にあるオブジェクトを閉塞するのに使用されますが、出力画像にはアルファが書き出されません。
Render Points As
ポイントクラウドをレンダリングする時、カメラの方を向いた円盤、球、法線アトリビュートの方を向いた円盤としてレンダリングすることができます。
Render Curves As
カーブをレンダリングする時、カメラの方を向いたリボン、両端を丸めたチューブ、ポイントに追加された法線アトリビュートの方を向いたリボンとしてレンダリングすることができます。
Override Curves Basis
USDは、Houdiniで直接対応できていないCurve Basisタイプに対応しています。 時には、HoudiniのCurve Basisをオーバーライドしたいことがあります。 例えば、Houdiniの直線カーブをBezier、B-Spline、Catmull-Romのどれかの基底を使ってレンダリングしたい時です。 このメニューは、KarmaがUSD Primsに関連付けられている基底をオーバーライドするようにします。
Note
カーブのトポロジーをターゲットの基底に合わせなければなりません。 例えば、3次曲線の基底を選択した場合、どのカーブも頂点数が最低でも4つなければなりません。 Bezier基底の場合、カーブの頂点数は4 + 3*Nでなければなりません。
Treat As Light Source
発光マテリアルを持ったオブジェクトは、シーン内に光を生成します。 そのオブジェクトの影響力が大きい場合(例えば、サイズ、輝度など)、 Karmaにそのオブジェクトを(通常のライトと同様に)明示的な光源として扱わせることができます。 つまり、この発光ライトが非常に効率的に扱われるようになります。 しかし、そうすることで、システム内の他の部分で余計なオーバーヘッドが発生してしまいます(例えば、メモリ使用量が増えたり、更新時間が遅くなったりします)。
オプションが3つあります。 "No"は、オブジェクトを光源にしないように設定します。 "Yes"は、オブジェクトを光源に設定します。 "Auto"(デフォルト)は、Karmaが内部の経験則に基づいて、そのオブジェクトを光源として扱うかどうかを決めます。
Fix Shadow Terminator