| On this page | |
| Since | 18.0 |
概要 ¶
たいていのレンダラーには、サンプリングレート、モーションブラーコントロール、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 No Authored Value
アトリビュートに現在作成済みの値がない場合は、指定された値がそのアトリビュートに設定されます。 それ以外の場合は、これは何もしません。
Set if Exists
既にアトリビュートが存在している場合にのみ、指定した値をそのアトリビュートに設定します。
このモードを使用することで、正しいタイプのPrimsにのみアトリビュートを設定することができます。 例えば、
UsdGeomSpherePrimsのみがradiusアトリビュートを持つようにしたい場合です。Append Prims
リレーションシップ用で、既存のターゲットリストの後に追加します。
Prepend Prims
リレーションシップ用で、既存のターゲットリストの前に追加します。
Remove Prims
リレーションシップ用で、既存のターゲットリストから値を除去します。
Add
単純な数値型用で、既存の値に加算します。
Multiply
単純な数値型用で、既存の値で乗算します。
Block
アトリビュートが存在していないように見せかけるので、これはデフォルト値を取得します(アトリビュートがPrim上にまだ存在していない場合、これは何もしません)。
Disconnect Input
アトリビュート入力とそのソース間の接続を切断します。 入力接続はアトリビュート値よりも優先度が高いので、入力を接続すると、アトリビュート値が効果を持つようになります。
Do Nothing
このパラメータを無視し、どのようにしてもアトリビュートを作成も変更もしません。
パラメータ ¶
Sampling Behavior
このノードがクックされると、現行時間にただ1個のUSDタイムサンプルを生成するのではなく、たくさんのUSDタイムサンプルを生成することができます。
これは、このノードの後にCache LOPを接続することと同様ですが、こちらの方が非常に高速に評価され、他のノードからのデータをキャッシュ化しません。
これによって、以降のすべてのノードも時間依存にしてしまうノード時間依存を導入することなく、アニメーションデータをUSDで作成することができます。
その結果、一部のLOPネットワークの再生パフォーマンスを大幅に向上させることができます。
どのサンプリングモードでも、このノードのパラメータが時間と共に可変しない、且つ、ステージ上の他のタイムサンプルデータに依存していない場合、 呼応するアトリビュートに対して単一デフォルト値のみがUSD内で生成されます。 時間と共に可変するパラメータに対してのみUSDタイムサンプルが生成されます。
Sample Current Frame
現行時間に対して単一タイムサンプルが作成されます。
Sample Frame Range If Input Is Not Time Dependent
このノードの入力が時間依存の場合、このノードは、 Sample Current Frame モードと同様の挙動をします。 そうでない場合、このノードは、 Sample Frame Range モードと同様の挙動をします。
Sample Frame Range
Start/End/Inc パラメータを使用して、このノードのパラメータが評価される時間に対して複数の時間を生成し、それらの各時間においてアトリビュート毎にUSDタイムサンプルが作成されます。
Start/End/Inc
Sampling Behavior が Sample Frame Range の場合、このパラメータは、このノードで生成されるベースタイムサンプルの数と間隔を制御します。
このパラメータのデフォルト値は、@fstart、@fend、@fincです。
これらの値は、Houdiniを操作する時のグローバルHoudiniアニメーション設定の開始フレーム、終了フレーム、ステップサイズに相当します。
ROPノードを使用してフレーム範囲を生成した場合、これらの値は、実行したそのROPノードで指定された開始フレーム、終了フレーム、ステップサイズに相当します。
このデフォルトは、ディスクに書き出されるUSDファイルに、(Houdiniアニメーション設定に関係なく)ROPで指定されたフレーム範囲ちょうどのタイムサンプルを含めます。
Subframe Sampling
このノードで生成されたプライマリサンプル毎に、これらのパラメータは、そのプライマリサンプル時間付近に追加でサンプルを生成させることができます。 これは、プライマリサンプル時間だけでなく、カメラシャッターの開閉時間ちょうどにも正確なデータが存在することを保証するために非常によく使用します。
Shutter
プライマリサンプル時間を基準にシャッターの開閉時間を指定するのに使用されるメソッドを制御します。
Specify Manually
Shutter Open/Close パラメータの値で、プライマリサンプル時間を基準とした正確なオフセット値を指定します。
Use Camera Prim
Camera Prim パラメータで、シャッターの開閉時間が抽出されるカメラPrimのシーングラフパスを指定することで、プライマリサンプル時間を基準としたオフセット値を指定します。
Shutter Open/Close
Shutter モードが Specify Manually の場合、ここの2つのオフセット値がプライマリサンプル時間に追加され、シャッターの開閉時間が指定されます。 シャッターの開時間は0以下に、閉時間は0以上に設定してください。
Camera Prim
Shutter モードが Use Camera Prim の場合、ここには、入力ノードのステージ上のカメラPrimのシーングラフパスを指定します。 このPrimからShutter Open/Closeのアトリビュート値が読み込まれます。
Samples
プライマリサンプル毎に作成するサブフレームサンプルの数。 これらのサンプルは、シャッターの開時間から閉時間の間で均等に分布します。 このような均等な分布は、ちょうどプライマリサンプル時間にサンプルが作成される場合と作成されない場合があることに注意してください。
Always Include Frame Sample
有効にすると、ちょうどプライマリサンプル時間にサンプルを作成させることができます。 シャッター開時間とシャッター閉時間のどちらの Samples 値も既にプライマリサンプル時間でサンプルが配置されている場合、このオプションを有効にしても何の効果もありません。 そうでない場合、このオプションによって、追加でサンプルが作成されます。 つまり、プライマリサンプルあたりの実際のサンプル数は、 Samples で指定されたサンプル数よりも多くなる可能性があります。
Primitives
このノードを動作させるPrim(s)。
Scene Graph Tree ペインからPrim(s)をこのテキストボックスにドラッグすることで、それらのパスを追加することができます。
または、このテキストボックスの隣にある Reselect ボタンをクリックすることで、ビューア内でPrim(s)を選択することができます。
他にも、この Reselect ボタンを⌃ Ctrlクリックすることで、ポップアップツリーウィンドウからPrim(s)を選択することができます。
コレクション内のすべてのPrimsのマッチング(
/path/to/prim.collection:‹name›)といった高度なマッチングには、プリミティブパターンを使用すると良いでしょう。
Scene Graph Treeから特定の(または複数の特定の)USD Prim(s)をウィンドウまでドラッグ・アンド・ドロップすることで、それらのUSD Prim(s)のみに対して検証を実行することができます。
Note
トランスフォームハンドルがコンテキストを認識できるようにするには、このパラメータを露出させる必要があります。 それをしなかった場合、ハンドルを適切に配置することができません。
Initialize Parameters
このノードが何も変更を適用しなくなるようにするために、すべてのコントロールメニューパラメータの状態を Do Nothing に変更します。 また、最初の Primitives マッチから各プロパティの現行値を取得して、そのプロパティに呼応するパラメータの値を同じに設定します。 つまり、どれかのパラメータのコントロールメニューを Set or Create モードに変更すると、そのプロパティに現行値が設定され、新しい値を設定するよりも既存の値に変更を適用するのが簡単になります。 Rebuild Render-Specific Parameters を使用すると、レンダラー固有のタブのすべてのパラメータがその特定のノードのデフォルト値にリセットされます。 シーン全体でパラメータをリセットしたい場合、トップレベルの Render メニューを開いて、 Rebuild All Render-Specific LOP Parameters を選択すると良いでしょう。
Karma ¶
Enable Motion Blur
モーションブラーを有効にするかどうか。 Display Optionsダイアログでこれを変更したら、レンダラーを再起動する必要があります。
Motion Samples from Stage
モーションサンプルを明示的に選択しなくても、Karmaは、USDステージで作成されたサンプルに基づいてモーションサンプルを選択することもできます。 このオプションは、ステージ上で表現されているモーションを取り込むのにちゃんと正しいサンプル数を選択します。
この設定は、ジオメトリとインスタンスの両方のトランスフォームモーションサンプルと変形モーションサンプルのどちらにも適用されます。
Note
ステージ上のサンプルがカメラのシャッター時間と揃っていない場合、最初と最後のセグメントで(モーションが補間されず切り捨てられてしまうので)若干の補間の不具合が発生してしまう可能性があります。
Velocity Blur
このパラメータでは、(Velocityがあれば)オブジェクトに対して実行する ジオメトリVelocityブラー のタイプを選択することができます。 トランスフォームブラー や 変形ブラー とは別に、時間と共に変化するポイントに保存されたアトリビュートを使って、ポイントの動きに応じたモーションブラーをレンダリングすることができます。 ジオメトリ内のポイント数が時間と共に変化する場合(例えば、ポイントが誕生したり死亡するパーティクルシミュレーション)、このタイプのブラーを使用してください。
フレーム間でジオメトリのトポロジが変化する場合、Karmaはジオメトリを補間できなくて正しくモーションブラーを計算できなくなります。
そのような場合、元のジオメトリが変化しても整合性のあるvelocitiesやaccelerationsのアトリビュートをモーションブラーに使用することができます。
流体シミュレーションのサーフェスがまさにそのよい例です。
この場合と他のタイプのシミュレーションデータでは、ソルバが自動的にVelocityアトリビュートを作成します。
Note
Solarisでのvelocities、accelerations、angularVelocitiesのアトリビュートは、SOPではそれぞれv、accel、wに相当します。
No Velocity Blur
レンダラーでモーションブラーを許可するように設定しても、このオブジェクトに対してモーションブラーをレンダリングしません。
Velocity Blur
Velocityブラーを使用するには、ポイントVelocityを計算して、それをvelocitiesPointアトリビュートに保存しなければなりません。
レンダラーは、このアトリビュートが存在すれば、それを使用してVelocityモーションブラーをレンダリングします(レンダラーがモーションブラーのレンダリングを許可するように設定されていることが前提です)。
シミュレーションノード(例えばパーティクル系DOPs)は自動的にvelocitiesアトリビュートを生成します。
他にも、Point velocity SOPを使ってVelocityを計算して追加することができます。
velocitiesアトリビュート値の単位は、1秒あたりのHoudiniユニットです。
Acceleration Blur
加速度ブラーを使用するには、ポイント加速度を計算して、それをaccelerationsPointアトリビュートに保存しなければなりません。
レンダラーは、このアトリビュートが存在すれば、それを使用して複数セグメントの加速度モーションブラーをレンダリングします(レンダラーがモーションブラーのレンダリングを許可するように設定されていることが前提です)。
シミュレーション系ノードは自動的にaccelアトリビュートを生成することができます。
他にも、Point Velocity SOPを使って加速度を計算して追加することができます。
Acceleration Blur がオンの時、ジオメトリに 角速度 アトリビュート(w)が存在すれば、急回転にもブラーがかかります。
これは、ベクトルアトリビュートであり、各コンポーネントは、X、Y、Z軸を基準とした1秒あたりのラジアンの回転速度を意味しています。
これを Velocity Blur または Acceleration Blur に設定すると、変形ブラーがオブジェクトに適用されなくなります。 これを Acceleration Blur に設定すると、 Geometry Time Samples パラメータを使用して、加速度サンプルの数を設定することができます。
velocities)を使って線形モーションブラーを実行したVelocity Motion Blur。
Geometry Time Samples
シャッターオープン時間に対して 変形 モーションブラーをレンダリングする時に計算するサブフレームのサンプル数。
デフォルトは2サンプルで、高速に変形するジオメトリを適切にブラーさせるのには十分な値です。
Geometry Time Samples は、レンダリングされるUSDファイルで利用可能なサブサンプル数で制限されます。
この例外で許可されているのは、USDSkelデフォーマです。
“Deformation”は、ジオメトリ/SOPレベルでトランスフォームだけを参照したり、キャラクタやフレームに応じて形状が急速に変化するオブジェクトなどの実際のサーフェス変形を参照することができます。
1フレーム内で複雑に変形するオブジェクトには、Geo Time Samplesの数を上げる必要があります。
変形ブラーは、シャッター時間内の アトリビュート値の変化 もブラーさせることができます。
例えば、オブジェクトが移動した時にポイントカラーが急変化する場合、そのCdアトリビュートにブラーをかけることができます。
Geometry Time Samples の数を上げると、Karmaの使用メモリ量に 影響を与えてしまします 。 サンプル数が増える度に、Karmaはシャッター時間の間にサンプリングしている間はメモリ内にそれだけのジオメトリのコピーを維持しなければなりません。 レンダリングを最適化する時、滑らかなモーションの軌跡を生成するのに必要な最低限の Geometry Time Samples を調べることは良い考え方です。
Velocityモーションブラーが有効なオブジェクトでは、変形ブラーは無視されます。
このパラメータでステージ上のサンプルを上書きするには、 Motion Samples From Stage パラメータも無効にする必要があります。
Note
このパラメータでサンプル数を指定した場合、Karmaはステージ上に書き出されたサンプルからデータを補間するようになります。 利用可能なデータをKarmaが使用できるようにするために、単に Motion Samples from Stage 設定を使用することを推奨します。 アクセラレーションモーションブラーを使用する場合は、この設定が必須となります。
Transform Time Samples
シャッターオープン時間に対して トランスフォーム モーションブラーをレンダリングする時に計算するサンプル数。
デフォルトは2サンプル(シャッター時間の開始と終了)で、1つのセグメントにブラーがかかります。
極端に速く移動したりと方向を変更するオブジェクトの場合、サブフレームでの方向の変更を取り込むためにサンプル数を上げる必要があります。
上図の例では、1フレーム内で発生した複雑な動きを正しくレンダリングするために40個のトランスフォームサンプルが必要です(1フレーム内でのこの変化量は、非常に稀で、説明をするために使用しただけです)。
トランスフォームブラーは、各オブジェクトのフレーム間のトランスフォームを補間することでブラーをシミュレーションしているので、計算が軽いですが、サーフェス変形を取り込みません。 変形ジオメトリのブラーを有効にするには、karma:object:geosamplesを上げます。
このパラメータでステージ上のサンプルを上書きするには、 Motion Samples From Stage パラメータも無効にする必要があります。
Note
このパラメータでサンプル数を指定した場合、Karmaはステージ上に書き出されたサンプルからデータを補間するようになります。 利用可能なデータをKarmaが使用できるようにするために、単に Motion Samples from Stage 設定を使用することを推奨します。
Motion Blur Style
オブジェクトのモーションスタイルを指定します。
Rotation Blur (デフォルト)
オブジェクトを原点中心で回転させます。これは、オブジェクトをスピンさせるのに適しています。
Linear Blur
このモーションスタイルは、回転するオブジェクトの体積を維持せず、回転の円弧を描くモーションではなく直線的なモーションになります。 ピボットのトランスフォームなど特別な場合にのみ使用してください。 Linear Blurは、トランスフォームマトリックスの係数を線形補間して正しいブラーを表現します。
Instance Velocity Blur
インスタンスに対してモーションブラーを定義すると、プロトタイプで発生するモーションブラーだけでなく、各インスタンスのトランスフォームにもブラーをかけることができます。 このオプションは、各インスタンスのトランスフォームのモーションブラーの計算方法を制御します。 例えば、プロトタイプをパーティクルシステム上にインスタンス化した場合、Velocityブラーを使用してモーションブラーを計算したいことでしょう(パーティクル上のVelocityによってプロトタイプのトランスフォームにブラーがかかるようになります)。
No Velocity Blur
インスタンスの変形ブラーを使用して、トランスフォームのブラーを計算します。
Velocity Blur
Velocityブラーを使用したいのであれば、そのインスタンスは、ポイント上にvelocitiesアトリビュートを持つポイントインスタンサー、または、v Primvarを持つネイティブインスタンスである必要があります。
velocitiesアトリビュート(v Primvar)値の単位は、1秒あたりのHoudiniユニット長です。
Acceleration Blur
Accelerationブラーを使用したいのであれば、そのインスタンスは、ポイント上にVelocityアトリビュートとAccelerationアトリビュートが含まれたポイントインスタンサーである必要があります。
レンダラーは、(存在すれば)このアトリビュートを使用して、複数セグメントのアクセラレーションモーションブラーをレンダリングします(レンダラーでモーションブラーが有効になっている場合)。
accelアトリビュートはシミュレーション系ノードで自動的に作成されますが、Point velocity SOPを使用して加速度を計算して
accelアトリビュートを追加することもできます。
このaccelアトリビュートは、SOPジオメトリがUSDに変換された時にaccelerationsに変換されます。
Instance Motion Samples
Accleration Blur または Deformation Blur を使用してインスタンスのモーションブラーを計算する場合、このパラメータには、そのモーションブラーで使用されるモーションセグメントの数を指定します。
Volume Velocity Blur Mode
ボリュームに対するVelocityブラーメソッドを選択します。
Lattice Deformation
変形させたラティス構造からモーションをサンプリングします。
Lookup Offset
サンプル座標がVelocityフィールド値でオフセットされます。
Note
Lattice Deformation モードは、より高品質な結果を生成し、ブラー後の重なったボリュームの異なる特徴部などのケースを処理することができます。 Lookup Offset モードは、特にVelocityフィールドの解像度を下げることでパフォーマンスを上げることができます。 しかし、このモードでは、サンプリングされた位置がVelocityフィールドの境界外にある場合にクリッピングの問題が発生しやすいです。 その場合、ラティスにはVelocity情報が存在しません。
Volume Velocity Blur Scale
ボリュームに対してモーションブラー量を軽減または誇張する際に使用されるVelocity乗数。
Volume Velocity Lattice Quality
ボリュームモーションブラーに使用されるラティス超構造の解像度を制御します。
値が1に近いほど、元のVelocityデータに近いVelocityを持った構造になりますが、レンダリング時間が長くなります。
Diffuse Quality
このパラメータは、間接ディフューズコンポーネントの Min Secondary Samples と Max Secondary Samples の乗数として作用します。
Reflection Quality
このパラメータは、間接反射コンポーネントの Min Secondary Samples と Max Secondary Samples の乗数として作用します。
Refraction Quality
このパラメータは、間接屈折コンポーネントの Min Secondary Samples と Max Secondary Samples の乗数として作用します。
Volume Quality
このパラメータは、間接ボリュームコンポーネントの Min Secondary Samples と Max Secondary Samples の乗数として作用します。
SSS Quality
このパラメータは、SSSコンポーネントの Min Secondary Samples と Max Secondary Samples の乗数として作用します。
Volume Step Rate
光線がボリュームを通過した時にそのボリュームをサンプリングする細かさを設定します。 ボリュームオブジェクトはボクセルと呼ばれる3D構造で構成されており、このパタメータの値は、次のサンプリングを実行する際に光線が通過するボクセル数を意味します。
デフォルト値は0.25で、4個のボクセル毎に1回のサンプリングが実行されることを意味します。
1の値はすべてのボクセルがサンプリングされ、2の値はすべてのボクセルが2回サンプリングされることを意味します。
つまり、この Volume Step Rate 値は、ピクセルサンプルと同様の挙動をし、ボリュームオブジェクトに対するサンプル総数の乗数として作用します。
Volume Step Rate を上げるとレンダリング時間が劇的に長くなるので、必要な場合にのみ調整するように注意してください。
また、デフォルト値の0.25よりも大きな値にするとボリュームノイズを軽減することができますが、1を超えた値ではそんなに結果が変わらなくなります。
Volume Shadow Step Rate
シャドウのみのVolume Step Rateを Volume Step Rate を基準に比例して減少させる係数。
値が小さいほど、Karmaはシャドウ光線に対して他のシェーディング光線よりも大きいレイマーチステップサイズを使用するようになります。
1の値は、シャドウ光線とシェーディング光線に対して同じ品質を生成します。
Volume Sampling Field
空っぽの空間の間引きに使用されるボリュームフィールドを名前で指定します。
デフォルトでは、Karmaはdensityフィールドが存在すれば、そのdensityフィールドを使用します。
ボリュームの一部のdensityが0でもその部分をまだレンダリングする必要がある発光ボリュームをレンダリングしている場合、
このパラメータを使用して、別のフィールドを指定してください。
Volume Filter
ボリュームPrimはボリュームチャンネルの評価時にフィルタを使用することができます。
ここには、そのフィルタを指定します。
デフォルトのboxフィルタは、評価が高速で、非常に滑らかな流体シミュレーションに対して鮮明なレンダリング結果を生成します。
ボクセルデータにエイリアシング(端に沿って段々状になっている)が含まれている場合、大きなフィルタ幅を使用したり、もっと滑らかなフィルタを使用して、許容できる結果を生成する必要があります。
エイリアシングがかかったボリュームデータの場合、フィルタ幅が1.5のgaussが適切なフィルタです。
-
point -
box -
gauss -
bartlett -
blackman -
catrom -
hanning -
mitchell
Volume Filter Width
ここには、 Volume Filter プロパティのフィルタ幅を指定します。 このフィルタ幅は、ボクセル数で指定します。 フィルタ幅が大きいほど、レンダリングに時間がかかり、ブラーのかかったレンダリング結果が生成されますが、一部の種類のボクセルデータではエイリアシングに対処する必要が出てきます。
Secondary Noise Level
Convergence Mode が Automatic に設定されている時に、間接バウンスで送信する間接光線の数を決めるノイズ閾値。
この閾値を下げると(例えば、0.001に設定)、理論上はもっと多くの間接光線が送信されてノイズが減りますが、“余分な”光線は Max Ray Samples パラメータによってほぼ相殺されることになります。
ノイズを減らす正しい方法は、この閾値を変更することではなく、ピクセルあたりのサンプル数を上げることです。
Variance Pixel Oracle を使用した場合、両方の閾値パラメータに同じ値を設定してください。 Variance Pixel Oracle の閾値を下げるほど、間接コンポーネントがすぐにその閾値に到達してあまり間接光線が送信されなくなるものの、 Variance Pixel Oracle はBeautyパス内の最終ノイズ量が Variance Pixel Oracle の閾値より多ければ、負荷が大きいカメラ光線をもっと多く送信することを決めます。
Min Secondary Samples
コンポーネント毎のバリアンスアンチエイリアスで送信する光線の最小数。
Max Secondary Samples
コンポーネント毎のバリアンスアンチエイリアスで送信する光線の最大数。
Diffuse Limit
ディフューズ光線がシーンを伝搬できる回数。
Reflection Limit や Refraction Limit と違って、このパラメータは、シーン内の全体のライトの量を増やし、グローバルイルミネーションの大部分に寄与します。 このパラメータを0より大きく設定すると、Diffuseサーフェスは、直接光源に加えて、他のオブジェクトからのライトも蓄積します。
この例では、 Diffuse Limit を上げて、最終画像の見た目に劇的な効果が出ています。
現実的な照明環境を模倣するには、 Diffuse Limit を上げる必要があることが多いです。
とはいえ、ライトの寄与度は通常ではDiffuseバウンス毎に小さくなるので、 Diffuse Limit を4よりも大きく上げても、シーンでの視覚的な忠実性の改善はほとんどありません。
さらに、 Diffuse Limit を上げると、ノイズレベルとレンダリング時間が劇的に増える可能性があります。
これは、すべての制限がサンプル毎に確率的に選択されるので浮動小数点値になっています。
そのため、例えば、 Diffuse Limit を3.25に設定すると、光線の25%の Diffuse Limit が4、75%の Diffuse Limit を3に設定することができます。
Reflection Limit
光線がシーン内で反射できる回数。
この例では、2つの鏡の間に配置した被写体を使った典型的な“鏡のホール”のシナリオを載せています。
これは、実質的に無限に続く反射を作成しています。
光源がオブジェクトで一度反射すると、それを直接反射と見なされることを覚えておいてください。
そのため、 Reflection Limit を0に設定しても、まだ光源のスペキュラ反射が見られます。
このカメラ角度では、その反射制限が非常にわかりやすく、最終画像の精度に大きく影響していることがわかります。 しかし、ほとんどの場合では、その反射制限を巧妙に調整することで、シーン内の反射の数を減らすことができ、レンダリング時間を最適化することができます。
これは、すべての制限がサンプル毎に確率的に選択されるので浮動小数点値になっています。
そのため、例えば、 Diffuse Limit を3.25に設定すると、光線の25%の Diffuse Limit が4、75%の Diffuse Limit を3に設定することができます。
Refraction Limit
このパラメータは、光線がシーン内で屈折する回数を制御します。
この例では、10個のグリッドすべてが1列に並んだ単純なシーンを載せています。
屈折のあるシェーダを適用することで、それらのグリッドを通じて、背景の夕焼けの画像を見ることができます。
このカメラ角度では、画像の精度を良くするためには、屈折制限をシーン内のグリッドの数に合わせなければなりません。 しかし、ほとんどのシーンでは、この数の屈折オブジェクトすべてが一列に並ばないので、最終画像に影響を与えずに屈折制限を下げることができます。 それと同時に、レンダリング時間が短くなります。
この Refraction Limit は、オブジェクトの数ではなく、光線が通過しなければならないサーフェスの数を参照していることを覚えておいてください。
光源がサーフェスを一度屈折すると、それを直接屈折と見なされることを覚えておいてください。
そのため、 Refraction Limit を0に設定しても、まだ光線の屈折が見られます。
しかし、シーン内のほとんどのオブジェクトは、最低でも2枚のサーフェスを持つので、その光源と直接屈折が最終レンダリングではあまりわからないことが多いです。
これは、すべての制限がサンプル毎に確率的に選択されるので浮動小数点値になっています。
そのため、例えば、 Diffuse Limit を3.25に設定すると、光線の25%の Diffuse Limit が4、75%の Diffuse Limit を3に設定することができます。
Volume Limit
ボリューム光線がシーンを伝搬できる回数。これは Diffuse Limit パラメータと同じように動作します。
Volume Limit パラメータを上げると、よりリアルなボリューム効果が得られます。
これは、特にボリュームの一部のみが直接照明を受けている状況で顕著です。
さらに、ボリュームオブジェクトが他のオブジェクトからの間接照明を受けるためには、 Volume Limit パラメータを0よりも大きく設定しなければなりません。
Volume Limit を0より大きい値に設定すると、Fogボリュームは、ボリュームを通過するライトから、あなたが求めている独特の光の散乱を行ないます。
しかし、 Diffuse Limit と同様に、一般的には、ライトの寄与度は、光線が跳ね返る度に小さくなるので、4より大きい値を使用しても、目で見てわかるほどに現実的な画像になるとは限りません。
また、このパラメータの値を上げると、ボリューム画像のレンダリングに費やされる時間が劇的に増える可能性があります。
これは、すべての制限がサンプル毎に確率的に選択されるので浮動小数点値になっています。
そのため、例えば、 Diffuse Limit を3.25に設定すると、光線の25%の Diffuse Limit が4、75%の Diffuse Limit を3に設定することができます。
SSS Limit
SSS光線がシーン内を伝搬することができる回数。 これは、 Diffuse Limit パラメータと同様の方法で動作します。
これは、すべての制限がサンプル毎に確率的に選択されるので浮動小数点値になっています。
そのため、例えば、 Diffuse Limit を3.25に設定すると、光線の25%の Diffuse Limit が4、75%の Diffuse Limit を3に設定することができます。
Limit Components
跳ね返りのLimit Colorが適用される光線タイプ。
Limit Color
特定の光線タイプがこの制限に到達した時に使用されるカラー。
Uniform Volume
このオブジェクトが均一密度のボリュームと見なしてレンダリングするかどうか。 サーフェスジオメトリ上にこのプロパティを使用すると、レンダラーはそのボリューム密度が均一であると想定してサンプルをもっと最適に配置することができるので、実際に均一密度のボリュームオブジェクトを作成するよりも効率的です。 そのサーフェスジオメトリのサーフェス法線は、どちら側にボリュームがあるのかを決めるのに使用され、その法線は内側から外に向いた方向となります。 サーフェスは閉じている必要はありません。もしサーフェスが閉じていなければ、そのボリュームはサーフェスから無限に遠い方へ延長されます。 閉じていないサーフェスは、そのサーフェスのエッジ付近で予期しない結果を招いてしまう場合があるので、カメラ視点をエッジから遠ざけるようにしてください。
Uniform Volume Samples
均一ボリュームをレンダリングする時(karma:object:volumeuniformが有効な時)に生成するサンプル数。
これらのサンプルは、すべて明度が同じであれば同じ画像寄与を生成するように分布されます。
Note
グローバルの Screendoor Limit が0より大きい時、このプロパティは何の効果もありません。
そのため、事実上、非推奨となっています。
Render Visibility
カテゴリエクスプレッションを使用して、色々なタイプの光線からのオブジェクトの可視性を制御します。 このパラメータは、 Phantom (不可視)と Renderable (レンダリング可能)の切り替えをまとめて制御できるようにしたものであり、KarmaやVEXでサポートされている色々なタイプの光線からのオブジェクトの可視性をより詳細に制御することができます。
|
カメラから送信された光線 |
|
シャドウ光線 |
|
ディフューズ光線 |
|
反射光線 |
|
屈折光線 |
例えば、Phantomオブジェクトを作成するには、このエクスプレッションに-primaryを設定します。
レンダリング不可なオブジェクトを作成するには、このエクスプレッションに空っぽの文字列の を設定します。
これらのトークンは、VEX関数のtrace()やgather()のraystyle引数に渡す文字列に呼応しています。
Stencil Map
このマップタイプは、シェーディングエンジンを呼び出さずにポリゴンの可視性を制御します。
つまり、通常ではシェーダ/マテリアルに不透明マップは不要です。
このStencil Mapは、デフォルトのテクスチャ座標(st)を使用して、フィルタリングされていないテクスチャを高速で評価します。
デフォルトでは、値が0のピクセルは、すべての光線に対してポリゴンを非表示にします。
しかし、 Stencil Threshold を使用することで、この制限を変更することができます。
Stencil Threshold
この閾値以下の値のピクセルが光線に対して非表示になります。
Cusp Angle
オブジェクト上に法線がない場合、この値より大きい二面角を持つエッジがカスプ(尖)化されます。
Mantraと互換性を持たせるために、Karmaはvm_cuspangleDetailアトリビュート(これは、この設定よりも優先度が高いです)も探します。
Holdout Mode
これを Matte モードに設定すると、オブジェクトはカットアウトマットと見なされます。
オブジェクトのライティング寄与とアルファは、“holdouts”接頭辞が付いたLPE AOVsに転送されます。
Holdout Mode は、ray:hitPやray:hitNなどのユーティリティAOVには影響を与えません。
Background モードは Matte モードと同様ですが、間接バウンス内にシャドウ寄与が乗算された“事前照明”が出るように背景プレートで使用します。
シェーダのディフューズアルベドを使用して事前照明イラディアンスが決定されます。
Fix Shadow Terminator
スムース法線とフェース法線との相違が原因でローポリメッシュ上に自己シャドウの乱れが発生しないように、シャドウ光線のシェーディング位置を調整します。
Custom Tracesets
カスタムトレースセット名をスペースで区切ったリスト。
トレースセットをKarma Texture Baker LOPで使用することで、メッシュを別々のパーツに細分化することができます。
例えば、キャラクタの服に
pants、shirt、jacketといったトレースセットが設定されているとします。
Karma Texture Baker LOPの Bake Traceset パラメータを使用することで、ベイクしたいパーツ/トレースセットを定義することができます。
LPE Tag
ライトパスエクスプレッションで使用するためにライトまたはオブジェクトに割り当てるカスタムラベル。
Enable Internal Reflection
光沢のある透過BSDFの背面で内部反射を評価することができます。 内部反射を適用したいのであれば、このオプションを有効にします。
Note
Thin Walled が有効なMaterialX Standard Surfacesでは、このオプションは何の効果もありません。
このマテリアルは常に内部反射を表示します。
Thinwall at Refract Limit
全反射(Total Internal Reflection:TIR)が原因で屈折オブジェクト内部にライトパスが閉じ込められた結果、それが屈折/反射制限に到達して暗いアーティファクトが発生してしまう場合があります。 Thinwall At Refract Limit は、屈折/反射制限に到達した時点でサーフェスを“薄壁”として扱うので、ライトパスがそれ以上の当たりで屈折したり反射することなくそのまま通過できるようになります。 これによって、ライトパスは高い屈折/反射制限を必要とせずに屈折オブジェクトから抜けることができます(見た目とパフォーマンスの両方が改善されます)。
SSS Traceset
ランダムウォークサブサーフェススキャタリング用の独自トレースセット。 このトレースセットを使用しなかった場合、ランダムウォークは自身に対してのみトレースします。 このトレースセットを使用した場合、ランダムウォークはシーン内で同じトレースセット名を持つすべてのジオメトリに対してトレースします。
Note
インスタンスを使用する場合、このプロパティはプロトタイプ上で定義しなければなりません。 インスタンス単位のトレースセットはサポートされていません。
Direct Refraction Subset
屈折コンポーネントを持つ複合BSDFsの場合、指定した場所に属しているライトの直接照明のみが適用されます。 ジオメトリ法線と同じ方向を向いた光線は Outside と見なされます。 ソリッド/閉じたマニフォールドの透明マテリアルの場合、このパラメータを Outside に設定すると、直接照明のノイズが減り無駄なシャドウ光線が削減されるのでレンダーパフォーマンスを改善することができます。
Dielectric Priority
屈折マテリアルの優先度を指定します。これによって、レンダラーは、レンダリング時に多数の重なった屈折マテリアルからどれを優先させるのか選択することができます。
これは、グラスの中の水と氷などの効果で有効です。
デフォルトは0(最高優先度)で、数値が上がると(1、2、3など)、優先度が下がっていきます。
Bump Shadow Terminator
強いバンプマップや法線マップからの急なシャドウの遷移を和らげます。 シャドウターミネーターは、指定された閾値(単位はラジアン)まで滑らかにブレンドされます。 0の値は、この効果を無効にします。
Enable Caustics
透過オブジェクトからのブルートフォース(総当り)によるコースティクス。 間接ディフューズバウンスで見受けられる光沢BSDFの評価を許可します。 その計算には非常に膨大な数のディフューズ光線が必要となることが多いです。 特に Roughness Clamp パラメータに非常に小さな値を設定した場合、または、 Indirect Guiding の機能が無効な場合でそうなります。
Roughness Clamp
シェーダで設定された値を超えて、真コースティクスのために最小の粗さを強制します。 この値を上げると、コースティクスの精度は悪くなるもののノイズを少なくすることができます。
Note
Roughness Clamp はGGX BSDFでのみ動作し、Phong BSDF、円錐BSDF、スペキュラBSDFには何の効果もありません。
Evaluate BSDF on Fake Caustics
BSDFが擬似コースティクスに影響を与えるようにします。 例えば、赤いボトルは自動的に赤い影を落とすようになります。 BSDFを無効にするとレンダリング時間を短くすることができますが、代わりに Color を使用して一定の影の色を設定する必要があります。
Color
疑似コースティクスに色味を付けます。 これを使用して、BSDFの結果を暗くしたり、BSDFが無効な場合に一定の影の色を設定することができます。
Opacity
疑似コースティクスの不透明度を制御します。これを使用して、BSDFの結果を明るくすることができます。
Fresnel Darken
疑似コースティクスシャドウのフレネル効果の暗さを制御します。
0の値はこの機能を無効にし、1の値はシャドウを完全に暗くします。
Efficient Emissive Sampling
発光マテリアルを持つオブジェクトがシーン内にライトを生成するようになります。 オブジェクトが十分に影響力を持っている場合(サイズ、明るさなど)、Karmaはそのオブジェクトを(通常のライトと同様に)明示的な光源であるかのように扱うことができます。 つまり、放出される光が非常に効率よく処理されるようになります。 しかし、これを行なうと、システム内の他のところで余計なオーバーヘッドが発生します(例えば、メモリ使用量が増えたり、更新時間が遅くなったりなど)。
3つのオプションがあります。 No は、オブジェクトが光源でないと設定します。 Yes は、オブジェクトが光源であると設定します。 Auto (デフォルト)は、Karmaが内部の経験則に基づいてオブジェクトを光源として扱うべきかどうかを決定します。
Is Portal
有効にすると、オブジェクトは、ポータルジオメトリの可視性に基づいてドームライトの特定の部分のみを許可する“ライトポータル”に変わります。
Portal Dome Lights
このポータルに関連付けるドームライトをスペースで区切ったリスト。
Render Points As
ポイントクラウドをレンダリングする時、カメラの方を向いた円盤、球、法線アトリビュートの方を向いた円盤としてレンダリングすることができます。
Render Curves As
カーブをレンダリングする時、カメラの方を向いたリボン、両端を丸めたチューブ、ポイントに追加された法線アトリビュートの方を向いたリボンとしてレンダリングすることができます。
Note
技術的な制約が原因で、Karma CPUでは直線カーブを方向付きリボンとしてレンダリングすることができません。 その場合、そのカーブを読み込んだインポート系LOPに移動して、 Geometry Handling ▸ Treat Polygons as Subdivision Surfaces を有効にしてください。 このオプションは、カーブをB-Splineとして取り込みます。
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でなければなりません。
Width Scale
ポイントやカーブの幅に適用される均一スケール。 これを使用することで、ジオメトリを修正することなくポイントのサイズやカーブの半径を調整することができます。
Cull Backface
有効にすると、カメラに背いているジオメトリはレンダリングされません。
Dicing Quality
このパラメータは、スムースサーフェス(サブディビジョンサーフェスや変位サーフェス)のジオメトリサブディビジョン解像度を制御します。
他のすべてのパラメータがデフォルトの時、値を1にすると、近似で 1つ のマイクロポリゴンがピクセル毎に作成されます。
値を高くするとより小さいマイクロポリゴンを生成します。これはシェーディングが細かくなり、品質が良くなることを意味します。
シェーディング品質の変更の効果は、karma:object:dicingqualityの 2乗 の係数によってシェーディングの量を増やしたり、下げたりすることができます。
つまり、シェーディング品質を2にすると、4倍のシェーディング量を実行し、0.5にすれば0.25倍のシェーディング量を実行します。
True Displacements
この設定は、オブジェクトに対するディスプレイスメントシェーダの実行方法を制御します。
Bump Mapped Displacement
ディスプレイスメントシェーダは実行されるものの、サーフェス法線のみを修正します。
これはジオメトリをDicingしないので、メモリを節約することができます。
Karma XPUでは、このオプションは、浮動小数点ベースのディスプレイスメントマップの組み合わせでのみ動作します。
また、MtlX Image VOPの Signature ドロップダウンメニューを必ず Float に設定してください。
このモードをオンにしたKarma XPUでは、ベクトルベースのディスプレイスメントマップはサポートされていません。
2個以上のMtlX Standard Surface VOPを混在させた場合、このモードは通常ではKarma XPUでは動作しないので注意してください。
True Displacement
ジオメトリをDicingし、変位させます。 これは、変位させたサーフェスのシルエットや影が適切に出ます。
Disable Displacement Shader
ディスプレイスメントシェーダを完全に無効にします。 これによって、ジオメトリにはバンプマップもディスプレイスメントも適用されません。
Dicing Minimum Depth
-1に設定しなかった場合、サブディビジョンまたは変位をするためにフェースをDicingする時、Karmは各フェースの行と列の最小数をこの値の2乗に設定します。
Dicing Maximum Depth
-1に設定しなかった場合、サブディビジョンまたは変位をするためにフェースをDicingする時、Karmaは各フェースの行と列の最大数をこの値の2乗に設定します。
Dicing Minimum Depth と同じ(またはそれより小さい)値に設定すると、実質的に、ラスター空間/オフスクリーン単位を無視した固定パラメトリックサブディビジョンと同等になります。
この値を-1のままにすることを推奨します。
Dicing Predisplace
これを有効にすると、ラスタ空間の測定精度が改善されるようにダイシング前に試行的に変位を適用することができます。 これによって、極端な変位が発生した場合や、変位後にスクリーン外のジオメトリがカメラフラスタムに入る場合などにテッセレーション不足を防ぐことができます。
Low Resolution Object ID
このオブジェクトを Texture Baking Object ID に呼応した低解像度オブジェクトとして定義します。 これは、このオブジェクトのテクスチャ空間がベイク処理される空間であることを意味します。 このオブジェクトIDの高解像度オブジェクトが存在しなかった場合、これがベイク空間内のテクスチャでレンダリングされる外観にもなります。 これは、テクスチャベイクには必須です。
Cage Object ID
このオブジェクトを Texture Baking Object ID に呼応したケイジオブジェクトとして定義します。 これは、低解像度オブジェクトのテクスチャベイク時に、このオブジェクトを使用して法線の不連続性を解決するのに役立つことを意味します。 これは、テクスチャベイクには任意です。
High Resolution Object ID
このオブジェクトを Texture Baking Object ID に呼応した高解像度オブジェクトとして定義します。 これは、このオブジェクトのレンダリングの外観が低解像度オブジェクトのテクスチャ空間にベイク処理されるものであることを意味します。 これは、テクスチャベイクには任意です。
Identifier Traceset
高解像度オブジェクトのトレースセットの名前。
低解像度オブジェクトにはbake_traceset文字列Primvarも必要になります。
Identifier Traceset の名前とbake_traceset文字列Primvarの両方が一致すると、そのオブジェクトはプライマリ光線に対して可視になります。
Visibility Traceset
Identifier Traceset で定義されているトレースセット。 そのトレースセットが利用可能な場合、Occlusion、Curvature、Thickness、Cavityなどのセカンダリ光線に対してどのオブジェクトを可視にするのか指定します。
Visibility Cull Backface
有効にすると、セカンダリ光線(Cu、Cv、Thなど)から背いているジオメトリと交差しません。
Enable
オブジェクトライン単位のオン/オフ。
Radius
アウトラインの太さを制御します。
このパラメータのアークタンジェントは、エッジ検出を行なうためのステンシル光線を飛ばす円錐角を決定します。
この値がkarma:global:outline_radiusに乗算されます。
Contour
輪郭検出のオン/オフ。
輪郭線は、export_outline_idが(シェーダエクスポートとして)値/テクスチャとして指定されていない場合には、自動で割り当てられたオブジェクトIDに基づきます。
Id Threshold
主光線のID値とステンシル光線のID値の差異で別IDを判定する閾値。
Crease
ハードサーフェスの折り目のオン/オフ。
Crease Threshold
ステンシル半径の領域内におけるN方向の変化量で折り目を判定する閾値。
Depth
デプスラインのオン/オフ。
Depth Threshold
ステンシル半径の領域内におけるZ深度値の変化量でデプスラインを判定する閾値。
Secondary
間接ラインのオン/オフ。