On this page |
|
概要 ¶
これらのプロパティはMantraのレンダリングをコントロールします。そのプロパティの場所は、Edit Parameter Interfaceウィンドウの Render Properties タブの利用可能なプロパティリストの中のMantra
フォルダにあります。ノードを選択して、パラメータエディタのギアメニューから Edit Rendering Parameters を選択すれば、プロパティをレンダードライバ、カメラ、オブジェクト、シェーダ、プロパティノードに追加または削除することができます。
Note
Mantraへのコマンドラインオプションすべて(-H
と-P
を除く)がプロパティでも同等のものを持っているので、コマンドラインで指定しなくても、それらをドライバノードに追加することができることに注目してください。
上級ユーザなら、Mantraで定義したすべてのプロパティ(ドキュメント化されていないプロパティを含む)の完全リストを取得するには、Mantraでray_show
コマンドを実行することができます。例:
echo ray_show object | mantra echo ray_show renderer | mantra
Note
Mantraは、(-D
オプションを指定しない限りは)起動時にRenderProperties.json
ファイルからデフォルト値を読み込みます。これによって、スタジオはMantraのプロパティのデフォルト値を変更することができます。
Warning
ドキュメント化されていないプロパティは、いつか変更され、完全にサポートされなくなる場合があります。
プロパティ ¶
Deep Output ¶
画像を生成する時、Mantraはサンプルフィルターを実行して、サンプルを単一カラーに合成します。そして、Mantraはピクセルフィルターを実行して、ピクセルの最終カラーを生成します。 Deep Resolverは、サンプルフィルターの前に各サンプルに関する情報を保存するのに使用されます。これにより、画像Resolverが合成前に個々のサンプルに関する情報を保存することができます。
Pythonからvm_deepresolver
を変更したい場合、利用可能なモードを示した3つのトークン(null
、shadow
、camera
)のどれかを指定しなければなりません。
No Deep Resolver
Deep Imageが出力されません。
Deep Shadow Map
不透明度(Of
)と深度(Pz
)の画像平面のみが書き出されます。
Deep Camera Map
Deep Image向けに選択したすべての平面が書き出されます。 Exclude from DCM を使用すれば、Deep Image出力から特定の画像平面を残すことができます。
Houdini14.5で廃止されました。各ピクセルサンプルの補間方法を指定します。いくつかの他のDeep Imageフォーマットとは違い、Mantraはサンプル毎に単一の深度値のみを書き出します。
discrete
各深度サンプルは、離散サーフェスを意味します。
continuous
各深度サンプルは、連続体の一部(つまり、ボリューム)です。
0から10の圧縮値。ボリュームサンプルに対して不可逆圧縮モードで保存されるサンプル数の制限に使用されます。この圧縮パラメータは、不透明度の値に適用され、サンプル毎の不透明度の最大許容誤差を決めます。
0より大きい圧縮値では、次の関係性が保持されます: OfError = 1/(2^(10-compression))
Deepファイルに保存されたサンプルは、合成なしで保存することができます。つまり、各サンプルが同じピクセルに対して他のサンプルと無関係です。または、事前合成で保存することができます。 つまり、各サンプルは、その背後にあるサンプルの累積不透明度とそのサンプル自体の不透明度を保存します。
Force DCM Pixel Filter on Image Planes
DCMをレンダリングする時、通常の/非Deepの画像平面に強制的にDCMと同じピクセルフィルタ(つまり、Unit Boxフィルタ)を適用します。
不透明度サンプルの保存に使用するビット数を指定します。デフォルトは16ビットです。値が大きいほど、忠実性のメリットがあまりなくファイルサイズが大幅に増えてしまうことがあります。
深度サンプルの保存に使用するビット数を指定します。デフォルトは32ビットです。値が小さいほど、カメラから離れた場所のサンプルが無駄に離散化されてしまいますが、ファイルサイズを大幅に小さくすることができます。
通常では、不透明度がフルカラーで計算され、フルカラーで保存されます。フルカラーが不要でファイルサイズを小さくしたいのであれば、この設定を使用して、フルカラー値をモノクロで保存することができます。
Monochrome
:
不透明度が単一のグレースケールチャンネルで保存されます。
Full Color
:
不透明度が赤、緑、青のチャンネルで保存されます。
Houdini14.5で廃止されました。圧縮で使用され、サンプルの最短ポイント、最長ポイント、中点のどちらで保持するかどうかを決めます。
Nearest sample
Pz
の最小値を選択します。
Midpoint sampling
Pz
の中間値を選択します。
Farthest sample
Pz
の最大値を選択します。
ディープカメラ画像には、いくつかの“特別な”画像平面を含めることができます。それらの画像平面を使用することで、ディープ画像の合成を改良することができます。現在のところ、その認識される特別な平面は以下のとおりです:
zfront
デプスサンプルのz値。
zback
ボリュームサンプルに関しては、これには、そのサンプルの最も遠い範囲を指定します。
deepcover
サンプル領域をビットマスクとして保存します。
deepflags
シェーディングサンプルがボリュームなのかMatteサーフェスなのかを示したフラグを保存します。
ディープカメラ画像に対してMIPマップ画像を作成するかどうか。
ディープカメラ画像はどちらかといえばディープ合成に使用するので(つまりMIPマップを必要としない)、デフォルトでは、ディープカメラ画像に対してMIPマップは作成されません。
詳細は、DCM Filenameを参照してください。
詳細は、DCM Interpolationを参照してください。
詳細は、DCM Compressionを参照してください。
詳細は、DCM Pre-Composite Samplesを参照してください。
Mantraでは、ディープシャドウ画像を事前に合成しておく必要があります。 合成されていないシャドウマップを使用した場合、レンダリングが遅くなったり、悪い結果を生成してしまうことがあります。
詳細は、DCM Of Storageを参照してください。
詳細は、DCM Z Storageを参照してください。
詳細は、DCM Z-Biasを参照してください。
詳細は、DCM Of Sizeを参照してください。
詳細は、DCM Z-Sample Filterを参照してください。
ディープシャドウ画像には、いくつかの“特別な”画像平面を含めることができます。それらの画像平面を使用することで、ディープ画像の合成を改良することができます。現在のところ、その認識される特別な平面は以下のとおりです:
zfront
デプスサンプルのz値。
zback
ボリュームサンプルに関しては、これには、そのサンプルの最も遠い範囲を指定します。
deepcover
サンプル領域をビットマスクとして保存します。
deepflags
シェーディングサンプルがボリュームなのかMatteサーフェスなのかを示したフラグを保存します。
これらの特別なチャンネルに関しては、Improved Deep Compositingを参照してください。
Cryptomatte ¶
出力するCryptomatteレイヤーの数。 Cryptomatte Resolverを有効にするには、これを1以上に設定してください。 このCryptomatte Resolverは、サンプルフィルタリングの前の各サンプルの(ユーザ指定の文字列プロパティのハッシュに基づいた)IDと不透明度のペアを保存するために使用されます。
IDを生成するプロパティ。materialname
とname
は、それぞれマテリアルパスとオブジェクトパスのビルトインのプロパティ名です。
他にも、ユーザプロパティを含む文字列タイプのオブジェクトプロパティを指定することができます。
Cryptomatteレイヤーの出力パス。OpenEXR形式を推奨します。 各レイヤーを固有のファイルに書き出す必要があります。その出力ファイル名が他のレイヤーに使用されていた場合、そのレイヤーは無効になります。 Cryptomatteレイヤーの出力パス。OpenEXR形式を推奨します。 このパスを指定しなかった場合、このレイヤーはプライマリ出力と一緒に保存されます。 複数のレイヤーに同じ Different File パスを使用することで、複数レイヤーのCryptomatte画像を書き出すことも可能ですが、混同を避けるために Channel Name を固有にしてください(2枚以上の同じチャンネル名のレイヤーで同じファイルに書き出した場合には、一時的なチャンネル名が生成されます)。
Dicing ¶
シーン内のオブジェクト毎のシェーディング品質(vm_shadingquality
)パラメータすべてに対するグローバル乗数。このパラメータを使用することで、全体的にシェーディング品質を上げたり、下げたりすることができます。オブジェクトに使用するシェーディング品質は以下の式で決まります。
shadingquality = object:shadingquality * renderer:shadingfactor
このパラメータは、すべてのレンダリングエンジンに対してジオメトリのサブディビジョン解像度を制御し、さらにマイクロポリゴンレンダリングに対してシェーディング解像度を制御します。他のすべてのパラメータがデフォルトの時、値を1にすると、近似で1つのマイクロポリゴンがピクセル毎に作成されます。値を高くするとより小さいマイクロポリゴンを生成します。これはシェーディングが細かくなり、品質が良くなることを意味します。
レイトレースエンジンでは、シェーディング品質は、サーフェスのシェーディング量を変更することなく、滑らかなサーフェス(NURBS、サブディビジョンとしてのレンダリング)とディスプレイスメント用のジオメトリのサブディビジョン品質にのみ影響を与えます。レイトレースを使用する時は、サーフェスシェーディング品質を良くするためには、ピクセルサンプルとレイサンプリングのパラメータを使用しなければなりません。
シェーディング品質の変更の効果は、vm_shadingquality
の 2乗 の係数によってシェーディングの量を増やしたり、下げたりすることができます。つまり、シェーディング品質を2にすると、4倍シェーディング量を実行し、0.5にすれば0.25倍のシェーディング量を実行します。
カーブをレンダリングする時、カーブをサーフェスに変換してdicingするので、そのサーフェス上の複数のポイントにサーフェスシェーダが実行されます。これはカーブをカーブのようなサーフェスにするときには役に立ちますが、効率が悪くなります。デフォルトでは単にカーブのポイントにシェーダを実行し、作成されたサーフェス上にシェーディングしたポイントを複製します。
モーションブラーの量が非常に多い高速移動オブジェクトは、遅く移動するオブジェクトまたは静的オブジェクトと同じサンプリング品質でレンダリングされます。 しかし、非常にブラーのかかったオブジェクトをレンダリングした場合、通常なら細かなディテールが失なわれます。 そういった場合、高速に移動するオブジェクトに対してシェーディング品質を下げることで、モーションブラー内のディテールの損失が減るので、そのような最適化は役立ちます。
Motion Factorを上げると、モーションの速さに基づいてオブジェクトのシェーディング品質が動的に下がります。 この最適化は、主にサブディビジョンサーフェスやディスプレイスメントベースシェーディングのオブジェクトのように、レンダリング時に洗練化されるオブジェクトに対して役立ちます。
上図の例では、Motion Factorが最終レンダリングの品質に大きく影響を与えていないことがわかります。
しかし、場合によってはディテールがたくさん失なわれてしまう可能性があります。特に、表面のディテールがシェーダによって生成されている場合です。 例えば、大きなディスプレイスメントによって形状を定義しているオブジェクトがそれです。
このような場合、表面のディテール量が期待したように維持できるようにMotion Factorの値を注意して調整しなければなりません。
Note
実際に使用されるMotion Factorは、シーン内のモーションの度合いに依存しています。 詳細は、MantraレンダリングプロパティページのMotion Factorを参照してください。
大きくブラーするオブジェクトに対して自動的にシェーディング品質を調整します。オブジェクトのモーション係数を上げると、モーションの速さに応じて動的にシェーディング品質を下げます。これは高速に移動するオブジェクトのレンダリングを飛躍的に高速化することができます。また、被写界深度に影響を与え、深い焦点深度のシーンの速度を改善します。
モーション係数は以下の式を使ってシェーディング品質を下げています:
new_shading_quality = shading_quality / max(motion_factor * pixels_of_motion/16, 1)
これは、motion_factor > 0
の場合にのみTrueです。
フレームで16ピクセル以上動くオブジェクトのシェーディング品質は上記の係数で下がります。例えば、1のシェーディング品質を持つ32ピクセル以上ブラーするオブジェクトは、0.5の品質に下がります。このパラメータには非常に大きな値を使わないでください。0から1の間の値が合理的です。
Ray TracingまたはPhysically Based Renderingのレンダリングエンジンを使用すると、モーション係数はサブディビジョンサーフェス、NURBS/Bezier、ディスプレイスメントの形状の細分化にのみ影響があり、シェーディングの量は変わりません。
プリミティブをMantraでレンダリングする時、プリミティブが大きすぎてレンダリングできない時は、プリミティブをより小さいプリミティブに分割します。それらのプリミティブは、メジャーを使用して大きすぎないかどうか測定されます。
利用可能な色々なメジャーがいくつかあり、各メジャーは、いくつかのオプションの引数を受け取ります。
Non-Raster Measuring (nonraster [-z importance]
)
これは3D空間でジオメトリを測定します。 Z-Importance はサーフェスのZ成分をバイアスするのに使用します。 Z-Importance が0なら、オブジェクトのXとY成分がオブジェクトのサイズを決める唯一の寸法であることを意味します。これはRaster Space Measuringとほぼ同じです。
Z-Importance を1に上げることで、Zの測定に意味が出てきます。 Z-Importance を1よりも大きくすることが可能です。
XY平面でのグリッドを考える場合、Z-Importanceは何の効果もありません。しかし、グリッドがほぼXZ平面にあるなら、Z-Importanceはdicingに大きな影響があります。 Z-Importance が0なら、投影した測定のみが使われます。その結果、細長い帯が作成されます。 Z-Importance が1なら、グリッドはもっと均一に細分化されます。値が1より大きい場合、Z方向にもっと分割が実行されます。
これはディスプレイスメントマップを実行するときに重要です。 Z-Importance を上げればディスプレイスメントシェーディングされた地面の品質を良くします(例)。デフォルト値の1は通常では、すべての入射角に対してシェーディング品質が1の鮮明で高品質なディスプレイスメントになります。
これはMantraではprmanのraster-orient
フラグと同等です。
Raster Space Measuring (raster
)
スクリーン空間でジオメトリを測定します。これは"nonraster -z 0"
の測定とほぼ同じなので、そちらを推奨し、これは廃止予定です。
Uniform Measuring (uniform
)
均一な分割を生成します。分割のサイズは、マイクロポリゴンレンダーの Geometry Quality または Shading Quality で制御します。
このパラメータは、カメラから直接見えないジオメトリに対するシェーディング品質スケール係数を制御します。 視界の範囲外にあるジオメトリ(つまり、副光線からのみ見えるジオメトリ)に対して、Mantraは、そのジオメトリとフラスタム(視野角錐台)の境界との角度に基づいて、シェーディング品質を滑らかに下げます。 値が小さいほど、特に、カメラが近くのジオメトリのディスプレイスメント境界の範囲内にあるシーン、直接見えているプリミティブよりも隠れているプリミティブの方をもっと粗くDicingすることが可能なシーンでは、パフォーマンスが良くなります。
このパラメータはカーブとポイントに対して最小レンダリング幅をラスター空間で設定します。投影したポイントでのこの値よりも小さいポイント、カーブセグメントが代わりにその不透明度を最小幅と実際の幅の比率としてスケールダウンします。これは非常に小さいポイントとヘアーとファーのような細いカーブを逆にピクセルサンプルを上げて補間することなくレンダリングするのに役に立ちます。
この値は0.5から1.0の範囲にしておくべきです。値が大きいほどレンダリング時間が極端に増える場合があります。なぜなら、ジオメトリは太くなり、透明のサンプルを多く取ることになるからです。値を0にすればオプションが無効になります。
このオプションは、さらなるパフォーマンスのためにStochastic Transparencyと合わせて使用することができます。
このプロパティはほぼ平坦なプリミティブのテセレーションレベルを制御します。値を上げることで、より多くのプリミティブが平坦とみなされ、細分化が少なくなります。より精密(最適化がすくない)なほぼ平坦なサーフェスにするなら、このオプションを 下げて ください。
このプロパティは、レンダリング開始前に、このオブジェクトが全てのディスプレイスメントとサブディビジョンが適用されたジオメトリを生成するようにします。この設定を有効にすると、レイトレースは膨大なメモリを必要としますが非常に速くなります。
Disable Predicing
ジオメトリが光線に当たると、細分化されます。
Full Predicing
同時にすべてのジオメトリを細分化して保存します。
Precompute Bounds
正確な境界ボックスを計算するためにジオメトリをすべて細分化します。 この設定では、ボックスが計算されればすぐに細分化したジオメトリを破棄するのでメモリ効率が非常に良いです。 これはFull Predicingのようにメモリをたくさん消費する必要がなく大きなディスプレイスメント境界を使ってディスプレイスメントを効率よく処理するのに役に立ちます。
レイトレースするとき、モデル上のすべてのポリゴンが(プライマリまたはセカンダリの光線で)可視ならば、ジオメトリの一部をキャッシュ化してオンザフライでジオメトリを再生成するよりは、モデル内のすべてのジオメトリをPre-diceする方が効率が良いです。これは特にグローバルイルミネーションを計算するときがそうです(光線間の干渉が少ないので)。
プリミティブ単位でのマテリアルの割り当て(Material SOP)は現在サポートされていません。
Driver ¶
IFDにバイナリジオメトリを保存します。このオプションをオフにすれば、ASCIIジオメトリがIFDに保存されます。バイナリは非常に効率的ですが、ASCIIは可読性があります。
ジオメトリをIDFファイルに書き出します。これをオフにすると、代わりにHoudiniはジオメトリを外部一時ファイルに書き出します。 このオプションをオフ(デフォルト)のままにすると、レンダリングが速くなり、あまりディスク容量を使用しません。 詳細は、IFDジオメトリを参照してください。
Shared temp storageとLocal temp storageも参照してください。
Reuse cached outlined geometry
通常では、Save Geometry Inlineがオフの時、HoudiniはIFDを生成する際に常にジオメトリファイルを書き出し、既存のファイルを上書きします。 このオプションを有効にすると、同じ名前のファイルが既に存在した時に、Houdiniは、それらの既存ファイルを上書きせずに再利用するようになります。 これは、ファイルの更新日時で比較 せず 、ファイル名 だけ をチェックしているので、そのジオメトリが一度生成されたら、これがオンになっている限りは、そのジオメトリはまったく更新されなくなります。 これをオンにすることで、ジオメトリを更新する必要がない限りは、ライティングを飛躍的に高速化することができます。
このプロパティを追加した場合、必ず最新のジオメトリを使って最終レンダリングを行なう時には、常にこれを無効にしなければならないことを忘れないでください。
Save Geometry Inlineがオフの時、HoudiniはIFDを保存する際にジオメトリファイルをこのディレクトリに保存します。
$F
(例えば、$HIP/ifds/storage/frame$F4
)を使用することで、フレーム毎に別々のディレクトリを作成することができます。これによって、ファイル名の干渉を回避し、簡単に整頓することができます。
Local temp storageも参照してください。
Save Geometry Inlineがオフの時、Houdiniは(IFDをディスクに保存するのとは対照に)IFDをMantraに 直接 パイプする際にジオメトリファイルをこのディレクトリに保存します。 これは、IFDをネットワークディスクに保存すると同時に、Mantraに直接パイプする時には遅いネットワークストレージよりも高速なローカルストレージを常に使用したい時に役立ちます。
パイプ用に保存された一時ファイルは自動的にクリアされるはずですが、クラッシュやジョブの中断が原因でHoudiniはそれらのファイルをディスク上に残してしまうことがあります。 このディレクトリ内に残った古いファイルは定期的に削除してください。
Shared temp storageも参照してください。
Extra Image Planes ¶
ベイクする時に、シェーディングポジションP
をそのまま書き出すのではなく、それをUV Objectの境界ボックスに基づいて0~1に正規化します。
有効にすると、出力画像に含まれている画像平面を別々のファイルへ抽出します。
それらのファイルは、その出力画像と一緒に基本名.平面の名前.拡張子
の形式で保存されます。
このパターンには、画像形式のカラー空間ではなく、リニアカラー空間で抽出する平面を指定します。 例えば接線平面をJPGまたはTargaの画像に保存する際に、その平面にガンマ補正が適用されていると、大きく精度が失なわれてしまうことがあります。
(プライマリ平面からコピーされた)アルファチャンネルを持たせる平面のカンマ区切りのリスト。 アルファデータは、UDIMポスト処理の前に出力されます。 (EXRフォーマットなどの)抽出フォーマットでアルファの事前乗算が必要な場合でも、アルファは事前乗算されないことに注意してください。
ベイク用の画像を抽出する時に、これは、ファイル名とチャンネル名の間に挿入される区切り文字列です。例えば.
を使用すると、抽出される画像はtexture_Nt.png
ではなくtexture.Nt.png
になります。
スペースで区切ったシェーディングコンポーネント名のリストがエクスポートで計算されます。 あなたが作成したマテリアルに新しくコンポーネントラベルを定義した場合、それらのラベルをリストに追加して、コンポーネント単位のエクスポート平面としてエクスポートすることができます。 いくつかのコンポーネントを使わないなら、リストからそれらのコンポーネントを削除することで、レンダリングの効率性を良くすることができます。
PBRライトエクスポートは、このリストがすべてであると想定します。つまり、シェーダで作成されたコンポーネントすべてがリストされます。リストされていないコンポーネントがあれば、ライトエクスポートは、それらのコンポーネントからの照明を見つけていない場合があります。
Fog ¶
Formatting ¶
Geometry ¶
Ignore Geometry Attribute Shaders
ジオメトリにシェーダがプリミティブ単位で定義されている時、このパラメータは、それらのシェーダを上書きして、オブジェクトのシェーダのみを使用します。これは、オブジェクトにマットシェーディングを実行するのに役に立ちます。
プリミティブ単位でのマテリアルの割り当て(Material SOP)は現在サポートされていません。
通常では、Mantraはカーブプリミティブに対して内部表現を作成します。これを使うことで、カーブ交差を速くさせることができます。 しかし、この内部表現はメモリを消費します。この設定は、実際にMantraで必要になるまで内部表現の作成を回避します。これにより、起動時間を速くし、メモリ使用量を抑えますが、交差の実行にはより多くの計算サイクルを必要とします。
IPRに関しては、JITカーブを有効にすることで、たくさんのカーブ(つまり、ヘアーやファー)があるシーンでのインタラクティブ性を改善させることができます。
Material Overrideの評価とIFDの出力の方法を制御します。
Evaluate Once に設定すると、チャンネルやエクスプレッションを使用するマテリアルのパラメータは、全体のディテールのために一度だけ評価されます。これにより、Houdini側ではなくMantra側で完全にマテリアルパラメータの割り当てをハンドルできるので、非常に高速にIFDが生成されます。 パラメータの値を Evaluate for Each Primitive/Point に設定すると、プリミティブ単位またはポイント単位でパラメータを評価します。 パラメータを Disabled に設定すれば、完全にマテリアルの上書きをスキップすることもできます。
Render Polygon Curves as Subdivision (Mantra)
Mantraはポリゴンカーブをサブディビジョンカーブとしてレンダリングすることができます。 サブディビジョンカーブは、サーフェスのサビディビジョンのカーブジオメトリ版です。 Mantraはシェーディング品質に基づいてサブディビジョンカーブを細かくします(これは、Mantraがシェーディング品質に基づいてサブディビジョンサーフェスを細かくするのと同様です)。 サブディビジョンカーブは他のスプラインタイプのように滑らかにレンダリングされますが、端点での補間であり、(ジオメトリ上の過剰なポイントで)折れも処理することができます。
ジオメトリのポイントのレンダリングの方法を制御します。デフォルトの設定の No Point Rendering は、パーティクルシステムのポイントのみをレンダリングします。 Render Only Points に設定すると、頂点とプリミティブの情報をすべて無視して、ポイントのアトリビュートのみを使ってジオメトリをレンダリングします。 Render Unconnected Points も同様に動作しますが、ジオメトリのプリミティブで使われていないポイントだけをレンダリングします。
以下の2つのアトリビュートは、それが存在すればポイントプリミティブを制御します。
orient
ポイントジオメトリの法線を決めるベクトル。このアトリビュートがなければ、ポイントは入射光の方向を向きます(VEX I
variable)。
width
ポイントの3Dサイズを決めます(デフォルトは0.05)。
Auto-Instancing Of Alembic/Packed Primitives
共通のAlembic形状(または他の共有パックプリミティブ)を検出して、Mantraでレンダリングするとき、そのジオメトリを共有します。
このオプションを有効にすれば、パックプリミティブに定義したほとんどのアトリビュートをシェーダに渡すことができません。
基本となるジオメトリを共有しているので、各インスタンスに対してアトリビュート値を変更することができません。
例えば、Cd
アトリビュートを定義したPacked Alembic Primitiveは、期待した通りにレンダリングされない場合があります。
この例外として、shop_materialpath
とmaterial_override
のアトリビュートは期待した通りに動作します(Mantraは各インスタンスに対して別々にそれらのプロパティを変更することができます)。
Merge packed fragments into single geometry
効率を上げるために、通常ではMantraは別々のフラグメントを単一のジオメトリに結合します。一般的には、これによって少ないジオメトリで効率的にレンダリングすることができます。
しかしながら、そのジオメトリがレンダリング用に一枚のジオメトリに結合されているので、それぞれのパックフラグメントをマテリアルシートで利用できず、それらのアトリビュートがrenderstate()
関数で利用できません。
このオプションを無効にすることで、各フラグメントプリミティブが別々のMantraオブジェクトとしてレンダリングされます。一般的には、これはメモリを多く消費し、レンダリングパフォーマンスに影響が出るかもしれません。
パックディスクシーケンスプリミティブをレンダリングする時、Mantraは自動的にサブフレームジオメトリをブレンドして正確なモーションブラーを作成します。 パックディスクシーケンスプリミティブが膨大にある時には、これでは、かなりのメモリを消費してしまいます。 サブフレームブレンドのサンプル数を制限することで、メモリを少なくすることができます。
このオプションは、非常に上級のユーザ向けです。
通常では、デバッグ用に使用します(または、HDKユーザ向けです)。
GT HDKクラスを使ってパックジオメトリをMantraで精密化した時、このオプションを使用することで、GT_RefineParms
に渡すオプションのPython形式の辞書を指定することができます。
この辞書はUT_Options
オブジェクトに読み込み、GT_RefineParms::load()
メソッドに渡します。
複数インスタンスをサブディビジョンまたはディスプレイスメントサーフェスとしてレンダリングする時、Mantraは、レンダリングに“最適”な詳細レベルを選択します。 プロシージャルを実際にレンダリングする時は、それらのプロシージャルのみが評価されます。 そのため、プロシージャルが大元のジオメトリ(つまり、Alembicプリミティブ)を共有している場合、すべてのプロシージャルが評価される前に詳細レベルを選択することが可能です。 つまり、詳細レベルが(レンダリング順に依存して)間違って選択されることがあります。
このオプションは、オブジェクト毎に設定して、必要なプロシージャルすべてを評価させることができるので、インスタンスジオメトリに対して適切な詳細レベルを選択することができます。
このオプションを無効にすると、Mantraが潜在的な詳細レベル問題を検知した時に警告を発します。
このオプションを有効にすると、レンダリングの開始時間が遅くなり、メモリ容量を必要とすることがあります。
このオプションを有効にすることで、プロシージャルにルートトランスフォームを使用させることができます。デフォルトの挙動は、リーフのトランスフォームを使用します。
これは、パックプリミティブのトランスフォーム空間にもっとも大きく影響します。
vm_procuseroottransform
がオンの場合では、パックプリミティブのオブジェクト空間は、そのジオメトリを含んだオブジェクトの空間になります。
このオプションをオフにすると、パックプリミティブのトランスフォーム空間は、そのパックプリミティブのローカル空間(つまり、パックプリミティブのトランスフォームと、そのジオメトリを含んだオブジェクトの組み合わせ)になります。
vm_sharedisplace
も参照してください。
Mantraは、ポイントプリミティブをレンダリングする時にNアトリビュートからNグローバルを初期化します。無効(デフォルト)にすると、ポイント法線はカメラ方向に初期化されます。
サーフェスとは対照的にメタボールをボリュームとしてレンダリングします。メタボールのボリューム品質は、ジオメトリ内のすべてのメタボールの平均のサイズに基づいて設定されるので、メタボールのサイズを大きくしたり、小さくしたりすると、自動的にレンダリング品質が調整されます。
カーブのレンダリング時に単位s/tの値を有効にします。単位の値は、カーブを構成するBezierセグメントの数に関係なくカーブの終点が0で始まり、1まで上げると先端になります。非単位のt値は各カーブセグメントに対して0で再出発します。単位s/tの値は正しいファーのシェーディングで必要です。
通常では、MantraはVolumeプリミティブに対して法線の変数を自動的に補填しません。 その理由は、ボリュームの法線は通常のライティングでは不要であり、計算負荷がかかるからです。
しかし、法線用のディープラスター平面を生成する時には、このオプションを有効にすれば、その法線を計算することができます。
Note
フォトンマップ生成では、Volumeプリミティブに0の長さの法線を持たせる必要があるので、フォトンマップを生成する時には、このオプションをオフにしてください。
Force Procedural Geometry Output
プロシージャルシェーダを割り当てた時のジオメトリの出力を有効にします。あなたが割り当てたプロシージャルが、正しく機能しているプロシージャルに存在するジオメトリに依存していないことがわかっていれば、このトグルを無効にできます。
Mantraが隙間を防ごうとします。
Covingとは、レンダリング時に細分化したジオメトリで発生した隙間を埋める処理で、隙間は、異なるレベルの細分化の隣合わせでTジャンクションでのズレが原因で作成されます。
デフォルト設定の Coving for displacement/sub-d は、ディスプレイスメントシェーダとサブディビジョンサーフェスのサーフェスの隙間だけを埋めます。ポイントの変位は大きい隙間を作成する可能性があります。これは、ほとんどのレンダリングでは十分ですが、非常に低いシェーディングレートを使っていたり、レンダリングした画像のアルファに隙間があれば、 Coving for all primitives を使う場合があります。
Disable Coving を使わないでください。これは、パフォーマンスのメリットがなく、実際にパフォーマンスに悪影響を及ぼす場合があります。なぜなら、Houdiniは、隙間から見えるジオメトリをレンダリングしなければならなくなるからです。
0
隙間埋めなし。
1
変位サーフェスとサブディビジョンサーフェスのみを隙間埋めします。
2
すべてのプリミティブを隙間埋めします。
Covingが有効な時、これは、新しいポリゴンを作成せずに暗黙的に細分化したジオメトリを大きくすることで、異なるレベルの細分化の隣合わせのTジャンクションのズレによる隙間を埋めることを意味します。
ポリゴンを追加する必要がないので、メモリを節約することができますが、ジオメトリをあまりにも大きくしすぎるとレイトレースが遅くなります。 Sample Coving Expansion Factor パラメータは、細分化した各ジオメトリのサイズを基準に、暗黙的にジオメトリを大きくする度合いを設定します
Sample Covingはマイクロポリゴンレンダリングには適用しません。
Sample Coving Expansion Factor
Sample Covingが有効で、 Use Sample Coving パラメータを使っている時、 これは、異なるレベルの細分化の隣合わせのTジャンクションのズレによる隙間を埋めるために、細分化した各ジオメトリのサイズを基準に、暗黙的にジオメトリを大きくする度合いを設定します。
ジオメトリをジオメトリをあまりにも大きくしすぎるとレイトレースが遅くなります。 例えば、値を10にすると非常に遅くなります。-0.1などの小さいマイナスの値または最小値の-1を設定すると、ジオメトリの細分化のされ方を可視化することができます。
各オブジェクトがジオメトリオブジェクトを参照します。Houdiniのジオメトリは複数のプリミティブグループを定義することができます。object:geometrygroup
パラメータに文字列を設定すれば、名前が付いたグループのメンバーのプリミティブのみが、このインスタンスでレンダリングされます。 これは複数オブジェクトが同じジオメトリをインスタンス化しますが、別のパーツとしてレンダリングします。
プリミティブ単位でのマテリアルの割り当て(Material SOP)は現在サポートされていません。
オブジェクトに法線がなかった場合に、ジオメトリを保存する前にどのタイプの法線を計算するのかを指定します。 これを Vertex Normals に設定すると、ニ面角が Cusp Angle for Vertex Normals パラメータよりも大きいエッジが尖ります。
オブジェクトに法線がなかった場合で、 Add Normals To Geometry を Vertex Normals に設定すると、二面角がこのパラメータよりも大きいエッジが尖ります。
Instance ¶
ポイントインスタンスを有効にします。
0
ターゲットオブジェクトを、このオブジェクトの場所にインスタンス化します。
1
ターゲットオブジェクトを、このオブジェクトの 各ポイント 上にインスタンス化します。
トランスフォーメーションブラーがオブジェクトで有効な時にポイントポジションの評価方法を制御します。そのトランスフォーメーションブラーはポイントに対しては機能しません。可能な値はoff
(モーションブラーなし)、deform
(サブフレームジオメトリを計算)、velocity
(VelocityのPointアトリビュートを使用)です。
Irradiance ¶
Irradianceのキャッシュ化を有効にします。これはirradianceとocculusionのVEX関数コールのパフォーマンスをかなり改善することができます。
これはエリアライトやPBRレンダリングエンジンを使用するときは効果はありません。通常では、Irradianceのキャッシュ化はVEX Global Illuminationライトまたはocculusion()、irradiance()ファンクションを使用するシェーダでのみ使用するべきです。
Irradianceのキャッシュを保存するファイル。複数のオブジェクトが同じファイルを指定すると、キャッシュファイルはすべてのオブジェクトのサンプルを含みます。
グローバルIrradianceファイルの読み書きモード。
r
読み取り専用。
w
書き込み専用。これは指定したサンプリングレートでディスクに新しいIrradianceキャッシュファイルを生成します。
rw
読み込みと書き込み。これはディスクからIrradianceキャッシュファイルを読み込み、事前に存在する結果を使用します。これは元のキャッシュファイルの生成でレンダリングされていなかった画像の一部に対して新しいサンプルを生成します。
場合によってはキャッシュで非常に密度の高いIrradianceのサンプルの塊を取得する場合があります。このパラメータはサンプル間で少なくてもこれだけのピクセルがあることを保証することで塊を防ぎます。塊は通常では異なるプリミティブ間の滑らかではない交差部分で発生します。
Light ¶
ライトオブジェクトは、特別なライトプロパティに加えて、多くのジオメトリオブジェクトプロパティを継承します。
エリアライトの形状。
point
エリア形状なし
line
ラインライト(X軸沿いの1単位の直線)
grid
グリッドライト(XY平面の1単位の正方形)
disk
円状のライト(XY平面方向の半径0.5)
sphere
球状のライト(半径0.5)
environment
球状のライト(無限半径)
エリアライトのサイズ。サイズは各形状に対して微妙に解釈が異なります。
line
Xサイズのみが使われます
grid
グリッドのXとYのサイズ
disk
円のXとYの半径
sphere
サイズの平均が半径として使われます
environment
無視
環境ライトに対してのみ使用します。これはシーンを照明するときに使用する環境マップを指定します。マップはHDRIマップが使えます。
環境/反射マップの作り方を参照してください。
このパラメータは環境マップのサンプリングで使用される内部的に生成された画像の解像度を制御します。値はXとY寸法での画像解像度の対数です。デフォルトの8の値は解像度256×256ピクセルのサンプリング画像を生成します。値を大きくすれば、環境照明用の高い解像度の環境マップを使用した時により精度の高いレンダリング画像が生成されますが、起動中のメモリと処理時間がかかります。
光源のアクティブな半径がレンダーの最適化で使用することができます。サーフェスを照明する時、アクティブな半径内のサーフェスのみが考慮されます。
例: 車のトンネルでライトが10メートル毎に配置されているとします。ライトには輪郭がはっきりとしたフォールオフが設定されていると、何千ものライトを配置したり、妥当な時間でレンダリングすることが可能です。シェーダなしでは実行されません(イルミネーションやシャドウシェーダのどちらも実行されません)。
Light Stores Cached Illumination
通常では、IFD生成中に自動的に制御されます。ライトがキャッシュ(つまり、間接とポイントクラウドのライト)を保存するかどうかを示すブール値。
これは、通常では光源に対して自動的に制御されます。環境光のenv_mode
パラメータをbackground
に設定した場合は、Trueに設定されます。つまり、環境光に対して光線をトレースするかどうか。
Multiple Importance Sampling(多重重点的サンプリング)が、BSDFやライト、またはBSDFとライトの両方からサンプリングするかどうか制御します。
-1
BSDFからのみサンプリングします。
0
BSDFとライトの両方からサンプリングします。
1
ライトからのみサンプリングします。
エリアライトと環境マップが割り当てられた環境ライトのデフォルトのvm_misbias
は、0です。
環境マップが割り当てられていない環境ライトのデフォルトのvm_misbias
は-1です。つまり、サンプリングは一定環境照明に対してBSDFサンプルのみを使います。これは、この状態では大幅にレンダリングを高速化することができます。
マップが割り当てられるとすぐに、MIS Biasのデフォルト値が0に戻ります。vm_misbias
プロパティを追加すれば、常にそのデフォルト値が上書きされます。
Limits ¶
光線が多くの透明なサーフェスを通過したり、ボリュームを通過した時に、累積不透明度を計算します。 この累積不透明度の値がOpacity Limitを超えた時に、Mantraは、このポイントを超えたすべてのサーフェスが不透明度であると想定します。
このパラメータは、Reflect LimitとRefract Limitの両方と似た挙動をしますが、単に光線が通過したサーフェスの数ではなく、累積値に作用します。
この例では、各グリッドに不透明度が0.1のシェーダが割り当てられています。 この場合では、“透明”が不透明度100%未満のオブジェクトを参照していて、透明な見た目になる屈折オブジェクトを含んでいないことを覚えておくことが重要です。
この例では、左側の球は、不透明度が0.5で屈折がありません。 右側の球は、不透明度が1で屈折があります。 Opacity Limitは、屈折度に何も影響を与えておらず、不透明度の値が1未満のオブジェクトにのみ影響を与えていることがわかります。
Opacity Limitを下げれば、レンダリング時間が少し短く(1 - 5%)なり、低い値にすると、カメラが動いたり、アニメーションが進んだ時に帯か何かの画像の乱れが発生することがあります。 これは、特に煙のシミュレーションで不透明度の値が常に変化する箇所で顕著です。
Opacity Limitのデフォルト値は、非常に活動的で、この値を変更する時は、注意して変更し、アニメーションシーケンスのフレーム範囲でその結果を調べてください。
間接ソースから返すシェーディングサンプルの許容最大値。 PBRを使ってレンダリングする時、そのパスの合計のイルミネーションも制限されます。
Physically Based Rendering(物理ベースレンダリング)では、極端に明るい間接光源のサンプリングが不足した時に、カラーに“スパイク”が起きる可能性があります。これは、最終レンダリング画像に“蛍”のような結果が生じ、非常に高いサンプリングレートを使わないと除去するのが非常に難しいです。
この例では、12×12ピクセルサンプルでさえも“蛍”がまだ残っています。Min/Max Indirect Ray Samplesの設定を調整すれば、このノイズを除去することができますが、代わりにレンダリング時間が増えます。
Color Limitパラメータの値を下げれば、それらの間接サンプルのカラー値が制限されるので、“スパイク”を回避することができます。
Color Limitを下げることが、サンプリングレートを上げずに“蛍”を除去する効果的な方法です。 しかし、間接照明の値を制限するということは、シーン内のライトの量を全体的に減らすことになります。 これは、特に間接ライトで大部分を照明しているシーンで顕著になります。
透明なオブジェクトのシェーディング効率を良くするために、Mantraはシェーディング前に透明なサーフェスの数をキューに入れます。 これにはキューに入れるサーフェスの数を指定します。これは、例えばボリュームレンダリングで劇的な効果を出すことができます。
レイトレースの制限に到達した光線のMantraによる扱い方を制御します(例えば、 Reflect Limit または Refract Limit )。 この例では、 Refract Limit が2に設定されています。
At Ray Limit を Use Black Background に設定すると、その制限に到達した後は単にブラックをレンダリングするだけです。 これがデフォルトの設定で、ほとんどのシーンで動作します。なぜなら、 Reflect Limit または Refract Limit が到達しそうにないからです。 しかし、レンダリングした画像でその制限が顕著なシーンでは、そのブラックのカラーは非常に顕著になり、シーン内のカラーで目立ちます。
この場合には、その効果が回避されるまで制限を上げるか、または Use Direct Lighting as Background Color オプションを使用してください。 これは、ブラックカラーを直接照明、例えばEnvironment Lightで使用しているカラーや画像で置換します。
Environment Lightの設定がこのパラメータに影響を与える方法に関する詳細は、ライティングを参照してください。
At Ray Limit を Use Direct Lighting as Background Color に設定すると、このリスト内でその制限を越えたコンポーネントに対して直接照明が使用されます。
例えばrefract reflect
に設定すると、そのrefract/reflectの制限を越えた光線のみが直接照明を使用します。
At Ray Limit を Use Direct Lighting as Background Color に設定すると、このマスクは、直接照明に寄与するライトを制御します。
Note
このマスクは、シェーディングされているマテリアルに影響を与えているライトと交差します。両方のマスクで見つからなかったライトは無視されます。
光線がシーン内で反射できる回数。
この例では、2つの鏡の間に配置した被写体を使った典型的な“鏡のホール”のシナリオを載せています。
これは、実質的に無限に続く反射を作成しています。
このカメラ角度では、その反射制限が非常にわかりやすく、最終画像の精度に大きく影響していることがわかります。 しかし、ほとんどの場合では、その反射制限を巧妙に調整することで、シーン内の反射の数を減らすことができ、レンダリング時間を最適化することができます。
光源がオブジェクトで一度反射すると、それを直接反射と見なされることを覚えておいてください。 そのため、 Reflect Limit を0に設定しても、まだ光源のスペキュラー反射が見られます。
反射の最大数を超えた時に起きる事を制御するには、 At Ray Limit を使用します。
このパラメータは、光線がシーン内で屈折する回数を制御します。
この例では、10個のグリッドすべてが1列に並んだ単純なシーンを載せています。
屈折のあるシェーダを適用することで、それらのグリッドを通じて、背景の夕焼けの画像を見ることができます。
このカメラ角度では、画像の精度を良くするためには、屈折制限をシーン内のグリッドの数に合わせなければなりません。
しかし、ほとんどのシーンでは、この数の屈折オブジェクトすべてが一列に並ばないので、最終画像に影響を与えずに屈折制限を下げることができます。
この Refract Limit は、オブジェクトの数ではなく、光線が通過しなければならないサーフェスの数を参照していることを覚えておいてください。
光源がサーフェスを一度屈折すると、それを直接屈折と見なされることを覚えておいてください。 そのため、 Refract Limit を0に設定しても、まだ光線の屈折が見られます。 しかし、シーン内のほとんどのオブジェクトは、最低でも2枚のサーフェスを持つので、その光源と直接屈折が最終レンダリングではあまりわからないことが多いです。
屈折の最大数を超えた時に起きる事を制御するには、 At Ray Limit を使用します。
ディフューズ光線がシーンを伝搬できる回数。
Reflect Limits や Refract Limits と違って、このパラメータは、シーン内の全体のライトの量を増やし、グローバルイルミネーションの大部分に寄与します。 このパラメータを0より大きく設定すると、Diffuseサーフェスは、直接光源に加えて、他のオブジェクトからのライトも蓄積します。
この例では、 Diffuse Limit を上げて、最終画像の見た目に劇的な効果が出ています。 現実的な照明環境を模倣するには、 Diffuse Limit を上げる必要があることが多いです。 とはいえ、ライトの寄与度は通常ではDiffuseバウンス毎に小さくなるので、 Diffuse Limit を4よりも大きく上げても、シーンでの視覚的な忠実性の改善はほとんどありません。 さらに、 Diffuse Limit を上げると、ノイズレベルとレンダリング時間が劇的に増える可能性があります。
ボリューム光線がシーンを伝搬できる回数。これは Diffuse Limit パラメータと同じように動作します。
Volume Limit パラメータを上げると、よりリアルなボリューム効果が得られます。 これは、特にボリュームの一部のみが直接照明を受けている状況で顕著です。 さらに、ボリュームオブジェクトが他のオブジェクトからの間接照明を受けるためには、 Volume Limit パラメータを0よりも大きく設定しなければなりません。
Volume Limit を0より大きい値に設定すると、Fogボリュームは、ボリュームを通過するライトから、あなたが求めている独特の光の散乱を行ないます。 しかし、 Diffuse Limit と同様に、一般的には、ライトの寄与度は、光線が跳ね返る度に小さくなるので、4より大きい値を使用しても、目で見てわかるほどに現実的な画像になるとは限りません。
また、このパラメータの値を上げると、ボリューム画像のレンダリングに費やされる時間が劇的に増える可能性があります。
光線がシーンを伝搬すると、それらがサーフェスの仕上げのカラーに多かれ少なかれ影響してきます。その影響が光線の重みよりも小さくなると、光線が送信されなくなります。これは、renderer:opacitylimit
と同様です。vm_rayweight
はボリュームレンダーに影響を与えません。
パストレース時の光線パスの早期カットオフのランダム化を有効にします。これにより、全体的にパスの制限(つまり、 Diffuse Limit )が緩くなりますが、レンダリングを効率化するために若干の確率的なノイズが発生します。
光線パスの早期カットオフの判断に使用するメソッドを制御します。
Probability
早期終了の確率を Cut Off Threshold 値で決定します。
Albedo
各バウンスでのサーフェスのアルベドを確率として使用して、短い光線パスをカットします。つまり、暗いサーフェスほど早期終了します。
Throughput
パスの合算した処理量を Cut Off Threshold で割った値が、確率を決定します。
Meta Data ¶
.rat
/.tbf
出力ファイル(テクスチャやDeep Shadow Map)に保存するスペース区切りのプロパティ値のリストを含んだ文字列。シェーダのteximport VEX関数を使って、テクスチャから保存した値を読み込むことができます。
デフォルトでは、ほとんどのカメラ・画像関連のプロパティを保存しますが、renderer:version
などのMantraプロパティの値を保存することができます。
デフォルトでは、EXR画像をレンダリングした後にMantraは、その画像に対して、データウィンドウ、レンダリング時間、他のメタデータを設定するといったポスト処理をすることができます。これを無効にすると、MantraはEXR画像にメタデータを追加しなくなります。
EXR画像をレンダリングした後で、Mantraは、 EXR Data Window Planes で指定した画像平面内の EXR Data Window Threshold を超えた値のデータの矩形を測定して、その矩形に EXR Data Window Padding ピクセル分の余白を追加して記録します。
これは、出力画像に対してiautocrop
プログラムを実行することと等価です。
Set EXR Data Window がオンの時に、計算されたデータウィンドウを広げるピクセル数です。 他のアプリケーションでフィルター処理をする時に余白が必要であれば、これは、そのデータウィンドウ周辺に余白を追加することができます。
Set EXR Data Window がオンの時、 EXR Data Window Planes で指定した平面内で、この値よりも厳密に大きい値のピクセルをすべて含めます。 例えば、値が0でA平面だけを選択すると、そのデータウィンドウの矩形には、0より大きい不透明度のピクセルすべてが含まれます。
Set EXR Data Window がオンの時、それらの画像平面内で EXR Data Window Threshold よりも厳密に大きい値のピクセルすべてを含めます。
このフィールドでは、すべての平面を指定する*
のようなワイルドカードや、diffuse3平面を除いた名前がdiffuseで始まる平面すべてを指定するdiffuse* ^diffuse3
のような排他をサポートしています。
TIFFファイルで使用する画像圧縮タイプ。可能な値は、"None"
、"LZW"
、"AdobeDeflate"
、"Deflate"
、"PackBits"
、"JPEG"
、"PixarLog"
、"SGILog"
、"SGILog24"
です。
Cineonフォーマット画像のホワイトポイントで、0
から1023
までの整数。量子化で使用される画像のホワイトポイントです。通常では、画像を暗くまたは明るくしたくない限りは、このパラメータはデフォルトの1の値のままにします。
EXRフォーマット画像の圧縮タイプ。可能な値は、"none"、"rle"、"zips"、"zip"、"piz"、"pix"、"b44"、"b44a"、"dwaa"、"dwab"
です。
EXRフォーマット画像で設定する追加アトリビュート。文字列がPython辞書として解釈されます(例えば、{'int_attr':1, 'flt_attr':2.3, 'vec3_attr':(0,1,2), 'str_attr':'foo'}
)。
解読できない値は、無視されてファイルに追加されません。
標準のアトリビュートを上書きすることができないことに注意してください。
EXRアトリビュートとして使用するように認識されるPythonの値タイプのセットは次の通りです: bool
、int
、float
、string
、3-、4-、9-、16-valueのタプル
、float
のリスト
。
EXRフォーマットでは4-valueのvectorアトリビュートが足りないので、代わりにBox
タイプアトリビュートが使われます。
Note
標準のアトリビュートを、このアトリビュート文字列で上書きできないことに注意してください。
PNGを保存する時のMantraのフレームバッファの解釈方法。
指定可能な値は、premult
またはunpremult
です。
Note
Mantraのフレームバッファは常にアルファで事前乗算されたカラーを格納するのに対し、PNGでは事前乗算されていないカラーを必要とするので、
デフォルトのpremult
を使用すると、PNG書き出し時にそのデータを正しく解釈して、RGBチャンネルを事前に割算します。
unpremult
に設定すると、PNGはアルファが関連付けられていないと想定し、RGBチャンネルに触れなくなります。
特定の効果(例えば、不透明度に関係がないのでアルファに寄与しない発光)を無劣化で保存するためにunpremult
オプションを使用しても構いませんが、
それはPNGの仕様外であり、ユーザが意図しないと間違った解釈がされてしまうことに注意してください。
MPlayが新しいフレームを扱う方法を制御します。可能な値は、"current"
(レンダリングしたフレームをMPlayの現行シーケンスに追加)または"new"
(MPlayが新しいシーケンスを開始)です。
MPlayは現行シーケンスに新しいフレームを挿入する方法を制御します。可能な値は、"append"
(現行シーケンスの最後にフレームを追加)、"match"
(フレームを現行シーケンスの同じ番号に置換)です。
MPlayにレンダリングすると、すべてのHoudiniセッションが出力を同じMPlayフリップブックに送信します。これは複数のHoudiniセッションを実行している時に問題になる可能性があります。MPlay Labelは出力ドライバに関連したMPlayのラベルを指定することができます。指定したラベルに一致するレンダーのみが、そのMPlayに送信されます。
Houdini Process ID
オペレーティングシステムのプロセスIDを使用するので、MPlayフリップブックはそのHoudiniセッションからのレンダーのみを受け入れます。
HIP Name
$HIPNAME
変数を使うので、実行している$HIP
ファイルからのレンダーのみを受け入れます。
Output Driver Name
MPlayフリップブックは指定した出力ドライバからのレンダーのみを受け入れます。例えば、出力ドライバをコピー・アンド・ペーストすると、オペレータは異なる名前を持っているので、各出力ドライバが異なるMPlayフリップブックに送信されます。
Note
複数のHoudiniセッションが存在すれば、他のセッションで、同じオペレータ名に一致する出力ドライバがある場合があります。
例えば、“High Quality”と“Low Quality”の2つの出力ドライバがあるとします。2つの出力ドライバでMPlay Labelをそれぞれ別の値に設定すれば、各レンダーは別々のMPlayセッションに送信されます。
Objects ¶
Output ¶
レンダリング結果を出力する画像またはデバイス。この値をip
に設定してMPlayで画像をレンダリングするようにでき、または画像に保存することができます。次の画像タイプに対応しています: .pic
、.tif
、.sgi
、.pic.gz
、.rat
、.jpg
、.cin
、.rta
、.bmp
、.tga
、.rad
、.exr
、.png
。
ファイル名に$F
を含めるとフレーム番号を挿入することができます。これはアニメーションのレンダリングで必要になります。詳細は、ファイル名のエクスプレッションを参照してください。
出力画像の画像フォーマットまたはデバイス。これをデフォルトの Infer from filename のままにすると、画像フォーマットがファイル拡張子に基づいて選択されます(例えば、.picは自動的にHoudiniのフォーマット画像を生成します)。
出力ドライバによる既存のレンダリングフレームの扱い方を決定します。
no
既存ファイルを上書きします。
exist:vm_picture
ディスクファイルが既に存在する時にレンダリングをスキップします。
valid:vm_picture
既存のディスクファイルが有効な画像ファイルの時だけレンダリングをスキップします。
このパラメータは、ディープラスターまたはセカンダリの画像ではなく、メインの画像だけをチェックします。
個々のピクセルサンプルに対してカラーを生成するために透明サンプルの結合の方法を制御します。サンプルフィルターはピクセルフィルターが仕上げのピクセルカラーを生成する前に透明のサーフェスを合成するのに使用されます。
Opacity Filtering (alpha
)
コンポジットで透明サンプルの不透明度(Of)の値を使用します。このオプションは正しい透明なコンポジットが要求されるときにいつでも使用するべきです。例えば、ボリューム、スプライト、透明度をレンダリングする時です。
Full Opacity Filtering (fullopacity
)
フルシェーディング用に選択したサンプルで合成するだけとは対照的に、 Stochastic Transparency (確率的な透明度)が有効な時、このオプションはチャンネルを評価してすべての不透明度の評価で合成します。これはCe
やdirect_emission
のような評価が速いチャンネルに対して、より滑らかな結果を生成するのに使用することができます。 Stochastic Transparency (確率的な透明度)が無効な時、このオプションは Opacity Filtering と同様の動作をします。
Closest Surface (closest
)
不透明度の値を無視して、一番近い透明なサンプルのカラーを画像にコピーします。このオプションは指定したディープラスター平面の透明度を無効にし、一番近いサンプルの結果だけを生成します。
サブピクセルサンプルを結合して1つのピクセルに対して値を生成するのに使用するピクセルファイルターを指定します。フィルターは通常ではフィルタータイプ(例:gauss
)の後にピクセル単位でXとYのフィルター幅を加えて指定します。画像をブラーするにはフィルター幅を上げます。
利用可能な異なるピクセルフィルターがいくつかあります。
minmax style
styleは以下のどれか:
-
min
– 最小z値のサンプル値を選択します(カメラに一番近い)。 -
max
– 最大z値のサンプル値を選択します(カメラから一番遠い)。 -
median
– すべてのサンプルの平均のz値のサンプル値を選択します。 -
edge
– ユニットボックスを使ったフィルターはオブジェクト適用範囲のサンプルを平均化するだけです。このフィルターは外部エッジアンチエイリアスを無効にする効果があります。 -
ocover
– 最初に、ほとんどのピクセルを覆っているオブジェクトを選択して、そのオブジェクトのみから値を取得します。このフィルターはedge
と似ていますが、オブジェクト境界間の内部エッジアンチエイリアスを無効にします。 -
idcover
– 最初に、ほとんどのピクセルを覆っているオブジェクトを選択して、ピクセルの値を得るためにそのオブジェクトから単一サンプルを選択します。このフィルターはocover
と似ていますが、サンプルを平均化しません。オブジェクトやプリミティブの識別子のような整数として解釈される平面にこのフィルターモードを使ってください。選択されるサンプルは、順番通りではありません。 -
omin
– 最初に、ほとんどのピクセルを覆っているオブジェクトを選択して、ピクセルの値を得るためにそのオブジェクトから単一サンプルを選択します。最小z値のサンプルを選択します(カメラに一番近い)。 -
omax
– 最初に、ほとんどのピクセルを覆っているオブジェクトを選択して、ピクセルの値を得るためにそのオブジェクトから単一サンプルを選択します。最大z値のサンプルを選択します(カメラから一番遠い)。 -
omedian
– 最初に、ほとんどのピクセルを覆っているオブジェクトを選択して、ピクセルの値を得るためにそのオブジェクトから単一サンプルを選択します。平均のz値のサンプルを選択します。
point
ピクセルの中心に一番近いサブピクセルを選択します。
box [width height]
ボックスフィルターを使用してwidth/heightで指定したフィルターサイズでサブピクセルを結合します。
gaussian [width height]
Gaussianフィルターを使用してwidth/heightで指定したフィルターサイズでサブピクセルを結合します。
bartlett [width height]
Bartlett(円錐)フィルターを使用してwidth/heightで指定したフィルターサイズでサブピクセルを結合します。
blackman [width height]
Blackmanフィルターを使用してwidth/heightで指定したフィルターサイズでサブピクセルを結合します。
catrom [width height]
Catmull-Romフィルターを使用してwidth/heightで指定したフィルターサイズでサブピクセルを結合します。
hanning [width height]
Hanningフィルターを使用してwidth/heightで指定したフィルターサイズでサブピクセルを結合します。
mitchell [width height]
Mitchellフィルターを使用してwidth/heightで指定したフィルターサイズでサブピクセルを結合します。
sinc [width height]
Sincフィルターを使用して、width/heightで指定したフィルターサイズでサブピクセルを結合します。
edgedetect
Edge Detectionフィルターを使用して、Z深度に基づいたエッジ、オブジェクト境界、カラー勾配を検索します。
combine -t tolerance
Ray Histogram Fusionベースのフィルターを使用して、指定した類似許容値でサブピクセルを結合します。
Note
このオプションは非常に遅く、例えば、画像にノイズを乗せたい場合であっても(つまり、サンプリング不足が原因によるノイズでなくても)画像内のノイズが除去されるので、ディテールが消失します。
denoise optix [-a AOV]
メイン画像の記録タイプ。使用するQuantizationのタイプが、画像の品質とサイズに影響を与えます。コンポジットで画像のダイナミックレンジを調整する必要があれば、通常では、この値はデフォルト値の16ビット浮動小数点のままにしてください。
デフォルト値は、1番目の平面が"float16"
、2番目以降の平面が"float"
です。1番目の平面の値は、-b
コマンドライン引数をMantraに渡すことで上書きすることができます。
通常では、画像解像度をカメラオブジェクトに設定します。カメラの設定を修正または上書きするコントロールを有効にしたいのであれば、これをオンにします。
Override camera resolution がオンで、 Resolution scale が“User specified resolution”の時、出力画像の解像度を設定し、カメラの設定を上書きすることができます。
Override camera resolution がオンの時、カメラに設定した解像度をスケールできるようになります。完全にカメラの解像度を上書きしたいのであれば、“User specified resolution”を選択してください。
ピクセルアスペクト比はピクセルの幅をピクセルの高さで割った値です。これは画像のアスペクト比ではありません(これは画像の解像度で決まります)。このパラメータはレンダリングに影響を与えず、この係数でピクセルを引き伸ばすことで画像の表示の方法を変更することだけに使用します。
HQueueを使用する時に、このオプションでターゲットノードをレンダリングすると、サーバーはレンダリングするフレームを別々のタイルに分割して、各タイルを別々のジョブとしてレンダリングします。このオプションをオンにして局所的にレンダリングすると、Mantraは全体のフレームではなく、1個のタイルをレンダリングします。
Mantraに-t
コマンドラインオプションを使用することで、タイルレンダリングを有効にすることもできます。これを使えば、タイル毎に Tiled Render を有効にしてIFDを生成させることなく局所的にタイルをレンダリングすることができます。
Tile Render がオンの時、局所的にレンダリングする時のレンダリングするタイルを指定します。タイルの番号は左上から0番で始まり、左から右に、上から下に向かって番号が上がります。
有効な時、画像タイルデータが頻繁に出力ファイルと同じディレクトリにチェックポイントファイルを書き出します。 レンダリングが完了する前にこのプロセスを終了させても、 Resume from Checkpoint Files を有効にして再起動することで、そのプロセスを再開させるすることができます。 チェックポイントのファイル名を指定するには、 Checkpoint File Name を有効にします。
Warning
ディープシャドウマップまたはディープカメラマップを作成する時は、チェックポイントは機能しません。
レンダリングが成功して完了すると、チェックポイントファイルが削除されます。
有効な時、レンダリング前に、Mantraは現在の出力ファイルに相当するチェックポイントを検索し、 Output Checkpoint Files を有効にした時の以前の部分レンダーを使って出力ファイルを生成します。 可能であれば、Mantraは出力画像の残りの領域で必要な領域だけをレンダリングします。 チェックポイントのファイル名を指定するには、 Checkpoint File Name を有効にします。
Output Checkpoint Files と Resume from Checkpoint Files の両方が有効で、有効なチェックポイントファイルを読み込むと、レンダリングされた画像タイルデータがそのチェックポイントファイルに追加されます。
有効な時、 Output Checkpoint Files と Resume from Checkpoint Files で使用されるチェックポイントの名前が、 Checkpoint File Name に基づきます。
Override Checkpoint File Name が有効な時、ここに Output Checkpoint Files と Resume from Checkpoint Files で使用されるチェックポイントファイルの名前を指定します。 ここにはエクスプレッションを使用することができます。
チェックポイントファイルへ書き出すためにキューされたデータ量がこのメガバイトに到達すると、最後の書き出しから Checkpoint Period 秒経過していなくても、そのデータがチェックポイントファイルからクリアされます。
レンダータイルが完了し、それがチェックポイントファイルへの最後の書き込みから最低でもこの秒数が経過していたら、そのデータが Checkpoint Cache Size メガバイトに到達していなくてもチェックポイントファイルからクリアされます。
通常では、サブピクセルサンプルは画像平面上に定義したピクセルフィルターを使ってフィルタリングされます。これをオンにすると、各サブピクセルは実行されるピクセルフィルタリングを使用しないで出力されます。
image:resolution
プロパティは実際の出力画像解像度を決定するためにimage:samples
プロパティでスケールします。例えば、image:resolution
が(1024,512)
で、image:samples
が(4,6)
なら、レンダリングされる画像の解像度は4096 x 3072になります。各ピクセルは1つのフィルタリングされていないサプピクセルサンプルを表示します。
Create Image From Viewing Camera
見ているカメラから画像をレンダリングします。時々、このレンダーをスキップするのに役に立ちます。例えば、シャドウマップをレンダリングする時。
PBR ¶
Photon ¶
このプロパティを追加して最小フォトン受け入れ率を制御します。このパラメータは0から1までの値で、Mantraがそのライトからのフォトン生成を取り出す前に保存しなければならない送信されたフォトンの最小割合を制御します。
Preview ¶
Render ¶
Color Tile Borders by Thread Index
レンダリングをしているスレッドを意味するタイルの境界のカラーを設定します。これは、スレッドのバランス問題を視覚的に確認するために使うことができます。
このプロパティは完全に不透明な部分の背後にあるボリュームの部分を切り捨てるために使用します。サーフェスのシェーディング後に、Of変数がこの閾値よりも低い場合は、Mantoraはサーフェスが存在しないとみなしてサンプルを無視します。
Mantraが統合されたキャッシュで使用する物理メモリの割合。
例えば、vm_cacheratio
がデフォルトの0.25
で物理メモリが16GBの時、Mantraは統合されたキャッシュに対して4GBを使用します。
統合されたキャッシュは、以下の内容を含んだレンダーで使用される動的でアンロード可能なデータを保存します:
-
2D
.rat
テクスチャタイル -
3D
.i3d
テクスチャタイル -
3D
.pc
ポイントクラウドページ(メモリに事前にロードされない時) -
レイトレースで必要なテセレートしたメッシュ:
-
ディスプレイスメント
-
サブディビジョンサーフェス
-
BezierとNURBSプリミティブ
-
隠れたサーフェスの除去を実行します。隠れたサーフェスの除去を無効にする時、カメラのフラスタム(視野角錐台)内のすべてのサーフェスが隠れているかどうかに関わらずレンダリングされます。これはレンダリング時間に大きく影響します。
Use Max Processors (renderer:usemaxthreads
IFDプロパティ)を無効にすると、Mantraがレンダリングで使用するスレッドの数を設定します。
IFDファイルの$HIP
で設定する値を制御します。 デフォルトでは、これはHoudiniの$HIP
と同じで、通常ではあなたが必要なものです。しかし、例えばレンダーファームで面白いことをするなら、IFDで$HIP
を別のものに設定する必要が出てくる場合があります。
IFDに埋め込むHIPファイルに定義したスタイルシートを制御します。通常のHoudiniパターンマッチングが各埋め込まれたスタイルシート名に対して使用されます。
レンダリング中にMantraが適用するスタイルシートを指定します。これは、HIPファイルに埋め込まれたスタイルシートの名前のスペース区切りのリストや、ディスク上の外部JSONファイルです。
このオプションを有効にすると、強制的にすべてのノードバンドルがIFDに保存されます。バンドルはスタイルシートでターゲットオブジェクトに使用することができます。 この機能をディスク上のスタイルシートに使用する場合、スタイルシートから目的の結果を取得するために、このオプションを有効にする必要があります。
生成されるIFDに埋め込むSHOPを制御します。 このパラメータを使えば、たとえHoudiniが出力するオブジェクトやジオメトリ上のSHOPの明示的な参照を探さなくても、強制的にすべてのSHOPやすべてのMaterial SHOPを埋め込むことができます。
このチェックボックスを有効にするとOTLパス内の任意の変数を展開して、Houdini環境変数の依存性を解除しますが、場合によってはIFDが持ち運びできなくなります。
HoudiniがOTLに定義したシェーダを使用する時、MantraはOTLから直接シェーダをロードすることができます。シェーダがVOPを使って構築されている時、シェーダはIFDに埋め込まなければなりません。このオプションを有効にすると、HoudiniがOTLで定義したシェーダを埋め込むようにします。
このオプションはIFDをもっと自己完結型にするので、OTL(または別のバージョンのOTL)がインストールされていないマシンでも正しくシェーダを評価することができます。
しかし、複雑なシェーダであれば、それを埋め込むとIFDのサイズが膨れ上がってしまいます。
ディスプレイスメント/サブディビジョンのDicingを有効にするかどうか設定します。この設定を無効にすれば、すべてのオブジェクトのPolygons as subdivision
とすべてのマテリアルのtrue displacements
の両方を無効にするのと同じ効果になります。
Mantraで使用されるレイトレースアクセラレータのタイプを制御します。レイトレースアクセラレータは複雑なジオメトリに対して光線の交差テストのパフォーマンスを最適化するのに使用される空間データ構造になっています。
KD-Tree ("kdtree"
)
KD-Treeを使用したレイトレース。通常では丁度良い初期化時間で最速なレイトレースパフォーマンスを発揮します。 KD-Tree Memory Factor パラメータ(vm_kdmemfactor
)によるKD-Treeの構築でパフォーマンス/品質のバランスを制御することが可能です。
Bounding Volume Hierarchy ("bboxtree"
)
境界ボリューム階層を使用したレイトレース。場合によっては、境界ボリューム階層はKD-Treeよりも構築またはレイトレースが高速です。
KD-Treeアクセラレーションデータ構造を構築する時に使用されるメモリ/パフォーマンスのバランスを変更します。1より大きい値ではMantraはレイトレースを高速化しようとツリーを最適化するのに比例的にメモリをたくさん使用して時間がかかります。値を小さくするほどはMantraは比例的にツリーの最適化にメモリ使用量が少なくなり時間が短くなりますが、レイトレースのパフォーマンスを妥協しなければなりません。デフォルト値の1はレイトレースのデータ構造で使用されるメモリ量とジオメトリで使用されるメモリ量とのバランスを調整しようとします。
ツリーの構築時間が長ければ、KDメモリ係数を0.1に下げてください。もしレンダーがツリー構築の後にあまりにも遅いようであればツリーの構築時間とレンダーのパフォーマンスの妥協点が見つかるまで値を上げてください。
Enable Oriented BVH Construction
回転を使用して局所的に軸を優位性の高いジオメトリ方向と整列させるレイトレースツリー構造アルゴリズムを有効にします。 この手法は、カーブに対してのみ動作し、通常ではレイトレースツリーの構築に必要な時間が増えます。しかし、その結果のツリーは、特に長い髪のレンダリング時でよくあるx,y,z軸に整列していない長いカーブの束に対してレイトレースのパフォーマンスを良くします。
カーブに対してレイトレースオブジェクトを構築する時にグループ化するカーブセグメントの数。値が大きいほど、メモリ使用量が少なくなりますが、レイトレーサーはより多くの光線と交差する必要があるのでパフォーマンスが悪くなります。 1の値は、カーブセグメント毎に1つのレイトレースオブジェクトを作成するので、レイトレースのパフォーマンスが最も良くなりますが、メモリ使用量が大幅に増えてしまいます。
デフォルトでは、Mantraはプロセスリソースのクリーンアップをシステムに実行させます。Quick Exitは非常に効率的ですが、その場合には、Mantra自体がクリーンアップをしなくなります。 つまり、カスタムのVEX cleanup関数を実行させることができません。
true
の時、オブジェクトが主光線でレンダリングされなくなります。副光線のみがオブジェクトに当たります。
(Render Visibilityプロパティを参照してください。)
このオプションをオフにすると、インスタンスがレンダリングされなくなります。オブジェクトのプロパティはVEX内から照会することが可能ですが、ジオメトリはレンダリングされません。これはオブジェクトをトランスフォーム空間オブジェクトに変換するのとほぼ同等です。
Render Visibility (vm_rendervisibility
プロパティ)を参照してください。
カテゴリのエクスプレッションを使用して、オブジェクトの可視性を異なるタイプの光線へ制御します。 このパラメータは、PhantomとRenderableのトグルを一般化し、オブジェクトの可視性をMantraやVEXでサポートされている異なるタイプの光線へ色々と制御させることができます。
-
“primary” - カメラから送信される光線。
-
“shadow” - シャドウ光線。
-
“diffuse” - ディフューズ光線。
-
“reflect” - 反射。
-
“refract” - 屈折。
例えば、Phantomオブジェクトを作成するには、エクスプレッションに“-primary”を設定します。 オブジェクトをレンダリング不可にするには、エクスプレッションに空っぽの文字列“”を設定します。 これらのトークンは、VEXのtrace()やgather()の関数の“raystyle”に渡す文字列に相当します。
これはオブジェクトツリーの“root”に設定されます。Houdiniでは、これは通常では/obj
です。相対パス(例えば、light1
やsubnet1/light1
)を使ってオブジェクト名を指定すれば、これはフルパスを決めるために使用されます。これはカテゴリ選択を推奨するので将来に廃止予定です。
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が“滑らかな三角形”ウェイトです。
サブディビジョンサーフェスのレンダリングに使用するアルゴリズム。現在のところ、これには、mantra_catclark
またはosd_catclark
を指定することができます。
サブディビジョンサーフェスとしてレンダリングするポリゴンのグループ。これは、vm_rendersubd
が有効な時のみ効果があります。
Note
これは、レンダリングされる最終ジオメトリのグループです。例えば、トップレベルのプリミティブがAlembicプリミティブの場合、vm_subdgroup
は、そのプリミティブ内に設定されている指定されたフェースセットを参照します。
サブディビジョンサーフェスをosd_catclark
としてレンダリングする時のDicing品質。
この値をシェーディング品質とシェーディング係数で乗算して、サーフェスの精密化レベルの数値を決定します。
OpenSubdiv Vertex Boundary Interpolation
境界上でのSubdivision Vertex(Houdiniポイント)アトリビュートを補間する方法。
-
0: 境界を補間しません。
-
1: エッジを鋭角化します。
-
2: エッジとコーナーを鋭角化します。
Rendering ¶
これは、レンダリング時にモーションブラーをシミュレーションするかどうかの“マスタースイッチ”です。 これをオンにすると、 トランスフォーム モーションブラー(各オブジェクトのフレーム間のトランスフォームの補間によるブラー)が有効になります。 xform_motionsamplesを使用することで、トランスフォームブラーのサンプル数を設定することができます。 変形 モーションブラーを有効にするには、geo_motionsamplesを上げます。
モーションブラーのレンダリングに関する詳細は、モーションブラーを参照してください。
これは、オブジェクト毎に追加可能な高度なプロパティです。
このプロパティを設定すると、このオブジェクトに対してSOHOが自動的にEngine Proceduralを有効にします。 オブジェクトネットワーク自体は、そのEngine Proceduralで使用されているIFDストリームにHDAとして保存されます。 レンダリング時に、MantraはDisplay SOPで生成されたジオメトリを受け取り、それをRender SOPのジオメトリ内のすべてのポイントにインスタンス化します。 インスタンス毎に、そのオブジェクトネットワーク上のパラメータに合致したそのRender SOPのポイント上のPointアトリビュートが適用され、レンダリング時にジオメトリバリエーションを可能にします。
Mantraでは、そのEngine Proceduralに対して3つのレベルに対応しています。
それらのモードは、-e
コマンドラインオプション(またはMANTRA_ENGINE_PROCEDURAL
環境変数)を使って設定します:
-
none
: このモードでは、Mantraは環境のセットアップを無効にしてSOPネットワークを評価することができます。これにより、Mantraの起動時間が改善されます。ほとんどの場合、これは、気にするほどでもない時間です。 -
basic
: ポイントとカーブのジオメトリを生成することができます。 -
full
: どのタイプのジオメトリも生成することができます。このオプションでは、MantraはRenderライセンスではなくEngineライセンスを使用します。
Note
Engine Proceduralは、HDAをMantraで評価する時に、cooking_in_engine
という名前のパラメータを1に設定しようとします。これによって、SOPネットワークは、Houdiniでの表示とMantraでのレンダリングに対して別々のクックをさせることができるようになります。
Engine Procedural - Unload SOP Geometry
Auto Engine Procedural
が設定されている時、このプロパティは、クックの後にそのSOPジオメトリをアンロードするようにMantraに伝えます。
SOPジオメトリをアンロードすることでMantraのメモリが開放されますが、いくつかのSOP/オブジェクトネットワークにおいて余計な計算を実行する必要が出てきます。
Engine Procedural - HDA Uses LOD Parameter
Auto Engine Procedural
が設定されている時、このプロパティは、境界ボックスLODを計算して、HDAにlod
パラメータを設定するようにMantraに伝えます。
これにより、MantraのLODに基づいてSOPネットワークが色々なジオメトリを生成することができます。
LODが不要な時、Mantraは同じレンダーパラメータを持つインスタンス間でジオメトリを共有することができます(Copy Stamp SOPのCache Stamping Geometry
パラメータと同様)。
LODが必要な時、Mantraはジオメトリの共有を実行することができません。
Engine Procedural - Orient HDA instances to points
Auto Engine Procedural
が設定されている時、このプロパティは、Pointアトリビュートに基づいてインスタンスジオメトリを回転させます。
各インスタンスは、常にインスタンスポイントまで移動しますが、このパラメータはpscale
やN
のようなアトリビュートをインスタンストランスフォームに適用するかどうかを制御します。
Engine Procedural - Bounding Box SOP
Auto Engine Procedural
が設定されている時、このプロパティで指定されたSOPを使用して、レンダリング時に生成されるヘアーの境界を決定します。
SOPが見つからなかったり、空っぽの場合は、ディスプレイフラグが付いたSOPが使用されます。
Tip
モーションブラーを有効にしたレンダリングでは、クックされたSOPのキャッシュを無効にしてしまうので、レンダリング後にHoudiniでそれらに関連するノードすべてを表示する時に再クックされてしまいます。 これを回避するには、表示ジオメトリの境界ボックスを表現したジオメトリを計算するためのSOPを別に作成してください。 そして、このプロパティを使って、そのチェーンの最終ノードを指定します。
このパラメータは、モーションブラーを生成する時に考慮される時間のセグメントを制御します。 1の値は、オブジェクトの現行位置と次フレームのオブジェクトの位置を時間の間隔として使用して、それをモーションブラーに使用します。 -1の値は、前フレームのオブジェクトの位置とオブジェクトの現行位置を時間の間隔として使用します。 0の値は、前フレームの最後の半分、次フレームの半分の間隔を生成します。
通常では、Mantraのレンダリング領域外で生成されたモーションブラーに合わせたい場合(例えば、写真背景プレート)を除いて、このパラメータを調整する必要はありません。
現行フレームのオブジェクトの位置に比例して、ブラーを画像で発生させるかどうか制御します。-1
の値は前のフレームから現在のフレームまでの位置でブラーします。0
の値なら前のフレームの半分から次のフレームの半分までの位置でブラーします。1
の値なら、現在のフレームから次のフレームまでの位置でブラーします。小数点のフレーム値や-1
または1
より大きい値を使ってブラーを小さくまたは大きく動かすことができます。
ブラーの サイズ を変更するには、 Shutter Time (shutter
プロパティ)を変更します。
このパラメータは、古い Motion Blur Style (motionstyle
)パラメータの代わりで、“before”(Shutter Offset=-1)、“center”(Shutter Offset=0)、“after”(Shutter Offset=1)の値のみを設定することができます。
シャッターオープン時間に対して トランスフォーム モーションブラーをレンダリングする時に計算するサンプル数。 デフォルトは2サンプル(シャッター時間の開始と終了)で、1つのセグメントにブラーがかかります。
極端に速く移動したりと方向を変更するオブジェクトの場合、サブフレームでの方向の変更を取り込むためにサンプル数を上げる必要があります。
上図の例では、1フレーム内で発生した複雑な動きを正しくレンダリングするために40個のトランスフォームサンプルが必要です(1フレーム内でのこの変化量は、非常に稀で、説明をするために使用しただけです)。
トランスフォームブラーは、各オブジェクトのフレーム間のトランスフォームを補間することでブラーをシミュレーションしているので、計算が軽いですが、サーフェス変形を取り込みません。 変形ジオメトリのブラーを有効にするには、geo_motionsamplesを上げます。
シャッターオープン時間に対して 変形 モーションブラーをレンダリングする時に計算するサブフレームのサンプル数。 デフォルトは1サンプル(シャッター時間の開始のみのサンプル)で、デフォルトでは変形ブラーは ありません 。 高速に変形するジオメトリを適切にブラーさせたい場合、この値を2以上に上げなければなりません。 Geometry Time Samplesの数を上げると、HoudiniはサブフレームのジオメトリをクックしてMantraに送信しなければならないので、それに比例して処理が重くなります。
“Deformation”は、ジオメトリ(SOP)レベルでトランスフォームだけを参照したり、キャラクタやフレームに応じて形状が急速に変化するオブジェクトなどの実際のサーフェス変形を参照することができます。
1フレーム内で複雑に変形するオブジェクトには、Geo Time Samplesの数を上げる必要があります。
変形ブラーは、シャッター時間内の アトリビュート値の変化 もブラーさせることができます。
例えば、オブジェクトが移動した時にポイントカラーが急変化する場合、そのCd
アトリビュートにブラーをかけることができます。
vm_segmentattrsプロパティを使って、ブラーをかけるアトリビュートを明示的に指定する必要があります。
Geo Time Samplesの数を上げると、Mantraの使用メモリ量に 影響を与えてしまします 。 サンプル数が増える度に、Mantraはシャッター時間の間にサンプリングしている間はメモリ内にそれだけのジオメトリのコピーを維持しなければなりません。 レンダリングを最適化する時、滑らかなモーションの軌跡を生成するのに必要な最低限のGeo Time Samplesを調べることは良い考え方です。
Velocity Motion Blurが有効なオブジェクトでは、変形ブラーは無視されます。
詳細は、Mantraレンダリングを理解するを参照してください。
Micropolygon Rendering
各プリミティブをマイクロポリゴンに細分化して、単独でシェーディングとサンプリングをします。
Ray Tracing
カメラから光線を送信することでシーンをサンプリングします。光線に当たった各サーフェスはサーフェスシェーダの実行をトリガーします。
Micropolygon Physically Based Rendering
マイクロポリゴンに対してサンプリングを実行します。しかし、すべてのシェーディングとイルミネーションは物理ベースのレンダリングを使って実行します。
シェーディングの計算で使用する光線の数は、最大光線サンプルで決まります。
Physically Based Rendering
シーンのサンプリングはレイトレースを使用して実行され、シェーディングは物理ベースのレンダリングを使って計算されます。
この場合では、ピクセルサンプルがPBRエンジンのシェーディング品質を決めます。
Photon Map Generation
画像をレンダリングするというよりも、光源からフォトンをシーンに送信してフォトンマップを生成します。生成されるフォトンマップファイルはPBRタブで指定します。
このIFDトークンは整数値を持ちますが、文字列の値を使って整数値を設定することも可能です。
micropoly
マイクロポリゴンのスキャンラインレンダリング(デフォルト)。
raytrace
すべてのレンダリングがレイトレースを使って実行されます。
pbrmicropoly
マイクロポリゴンのスキャンラインレンダリングを使った物理ベースのレンダリング。
pbrraytrace
レイトレースだけを使った物理ベースのレンダリング。
photon
フォトンマップ生成。
Sampling ¶
レンズ焦点距離とカメラから焦点が合うオブジェクトまでの距離。これは被写界深度を使ってレンダリングする時だけ使われます。この距離よりも外にあるオブジェクトにブラーがかかります。
Shutter Timeとは、実際にシャッターが開いているフレームの割合のことです。
物理カメラでは、これをシャッタースピードと呼んでいます。レンダラーは、これを使ってモーションブラーを決定します。
値の範囲は、[0,1]
です。
Shutter Timeの値が0なら、シャッターが一瞬で“開いた”だけなのでモーションブラーはありません。 その一方で、値が1なら、シャッターはそのフレーム全体で開きます。
上図のサンプルでは、1フレームに渡って球が360度ぐるっと回転しています。 シャッター時間に基づいて“モーションの軌跡”または“ブラー”がどれくらいの長さで変化しているのかが分かります。 ほとんどの場合、デフォルトの0.5の値がアニメーションシーケンスに適しており、現実世界の設定でうまく合致します。
このパラメータは、単一フレーム内での時間量を制御し、シャッターが開いていることを忘れないでください。 これは、フレームの長さを意味しているわけではありません。フレームレートを調整するには、Global Animation OptionsのFrames Per Secondパラメータを変更します。
グレースケールランプによるシャッター時間に沿ったシャッターの開口を制御します。 指定した時間ポイントのランプ値が高いほど、時間サンプルは、その領域にもっと集中します。
Note
ランプは常に全体の範囲で評価され、シャッター時間の設定に関係ないことに注意してください。
このメニューでは、オブジェクトに対して実行する ジオメトリ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プロパティを使用して、加速度サンプルの数を設定することができます。
このプロパティは、 Geometry Motion Blur が“Acceleration Blur”に設定されている時にのみ有効です。
複数セグメントの加速度ブラーをレンダリングする時に加速度の値として使用するPointアトリビュートの名前を入力します。
デフォルトはaccel
です。これは、色々なシミュレーションソルバによって自動的にジオメトリに追加されます。
錯乱円(Circle of Confusion)のアスペクト比を変更することで、アナモフィックな被写界深度を制御します。 0から1の値は、Y方向のブラー量を増やします。1より大きい値は、Y方向のブラー量を減らします。
Mantraがピクセル毎にシーンをサンプリングするために使用するプライマリ光線の数を制御します。 これらの2つの数値は、X軸とY軸でのサンプルの配列を意味し、一般的には同じ値にします。 しかし、正方形でないピクセルに関しては、XとYに別の値を使用することがあります。 これらの2つの数値を乗算した値が、ピクセル毎のプライマリ光線の数になります。
Pixel Samples を上げれば、綺麗で高品質な画像が生成されます。 しかし、他のサンプリング値すべてが、この Pixel Samples の値で乗算されるので、必要な時にだけ上げてください。 Pixel Samples を上げるタイミングに関する詳細は、ノイズの除去を参照してください。
有効な時、このパラメータは、すべてのPrimary Rayに対して送信するSecondary Raysの数を決定する時に、MantraにRay Variance Antialiasingを使用させます。
つまり、指定した数の光線を使用するのではなく、まず最初にMantraは少ない数の光線を送信し、設定したこのサンプルを使用してVarianceを評価します。 Varianceの量に応じて、Mantraは Max Ray Samples の数になるまで光線を送信し続けます。 Ray Variance Antialiasing は、必要な領域にのみ光線を送信するので、レンダリングの最適化に役立ちます。
ノイズを除去するための最小数の光線が最大数の光線と同じ場合には、Ray Variance Antialiasingを無効にすることで、レンダリング時間を少し短くすることができます。
Ray Variance Antialiasing が有効な時、このパラメータは、 Noise Level にまったく到達していなくても許容されるセカンダリ光線の最大数を意味します。 このパラメータは、 Min Ray Samples と一緒に使用し、本質的には画像に対して受け入れ可能なサンプリングの範囲を作成することができます。 あり得る光線の総数を注意して制御することが、レンダリングを最適化する最善の方法です。
この数は、現在の Pixel Samples 数 と 評価中のマテリアルのBSDFタイプの数で乗算されることを覚えておいてください。 例えば、単純にDiffuseマテリアルだけであれば、 Pixel Samples が3×3、 Max Ray Samples が1に設定されていたとすると、最大で9本のセカンダリ光線(9本のディフューズ光線)が放出されます。 そのマテリアルに反射 と 屈折があれば、最大で18本のセカンダリ光線(9本の反射光線と9本の屈折光線)が放出されます。
Max Ray Samples を上げるタイミングに関する詳細は、ノイズの除去を参照してください。
この値は、画像を生成する時に各BSDFタイプに使用する セカンダリ光線の最小数 です。 Ray Variance Antialiasing が無効な時、この数は、 Noise Level に関係なく送信するセカンダリ光線の数を意味します。
この数は、現在の Pixel Samples 数 と 評価中のマテリアルのBSDFタイプの数で乗算されることを覚えておいてください。
Mantraがセカンダリ光線を送信する前に許容されるVarianceの度合い における閾値を意味します。本質的には、Varianceとは、サンプルセット内の値の“広がり”方を意味します。 例えば、すべて同じサンプルセットのVarianceは0です。一般的には、妥協できない量のノイズがある領域にのみ光線が送信されるように、できるだけ、この値を高く保持するのが良いです。
“direct samples”と“indirect samples”の画像平面を追加すれば、送信されているサンプルの数や、送信されている画像の領域を追跡することができます。 サンプリングに関する詳細は、サンプリングとノイズを参照してください。
シーン内の特定のオブジェクトに画像の他の部分よりもサンプルをもっと増やす必要があると分かっていて、且つNoise Levelパラメータでそれらのオブジェクトを“ターゲット”にすることができない場合、 その問題の領域に、オブジェクト毎のサンプリングパラメータを追加するのが良い方法です。詳細は、ノイズの除去を参照してください。
コンポーネント毎の品質パラメータすべてに対するグローバル乗数として動作します。これにより、コンポーネント毎の品質を相対的に保ちながら同時に品質を増減させることができます。
間接ディフューズ サンプリングの品質を制御します(直接光線と間接光線の違いに関する情報は、サンプリングとノイズを参照してください)。 間接光源(例えば、他のオブジェクトのサーフェスやボリューム内部に散乱した光)は、レンダーのノイズの主な原因であることがよくあります。 この値を上げることで、このタイプのノイズが減りますが、レンダリングが遅くなります。
このパラメータは、 Min Ray Samples と Max Ray Samples に対する乗数として動作し、さらに Noise Level に対する除数として作用します。
例えば、 Min Ray Samples が1
、 Max Ray Samples が8
で、 Noise Level が0.1
に設定されていて、 Diffuse Quality を2
に設定すると、
Mantraは0.05の Noise Level に基づいて2~16本のセカンダリディフューズ光線サンプルを送信します。
それらの数値は、 間接サンプル にのみ適用されることを忘れないで下さい。
Mantraは、すべての直接サンプルに対しては元の値を使用します。
間接ディフューズコンポーネント内のノイズ量を調べるには、 Extra Image Planes タブで“Indirect Lighting (per-component)”画像平面を追加してください。 これは、各間接コンポーネントを個々にチェックすることができます。このパラメータに関しては、Indirect Diffuseコンポーネントをチェックしてください。
間接SSS サンプリングの品質を制御します(直接光線と間接光線の違いに関する情報は、サンプリングとノイズを参照してください)。 間接光源(例えば、他のオブジェクトのサーフェスやボリューム内部に散乱した光)は、レンダーのノイズの主な原因であることがよくあります。 これを上げると、このタイプのノイズが減りますが、レンダリングが遅くなります。
このパラメータは、 Min Ray Samples と Max Ray Samples に対する乗数として動作し、さらに Noise Level に対する除数として作用します。
例えば、 Min Ray Samples が1
、 Max Ray Samples が8
で、 Noise Level が0.1
に設定されていて、 SSS Quality を2
に設定すると、
Mantraは0.05の Noise Level に基づいて2~16本のセカンダリSSS光線サンプルを送信します。
それらの数値は、 間接サンプル にのみ適用されることを忘れないで下さい。
Mantraは、すべての直接サンプルに対しては元の値を使用します。
間接SSSコンポーネント内のノイズ量を調べるには、 Extra Image Planes タブで“Indirect Lighting (per-component)”画像平面を追加してください。 これは、各間接コンポーネントを個々にチェックすることができます。
間接屈折 サンプリングの品質を制御します(直接光線と間接光線の違いに関する情報は、サンプリングとノイズを参照してください)。 間接屈折(例えば、グラスを通してオブジェクトを見た時のように、シーン内の他のオブジェクトから屈折した光)は、レンダーにノイズが乗ることがあります。 この値を上げることで、このタイプのノイズが減りますが、レンダリングが遅くなります。
このパラメータは、 Min Ray Samples と Max Ray Samples に対する乗数として動作し、さらに Noise Level に対する除数として作用します。
例えば、 Min Ray Samples が1
、 Max Ray Samples が8
で、 Noise Level が0.1
に設定されていて、 Refract Quality を2
に設定すると、
Mantraは0.05の Noise Level に基づいて2~16本のセカンダリ屈折光線サンプルを送信します。
それらの数値は、 間接サンプル にのみ適用されることを忘れないで下さい。
Mantraは、すべての直接サンプルに対しては元の値を使用します。
間接屈折コンポーネント内のノイズ量を調べるには、 Extra Image Planes タブで“Indirect Lighting (per-component)”画像平面を追加してください。 これは、各間接コンポーネントを個々にチェックすることができます。このパラメータに関しては、Indirect Refractionコンポーネントをチェックしてください。
間接反射 サンプリングの品質を制御します(直接光線と間接光線の違いに関する情報は、サンプリングとノイズを参照してください)。 間接反射(シーン内の他のオブジェクトの反射)は、レンダーにノイズが乗ることがあります。 この値を上げることで、このタイプのノイズが減りますが、レンダリングが遅くなります。
このパラメータは、 Min Ray Samples と Max Ray Samples に対する乗数として動作し、さらに Noise Level に対する除数として作用します。
例えば、 Min Ray Samples が1
、 Max Ray Samples が8
で、 Noise Level が0.1
に設定されていて、 Reflection Quality を2
に設定すると、
Mantraは0.05の Noise Level に基づいて2~16本のセカンダリ反射光線サンプルを送信します。
それらの数値は、 間接サンプル にのみ適用されることを忘れないで下さい。
Mantraは、すべての直接サンプルに対しては元の値を使用します。
間接反射コンポーネント内のノイズ量を調べるには、 Extra Image Planes タブで“Indirect Lighting (per-component)”画像平面を追加してください。 これは、各間接コンポーネントを個々にチェックすることができます。このパラメータに関しては、Indirect Reflectionコンポーネントをチェックしてください。
間接ボリューム サンプリングの品質を制御します(直接光線と間接光線の違いに関しては、サンプリングとノイズを参照してください)。 間接光源(例えば、他のオブジェクトの表面、ボリューム内で散乱した光)がレンダリングでのノイズの大きな原因であることが多いです。 この品質を上げると、この類のノイズが減りますが、レンダリング時間が長くなってしまいます。
このパラメータは、 Min Ray Samples と Max Ray Samples の乗数として、さらに、 Noise Level の除数として動作します。
例えば、 Min Ray Samples が1
、 Max Ray Samples が8
、 Noise Level が0.1
で、 Volume Quality を2
に設定すると、
Mantraは、0.05の Noise Level に基づいて2から16のセカンダリボリューム光線サンプルを送信します。
これらの数値は 間接サンプル にのみ適用されることに忘れないでください。Mantraは、すべての直接サンプルに対してオリジナルの数値を使用します。
間接ボリュームコンポーネントのノイズ量を調べるには、 Extra Image Planes タブで“Indirect Lighting (per-component)”画像平面を追加します。 これによって、各間接コンポーネントを個々にチェックすることができます。このパラメータに関しては、Indirect Volumeコンポーネントをチェックしてください。
Direct RaysとIndirect Raysを分離させて、別々のノイズレベルだけでなく別々のサンプリングレートを適用することができます。 一般的には、あまりにも多くのサンプルがDirect Raysとして送信されていることがわかっている時にのみ、このパラメータを有効にする必要があります。
“direct samples”と“indirect samples”の画像平面を追加すれば、送信されているサンプルの数や、送信されている画像の領域を追跡することができます。 サンプリングに関する詳細は、サンプリングとノイズを参照してください。
このパラメータは、3つの新しいパラメータを有効にします: Min Indirect Ray Samples, Max Indirect Ray Samples, Indirect Noise Level 。
Direct RaysとIndirect Raysの違いを理解したいのであれば、サンプリングとノイズを参照してください。
画像を生成する時に使用する 間接光線の最小数 。 一般的には、間接光線は、他のオブジェクトとそれらの材料特性をサンプリングする時に使用されます。 間接光線に関する詳細は、サンプリングとノイズを参照してください。
上記のRay Sample Limitsと同様に、この数は、現在の Pixel Samples の数で乗算されることを覚えておいてください。
Indirect Noise Levelにまったく到達していなくても 画像を生成する時に使用する 間接光線の最大数 。 このパラメータは、 Min Indirect Ray Samples と一緒に使用し、本質的には画像に対して受け入れ可能なサンプリングの範囲を作成することができます。 あり得る光線の総数を注意して制御することが、レンダリングを最適化する最善の方法です。
この数は、現在の Pixel Samples の数で乗算されることを覚えておいてください。
Max Indirect Ray Samples を上げるタイミングに関する詳細は、ノイズの除去を参照してください。
Mantraが間接光線を送信する前に許容されるVarianceの度合い における閾値を意味します。本質的には、Varianceとは、サンプルセット内の値の“広がり”方を意味します。 例えば、すべて同じサンプルセットのVarianceは0です。一般的には、妥協できない量のノイズがある領域にのみ光線が送信されるように、できるだけ、この値を高く保持するのが良いです。
“direct samples”と“indirect samples”の画像平面を追加すれば、送信されているサンプルの数や、送信されている画像の領域を追跡することができます。 サンプリングに関する詳細は、サンプリングとノイズを参照してください。
シーン内の特定のオブジェクトに画像の他の部分よりもサンプルをもっと増やす必要があると分かっていて、且つNoise Levelパラメータでそれらのオブジェクトを“ターゲット”にすることができない場合、 その問題の領域に、オブジェクト毎のサンプリングパラメータを追加するのが良い方法です。詳細は、ノイズの除去を参照してください。
光源で使用するイルミネーションのサンプルの相対数。Sampling Qualityは光線のサンプリングパラメータ(vm_minraysamples
とvm_maxraysamples
)に比例します。
ノイズをピクセルサンプリングパターンに追加する浮動小数点値。値が1なら完全にピクセルサンプリングパターンをランダムにし、値が0ならピクセルサンプルがほとんど使われていない時にギザギザの乱れになったピクセルのジッターを返します。ジッターはピクセルのアンチエイリアスにだけ適用し、モーションブラーや被写界深度のサンプリングには適応しません(これらは常にランダム化されています)。
このパラメータを調整すると、Mantraで使用されるピクセルサンプリングパターンが別々の構成で再生成されます。 デフォルトでは、それらのパターンはフレーム毎に変わるので、手動でこの値を変更するのは不要です。
一般的には、サンプリングはランダムパターンで発生し、そのパターンはアニメーションのフレーム毎に変わります。 これは、画像内に大量のノイズがある時に、紛らわしい“ノイズ”を引き起こし、シーンの他の局面の評価を複雑にすることができます。 このパラメータを有効にすると、そのサンプリングパターンが“固定”されるので、フレームが変わってもノイズが同じままになります。
また、最終レンダリング画像をポストレンダリングのノイズ除去のプロセスに送る場合には、フレームが変わってもノイズが同じままである方が役立ちます。 常に同じサンプリングパターンは、ノイズを解析する時にも役に立ちます。
デフォルトでは“オフ”になっています。 その理由は、一般的には、最終シーケンスに対してサンプリングパターンを固定するのは許容できないからです。
Decorrelate Depth of Field from Motion Blur Samples
モーションブラーと被写界深度の両方を使ったシーンでは、Mantraのデフォルトの画像サンプリングパターンは、時間と被写界深度のサンプルが相互に関係しています。 これはノイズの削減の効果がありますが、モーションブラーと被写界深度の両方とも影響が大きい画像の一部のレンダリング内で画像の乱れ(帯)が発生する可能性があります。 この設定を有効にして、モーションブラーと被写界深度との相互の関係を切ることで、これらの帯状の画像の乱れが軽減されますが、レンダリングでノイズが増えます。
マイクロポリゴンレンダリングでは、このプロパティを有効にすると、パフォーマンスが低下します。その理由は、Mantraは、相互に関係した被写界深度サンプリングパターンに対してマイクロポリゴンレンダリングを最適化するからです。レイトレーシングでは、パフォーマンスは低下しません。
被写界深度のレンダリングで使用するフィルターカーネル。テキストボックスの右側のポップアップメニューから利用可能なオプションを選択します。
Radial bokeh (radial
)
ガウスフィルターカーネル(最高品質)を使用します。
Image file bokeh (file
)
画像ファイルを使用します。
Box filter bokeh (box
)
ボックスフィルターカーネルを使用します。
Disable bokeh (null
)
フィルターなし。
MantraがVelocityブラーレイトレーシングケージの細分化の細かさを決めるネイティブステップサイズに対するスケール。 ボクセルボリュームプリミティブに関しては、0.1のデフォルトは、10ボクセル毎に1Velocityサンプルを受け取ります。 値が小さいほど、レンダリングが速くなりますが、その結果のモーションブラーの精度が悪くなります。
光線がボリュームを通過した時のそのボリュームのサンプリングの細かさ。ボリュームオブジェクトは、ボクセルと呼ばれる3D構造で構成されています。 このパラメータの値は、他のサンプルを実行する前に、光線が通過するボクセルの数を意味します。
デフォルト値は0.25
です。この値は、4つのボクセル毎に1つのボクセルがサンプリングされることを意味します。1
の値は、すべてのボクセルがサンプリングされ、2
の値は、すべてのボクセルが2回サンプリングされることを意味します。
つまり、Volume Step Rateの値は、 Pixel Samples と同じような挙動をし、ボリュームオブジェクトに対するサンプルの合計数の乗数として機能します。
ボクセルベースでないボリューム、例えばCVEX Proceduralボリュームに関しては、Mantraは、そのボリュームの境界ボックスを約100個の“仮想的な”ボクセルに分割します。 その場合に、正しい詳細レベルを維持するためには、 Volume Step Rate を正しく設定する必要があります。
Volume Step Rate を上げると劇的にレンダリング時間が増えてしまうので、必要な時だけ調整してください。
また、デフォルトの0.25
から上げると、ボリュームノイズが減り、1
を超えて値を上げると、同じような結果になることがほとんどありません。
ボリュームサンプリングに関する詳細は、サンプリングとノイズを参照してください。
このオブジェクトを均一な密度のボリュームのようにレンダリングします。サーフェスジオメトリ上にこのプロパティを使えば、均一な密度のボリュームオブジェクトを実際に作成するよりも効率的です。なぜなら、レンダラーは、ボリューム密度が均一とみなして、もっと最適にサンプルを配置することができからです。サーフェスのサーフェス法線は、サーフェスのどちら側をボリュームとしてレンダリングするかどうか決めるために使われます。法線は、内側から外側を向いています。サーフェスは閉じている必要はありません。サーフェスが閉じていないなら、そのボリュームはサーフェスから無限の距離まで拡張します。閉じていないサーフェスは、サーフェスのエッジ付近で予期しない結果を生成する場合があるので、ビューカメラをエッジから離すようにしてください。このパラメータは、レイトレーシングとPBRで互換性がありますが、マイクロポリゴンレンダリングでは互換性はありません。
均一ボリュームのタイプを決めます。Continuous
は、交差したボリュームオブジェクト内の一連のポイントに沿ってサンプリングします。Segment
は、交差したボリュームオブジェクト内でセグメント毎に1回サンプリングします。
Uniform volume flipped normal detection threshold
反転ジオメトリまたは自己交差が原因で法線が反転してしまっている時、Mantraはボリュームの間隔を誤判断してしまってレンダリングで不具合を生じることがあります。 Mantraは、そのような場合に、交差の距離がこの閾値内にあれば補正を試みます。
均一なボリューム(vm_uniformvolume
が有効)をレンダリングする時、この設定はサーフェスもレンダリングするかどうか制御します。この設定を有効にすると、サーフェスシェーダはボクセルとサーフェスの両方のサンプルを dPdzグローバルの値をチェックすることで処理します。値が0の時、シェーダはサーフェスをレンダリングし、それ以外はボリュームをレンダリングします。
ボリューム内のサンプルを生成するのではなく、これは、自動的にボリュームのDensityフィールドを調べて、それをサーフェスとしてレンダリングできるようにレンダラーを設定します。vm_volumedensity
パラメータはIsosurface Densityの閾値として使われます。この設定を有効にしてボリュームをレンダリングする時は、ボリュームレンダリングサーフェスシェーダではなく普通のサーフェスシェーダを使うべきです。
デフォルトでは、アイソサーフェスは、ボリュームを通じたRay Marchingで、その閾値のDensityと交差する場所のポイントを探すことで見つけられます。つまり、レンダリングの精度を良くするには、vm_volumesteprate
パラメータを上げます。いくつかのボリュームタイプは、Volume Step Rateを無視して、アイソサーフェスが特定のタイプのボリュームで解析的に決められる場合には、ネイティブの高速化されたIsoサーフェス検索技術を使います。VDBボリュームは、例えば、この解析Isoサーフェスレンダリング手法を使います。vm_volumeisodefault
パラメータを使えば、このネイティブの交差アルゴリズムを無効にすることができます。
Use default volume isosurface evaluator
vm_volumeiso
が有効な時に、このオブジェクトのネイティブボリュームアイソサーフェスを無効にします。このパラメータは、ネイティブIsoサーフェスアルゴリズムを持つボリュームタイプ(VDBボリュームを含む)にのみ影響を与えます。
vm_volumeuniform
がオンの時、オブジェクトの体積の密度は均一です。この値は、Volume Cloudシェーダと同じオブジェクト上になければなりません。vm_volumeiso
がオンの時、この値には、Isoサーフェスレンダリングの閾値密度の値を指定します。
Volume Step Rateを基準とした、シャドウだけに対するボリュームステップレートを比例的に下げるための係数。値を小さくするほど、Mantraはシェーディングレイ以外のシャドウレイに対してより大きいRay Marchステップサイズを使います。値が1ならシャドウレイとシェーディングレイに対して均等な品質を生成します。
レンダリングする最小密度を指定します。より大きいゼロ閾値を使えば、ボリュームのほぼ空っぽの部分で発生するシェーディングとサンプリングの量を減らすことでレンダリングパフォーマンスを改善することができます。非常に大きいゼロ閾値を使うとレンダーでクリッピングの乱れを取り込むことができます。
空っぽのスペースカリングで使われる名前でボリュームチャンネルを指定します。デフォルトでは、Mantraはdensity
チャンネルが存在すれば、そのチャンネルを使います。一部のdensity
が0のボリュームを発光するようにレンダリングしたい場合は、このパラメータを使って別のチャンネルを指定してください。指定したチャンネルが見つからない場合は、Mantraは全体のボリュームをレンダリングするものとみなすのでカリングが発生しません。Sampling Channelは空っぽの空間を意味するvm_volumezerothresh
よりも小さい値を指定するべきです。
光線が半透明なオブジェクトを通過した時にシェーディングされる透明サンプルの数。 この値を上げると、半透明なオブジェクトのノイズが少なくなり、一般的には Pixel Samples 、 Volume Step Rate 、 Min Ray Samples 、 Max Ray Samples を上げるよりも処理が軽いです。 しかし、Stochastic Sampling(確率的サンプリング)は、Indirect Sourcesのノイズには何の効果もありません。
これは、 Stochastic Transparency (確率的透明度)を使用しない時よりも画像にノイズが発生することがあります。 そのため、例えば、 Pixel Samples を上げて補間する必要があります。通常ではこのオプションはオンのままにするべきです。
レンダラーは、マイクロポリゴンレンダリング(セカンダリーレイトレースを除く)、不透明度だけを生成するレンダー(例えば、ディープシャドウマップ)に対しては、このオプションを無視します。これらの場合では、すべての透明なシェーディング結果をコンポジットする方が効率的です。
Houdini 12で追加されました。
Stochastic Transparencyがオンの時にシェーディングする透明なサンプルの数。値が高いほどボリューム、透明なサーフェスのシェーディング品質が良くなりますが、レンダリングが遅くなります。
場合によっては、後処理または他のコンポジット操作のためにモーションブラーを画像に追加させたい時、最終レンダリング画像にはそのモーションブラーを含めたくないけれどもモーションブラーを計算する必要があります。 そのような場合、Allow Image Motion Blurを無効にしてください。
つまり、GetBlurP()関数をシェーダ内に使用することで、モーションブラーに必要なブラーがかかった位置情報は、レンダリングで実際にシェーディングを行なわずに独自のモーションベクトル画像平面としてエクスポートすることができます。
このパラメータは、Motion Blurが有効な時だけ利用可能なモーションブラーパラメータに関連しています。 このオプションを無効にすると、最終レンダリング画像からモーションブラーが除去されます。 それでもブラーのかかったPositionは計算されているので、独自のモーションベクトル画像平面を作成することができます。
Shaders ¶
オブジェクトノードに対して、このパラメータは、そのオブジェクトのジオメトリに適用するMaterial Style Sheetを定義します。 Material Style Sheetは、色々なシェーダとマテリアルを別々のジオメトリの部分(プリミティブ)に割り当て、それらの部分をレンダリングする時にシェーダパラメータを上書きすることによってジオメトリのルックを決定します。
このパラメータにMaterial Style Sheetを定義するのにはJSON形式を使用しますが、その定義はDeta TreeペインのMaterial Style Sheetsビューで編集することができます。
Shading ¶
スペースで区切ったコンポーネントタイプのリストは、Diffuse Bouncesのように動作します。これは、光線タイプに基づいて使う反射スコープと、使用するBounce Limitに影響を与えます。カテゴリ化されていないコンポーネントタイプは、反射とみなされます。
スペースで区切ったコンポーネントタイプのリストは、Refract Bouncesのように動作します。これは、光線タイプに基づいて使う反射スコープと、使用するBounce Limitに影響を与えます。カテゴリ化されていないコンポーネントタイプは、反射と見なされます。
スペースで区切ったコンポーネントタイプのリストは、Volume Bouncesのように動作します。これは、光線タイプに基づいて使う反射スコープと、使用するBounce Limitに影響を与えます。カテゴリ化されていないコンポーネントタイプは、反射と見なされます。
サブサーフェススキャタリングの跳ね返りのように振る舞うコンポーネントタイプをスペースで区切ったリスト。 これは、光線タイプに基づいて使用される反射スコープと、使用するバウンス制限に影響します。カテゴリ化されていないコンポーネントタイプは、反射であると見なされます。
Variables Imported by Fog Shaders
計算を軽くするために、Mantraは、変数を画像平面へ保存する必要がある場合に、サーフェスシェーダ上のエクスポートのみを計算します。
つまり、いくつかのサーフェスエクスポートは、simport()
関数に対してFogシェーダで利用できないことがあります。
このパラメータには、Fogシェーダで計算する必要がある変数のリストを指定します。
Enable Absorption and Nested Dielectrics
計算を軽くするために、Mantraは、変数を画像平面へ保存する必要がある場合に、サーフェスシェーダ上のエクスポートのみを計算します。
つまり、いくつかのサーフェスエクスポートは、simport()
関数に対してFogシェーダで利用できないことがあります。
しかし、Absorption and Nested Dielectrics(吸収と入れ子状の絶縁体)のような高度な機能を適切にレンダリングするためには、サーフェスシェーダから追加のエクスポートを必要とします。
これは、それらの特別なエクスポートを有効にします。
PBRモードで実行するパストレースのタイプ。
specular, diffuse
すべてのディフューズとスペキュラーの跳ね返りをトレースしますが、一度ディフューズの跳ね返りが起きると、そのディフューズ反射のみのトレースを続けます。
all
すべてのパスをトレースします。 このオプションはフォトンマップを使わないでコースティクスのレンダリングを有効にするのに使用します。 しかし、ポイントライトや小さいエリアライトを使用すると、レンダリング結果に極端なほどのノイズが発生する可能性があります。
Constrain by Maximum Roughness
GGX BSDFの Roughness パラメータは、パストレースのレイチェーンを伝搬していった最大の粗さでクランプされます。このオプションを有効にすると、間接スペキュラー(特に、光沢のあるサーフェスが粗いスペキュラーサーフェスに反射している場合)内の多くのノイズを精度を若干落として削減することができます。
ディスプレイスメントの限度を指定する空間。
object
ディスプレイスメントがオブジェクト空間で起こります。
camera
ディスプレイスメントがカメラ空間で起こります。
world
デフォルト。現在ではカメラのエイリアスです。
ボリュームVelocityモーションブラーの最大限度。カスタムボリュームプロシージャと一緒にVelocityモーションブラーを使用する時には、このパラメータのみを構成する必要があります。なぜなら、Mantraは組み込みボリュームタイプで既に正確な限度を計算しているからです。
極端な変位をすると、形状から遠くにはみ出して引き伸ばされるマイクロポリゴンができる可能性があります。re-dicingを有効にすれば、ジオメトリが変位した後にre-diceします。これによって、より均一なサイズを持つマイクロポリゴンができあがり、高品質な画像になります。これはディスプレイスメントシェーダを投影処理間で複数回実行するので、非常に負荷がかかります。
このプロパティはボリュームディスプレイスメントには効果がありません。
有効にすると、オブジェクトのサーフェスシェーダがプライマリ光線用のMatteシェーダに置き換えられます。
デフォルトのMatteシェーダは、オブジェクトを完全に不透明でアルファ値が0としてレンダリングします。
オブジェクトを表示させる場所で画像に穴を効果的に切り取ることができます。
この設定は、手動で画像をパスに分ける時に役に立ちます。つまり、背景要素を前景オブジェクトと別々にレンダリングすることができます。
デフォルトのMatteシェーダは、“Matte” VEXシェーダですが、vm_matteshader
レンダープロパティを追加して、他のシェーダを割り当てることで、別のMatteシェーダを設定することが可能です。
セカンダリ光線が、まだオブジェクトに割り当てられたサーフェスシェーダを使用しているので、オブジェクトを直接レンダリングしなくても、反射と間接照明を表示することができます。
ボリュームの正しいマットシェーディングについて:
-
オブジェクトに
vm_matteshader
プロパティを追加します。 -
Volume Matte シェーダを作成します。
-
このシェーダの密度をジオメトリシェーダの密度に合わせます。
-
このシェーダを
vm_matteshader
に割り当てます。
そして、 Matte Shading トグルが有効な時、デフォルト(密度を単に1に設定)ではなく、あなた独自のボリュームマットシェーダを使用します。 完全に不透明なマットが必要であれば、ボリュームマットではなく、マットシェーダを使用します。
Add Bump To Ray Traced Displacements
True Displacementsを有効にすると、ジオメトリの変位に加えて、バンプマップとして変位を使うことができます。このオプションを有効にすると、シェーディング品質の負荷を掛けることなくディテールを加えることができます。基本的には、MantraはTrue Dispacementsを使ってシェーディング品質を上げ、シェーディング法線N
を修正することでさらにディテールを加えます。
いくつかのボリュームプリミティブ(Geometry Volumes、Image3D)はボリュームチャンネルの評価中にフィルターを使用することができます。これはフィルターを指定します。デフォルトのボックスフィルターは評価が速くて、ほとんどの滑らかな流体シミュレーションに対して鮮明なレンダーを生成します。ボクセルデータがエイリアス(エッジに沿ったギザギザ)を含んでいると、もっと大きなフィルター幅またはもっと滑らかなフィルターを使って納得できる結果を生成する必要があります。エイリアスのあるボリュームデータに対しては、フィルター幅が1.5のgauss
が良いフィルターです。
-
point
-
box
-
gauss
-
bartlett
-
blackman
-
catrom
-
hanning
-
mitchell
これはobject:filter
プロパティのフィルター幅を指定します。フィルター幅はボクセルの数で指定します。フィルター幅が大きいほどレンダリングやブラーの生成に時間がかかりますが、ある種のボクセルデータではエイリアスを処理する必要が出てきます。
マイクロポリゴンの頂点をシェーディングするのではなくて、すべてのサンプルをシェーディングします。この設定はオブジェクト単位基準でレイトレースレンダリングを有効にします。
マイクロポリゴンレンダリングの時、シェーディングは通常ではフレームの最初のマイクロポリゴンの頂点で起こります。サンプルのカラーを決めために、コーナー頂点が補間されます。object:rayshade
を有効にすると、レイトレースシェーディングアルゴリズムが読み出されます。これは各サンプルを単独でシェーディングします。これはシェーディング負荷が膨大に増えることを意味します。しかし、各サンプルは正しい時間と位置でシェーディングされます。
プリミティブ単位でのマテリアルの割り当て(Material SOP)は現在サポートされていません。
PBRレンダリングで使用されるグローバルレイトレースのバイアスでワールド空間単位で指定します。レンダーでレンダリングの乱れを除去するなら、レイトレースバイアスを上げてください。本当に小さいシーン(1単位のサイズ)に対しては、場合によってはレイトレースバイアスを下げる必要があります。
シェーディングポジションとレイトレースの微分計算を複数のピクセルサイズとして使用するように生成したポイント間の距離を制御します。値が小さいほどより正確な結果が出ますが、数値的な安定性の問題が課題になります。不整合な接線ベクトルを持つジオメトリ上にバンプマップを使っていれば、この値を下げてレンダーの乱れの除去します。この値は微分係数的なサイズのスケールではなく、正確な制御をするためだけのものです。
Randomize Ray Derivative Basis
有効にすると、レイトレースの微分計算で、デフォルトのGeometric Basisとは対照的に、ランダムに向いたs/tの基底を使用します。このプロパティは、サーフェス境界でのパラメータ方向内の急な変化(特に高い周波数のパターンから法線を計算する時)が原因で発生するシェーディングの画像の乱れを削減するために使います。レイトレースの微分計算には、Du()
、Dv()
、computenormal()
、dPds/dPdt
グローバル変数を使って計算された値すべてを含んでいます。sとtのシェーディンググローバル変数は、このプロパティで影響を受けません。
マイクロポリゴンレンダリングの時、シェーディングは通常ではフレームの最初のマイクロポリゴンの頂点で起こります。このチェックボックスを有効にすると、サンプルのカラーを決めるために、頂点カラーをグローシェーディングします。
平面上に起こる任意のフィルタリングを除去するために背景の平面を一致させようとしている時は、このチェックボックスをオフにします。グロー補間はマップを柔らかくします。
パターンのリスト。これらのパターンに一致すライトが、このオブジェクトを照明します。ライトを指定するには、ワイルドカード(例えば、key_*
)とバンドル参照を使うことができます。
Light Linkerペインを使えば、グラフィカルユーザインターフェースを使ってライトとオブジェクト間の関係を編集することもできます。
Mantraのobject:lightmask
プロパティは、 LightカテゴリとLightマスクを組み合わせた結果を含んだ計算されたプロパティです。
ライトパスエクスプレッションで使用するためのライトまたはオブジェクトに割り当てるカスタムラベル。
パターンのリスト。これらのパターンに一致するオブジェクトが、このオブジェクトに映し出されます。オブジェクトを指定するには、ワイルドカード(例えば、key_*
)とバンドル参照を使うことができます。
Light Linkerペインを使えば、グラフィカルユーザインターフェースを使ってライトとオブジェクト間の関係を編集することもできます。
Mantraのobject:reflectmask
プロパティは、 ReflectionカテゴリとReflectionマスクを組み合わた結果を含んだ計算されたプロパティです。
パターンのリスト。これらのパターンに一致するオブジェクトが光の屈折で見えるようになります。オブジェクトを指定するには、ワイルドカード(例えば、key_*
)とバンドル参照を使うことができます。
Light Linkerペインを使えば、グラフィカルユーザインターフェースを使ってライトとオブジェクト間の関係を編集することもできます。
Mantraのobject:refractmask
プロパティは、 RefractionカテゴリとRefractionマスクを組み合わた結果を含んだ計算されたプロパティです。
バイアスがVEXシェーダで使われると、バイアスを光線方向に、またはサーフェス法線に沿って実行することができます。このパラメータをオンにすると、バイアスがNg
VEX変数を使ってサーフェス法線に沿って実行されます。
光線方向、異なる方向を向いた法線ポイント、法線が最初に反転していれば、バイアスは反転した法線の方向で実行されます。この設定は、特にレイトレースしたサーフェスが尖って見えるときに役に立ちます。
通常では、発光(“Ce”)は反射などの副光線に寄与します。この設定は、副光線の発光を無効にすることで、発光が主光線または直接の可視ライトにのみ影響を与えます。この設定は、既に発光が他のオブジェクトやライトで扱われているときに重複して発光されるのを防止するのに役に立ちます。
Share Displacements Between Instances
デフォルトでは、インスタンス化をディスプレイスメントと一緒に使用した時、ディスプレイスメントジオメトリが、インスタンス毎に固有に作成されます。 なぜなら、ディスプレイスメントが各インスタンスのワールド空間位置によって別々に定義することができるからです。 このデフォルトの挙動は、正しい結果を保証しますが、Mantraがインスタンス毎に別々のディスプレイスメントジオメトリのコピーを保持する必要があるので、効率が悪いときがあります。 この設定を有効にすると、Mantraは、すべてのインスタンス間でディスプレイスメントジオメトリの1個のコピーを共有し、ディスプレイスメントシェーダのみが、オブジェクト空間位置を使って、ディスプレイスメントの位置と法線を決めます。
ディスプレイスメントを共有する時に使われるDicing Qualityは、カメラに一番近いインスタンスのDicing Qualityになるので、この設定を有効にすると、無効にした時と比べて、カメラから遠いインスタンスほどレンダリング負荷がかかる場合があります。しかし、メモリ使用量は、通常では小さくなります。
パックプリミティブでディスプレイスメントを共有する時、ディスプレイスメントが急に変化する問題が非常に微妙ながらあります。デフォルトではvm_procuseroottransform
トグルが有効になっています。
つまり、パックジオメトリのオブジェクト空間には、パックプリミティブ自体のトランスフォームを含んでおらず、そのパックプリミティブを含んだオブジェクトのトランスフォームのみが含まれています。
これは、ポイントクラウドすべてが単一オブジェクトの空間になるようにジオメトリ/ボリュームのライティングを行なう時に重要です。
しかし、共有されたディスプレイスメントがある時、そのディスプレイスメントは、アンパックされたジオメトリの空間で計算されるべきです(つまり、パックプリミティブのトランスフォームを含む)。
パックプリミティブに対して共有されたディスプレイスメントを使用したいのであれば、vm_procuseroottransform
パラメータを無効にしてください。
Shadow ¶
Statistics ¶
VEX Profilingはシェーダのパフォーマンスを解析することができます。これを有効にすれば、シェーディングが遅くなります。特に、NAN detectionを有効にした時がそうです。
No VEX Profiling (0
)
VEX Profilingを実行しません。
Execution Profiling (1
)
Mantraはレンダリングの終わりにシェーディング計算に関する情報を出力します。これはシェーディング処理で問題になっている箇所を特定するのに役に立ちます。
Profiling and NAN detection (2
)
シェーディング情報を出力して、悪い値(Not A Number)を生成する命令を出力しません。出力は短いですが、シェーダでのエラーを調べるのに役に立ちます。
NAN detectionを有効にすると、VEXで実行された各命令が無効な算術処理をしていないかチェックします。これは0
で割り算されていないか、数値のオーバーフローがないか、無効な演算がされていないかチェックします。このようなエラーは通常では出力画像でホワイトやブラックのピクセルになります。
この値を上げると、より多くの情報がレンダリング中に出力されます。レンダリング時間やメモリ情報を見るには、Verbose Levelを1に設定します。レンダリングに関するより細かい情報を見るなら、このパラメータを3に設定します。
タイルが終了するときに、達成度が出力されます。これはPixarのAlfredレンダーキューで使われているスタイルです。
以下が時間の情報の例で、その読み方を説明します。
Render Time: 4.52u 6.30s 4.24r Memory: 23.40 MB of 23.59 MB arena size. VM Size: 345.11 MB
-
u
値はMantraが画像のレンダリングでかかった秒単位のユーザの時間。Note
この値はOSと他のシステム変数に依存していて、100%正確というわけではありません。Linuxでは、この値はレンダリングの すべてのスレッド の合計時間を意味します。つまり、2つ以上のプロセッサーを使ったレンダリングはユーザ時間を増やします。
-
s
値はフレームのレンダリングで生じたシステムのオーバーヘッド(ディスクのIO、スワップなど)です。この時間が大きいと、ファイルの読み書きが遅いことを意味します。 -
r
値はレンダリングでかかった壁時計の時間です。これが一番重要な値で、レンダリングに費やした合計時間を意味しています。 -
arena size
とは、Mantraが実際に画像のレンダリングで割り当てたメモリ量のことです。これはMantraが実際に使用したメモリ量を反映していません。 -
VM size
とは、Mantraプログラムの仮想メモリサイズのことです。これはオペレーティングシステムで報告されたメモリ量で、Mantraが実際に使用しているメモリ量よりもはるかに大きいです。
Mantraはデータ構造を構築する時にメモリを連続の塊で掴む必要があります。一度データを解放すれば、オペレーティングシステムはarena size
を制御して、それを圧縮し、メモリの連続の塊を探して利用可能なメモリの空きプールに戻します。これはメモリの割り当てとメモリの解除をしています。arena size
は実際に使用されるメモリよりも大きくならないようにしてください。
このプロパティは、各タイルのレンダリングが完了するときに読み出されるPythonコールバックを指定します。情報を照会できる“Built-in” “Mantra”モジュールがあります。Mantraモジュールで利用可能な1つのファンクションがあります。“property”ファンクションは、他の特別なプロパティと同様に、任意のグローバルレンダリングプロパティの照会が可能です。プロパティコールの結果は常に値のリストになっています。
照会する特別なプロパティは以下の通りです。
tile:ncomplete
完了したタイルの数。
tile:ntiles
画像内のタイルの合計数。
tile:laptime
最後のタイルのレンダリングにかかった秒数。
tile:totaltime
レンダーが開始してからのレンダリングにかかった合計の秒数。 これにはシーンの読み込み時間が 含まれていなくて 、最初のタイルのレンダリングが始まってからの時間です。
tile:coords
タイルの境界ボックス(ピクセル単位)。
tile:memory
Mantraで使用したRAMの容量。
import mantra import sys tile = mantra.property("tile:ncomplete")(0) if tile == 1 print mantra.property("renderer:name") print mantra.property("renderer:version")
Stereo ¶
レンダリングで使用するカメラのリストを指定します。ステレオカメラのネイティブオペレータタイプでは、このプロパティがあり、デフォルトで左右の視点となる2つの標準のカメラを指定します。
ファイル名に文字列を追加します。この文字列は通常では他のカメラのvm_cameralist
プロパティに含まれているカメラで指定します。 そして、レンダリング画像をファイルに保存する前にレンダーノードのvm_picture
ファイル名の文字列に追加されます。これは指定したフレームの左右の画像をあいまいにしないために使われます。この接尾辞は基本ファイル名に追加されます。
Unwrapping ¶
'UV Object'からアンラップするのに使用するメソッドを選択します。
UV To Surface
UVをそのオブジェクトのサーフェス上の位置にマッピングします。
Trace Closest Surface
レイトレースを使用して UV Object に最も近いサーフェスを検索します。
高解像度オブジェクトを低解像度ケイジにUVをベイクする時、通常では低解像度ケイジのレンダリングを無効にしたいことでしょう。 このオプションをオフにすることで、その機能が無効になります。
このパラメータは、ベイクレンダリング中に排除されるライトコンポーネントを制御します。
ベイクする時、“diffuse”などのビューに依存しないコンポーネントだけをレンダリングしたいことが多いです。デフォルト値の-diffuse & -volume
は、ディフューズとボリュームライトのパスのみをレンダリングします
Ptex画像にベイクする時、Mantraは画像内のすべてのフェースのワールド空間サイズを測定します。
各フェースのタイル解像度は、( Ptex Use Relative Scale が無効でない限り)モデル内の最小フェースを基準としたフェースの相対サイズで決まります。
指定したフェースのタイル解像度は、clamp(curr_size/min_size * ptexmapminres * ptexmapscale, ptexmapminres, ptexmapmaxres)
で決まります。
Ptex画像にベイクする時、Mantraは、この名前のプリミティブレベルのスカラーアトリビュートを検索して、現行フェースのタイル解像度をスケールします。 それでもスケールされた解像度は、最小/最大解像度でクランプされることに注意してください。
これが無効になっていると、MantraはPtex画像にベイクする時にモデル内の最小フェースと比較してフェースの相対サイズを測定しなくなります。各フェースのタイル解像度は、単に Minimum Ptex Map Resolution を Ptex Resolution Scale とプリミティブレベルのPtexスケールアトリビュート(存在していれば)で乗算します。
Orient Ptex Subfaces Clockwise
Ptex画像にベイクする時、このオプションは、四角形でないフェースを分割した時のサブフェースのフェースIDの向きを決定します。 デフォルトは、そのサブフェースを反時計回りに並べます。しかし、いくつかのソフトウェアでは、フェースを時計回りに並べる必要があります。
UDIM画像にベイクする時、このオプションは、何のタイプのポスト処理を最終画像に適用するか決定します。選択候補は、 No Post Processing, Border Expansion, Fill Background With Average Color, Diffuse Fill です。
Note
現在のところ、これはディスクへのレンダリングのみに対応しています(Flipbookには対応していません)。
テクスチャをベイクする時、これはジオメトリの法線を逆にします。 これは、Lensシェーダをベイクする時のサーフェスの向きを決定します(つまり、サーフェスの内側または外側をシェーディングします)。
オブジェクトの表面から法線ベクトル方向に光線の位置をオフセットする量を決定します。 この値は、光線が必ずサーフェスに当たるように(1なら)ディスプレイスメントシェーダの変位量に比例して大きくしてください。 このバイアスは、カメラ光線に対してのみ使用されます。
User ¶
View ¶
レンダリングで使われるカメラプロジェクションのタイプ(例えば、パースペクティブまたは正投影)。
Perspective
これは古典的なピンホールカメラをシミュレーションし、カメラの光線が共通のカメラの原点から平坦なカメラ平面を通過して放射されます。
Orthographic
これは(平坦な)カメラ平面に直交する平行なカメラの光線を使用します。ビューボリュームの幅は、以下のOrtho Widthパラメータで決まります。
Polar (panoramic)
このプロジェクションはレンダリングで球状のカメラ平面を使用します。
Cylindrical (panoramic)
このプロジェクションはレンダリングで円柱状のカメラ平面を使用します。
Lens Shader
このプロジェクションは、Lensシェーダを使って、レイトレーシングの光線を初期化します。
Polar 、 Cylindrical または Lens Shader を選択すれば、自動的に Rendering Engine (出力ドライバ上にあります)が Ray Tracing に切り替わります。なぜなら、Polar、Cylindrical、Lens Shaderのプロジェクションはマイクロポリゴンレンダリングでレンダリングすることができないからです。
可視フィールドの幅。
測定されたレンズの水平画角に合わせて、Apertureのデフォルトの41.4214でその画角を再現するHoudiniのFocal Length値を導き出すことで、Houdiniのカメラと現実のカメラ間で良いフィット感を得ることができます。
Note
Focal Lengthのデフォルトの50mmと組み合わせたデフォルトのApertureは、45度の画角を生成します。
このピクセル数(水平と垂直)を増やすことで、クロップ領域を広げます。クロップ領域がフル画像の場合、その画像外の追加ピクセルがレンダリングされます。
任意のデータウィンドウに対応した画像(OpenEXR, Houdini)に関しては、その画像解像度外のピクセルが保存されます。 他の画像形式に関しては、それらのピクセルが計算されますが、その結果は破棄されます。
Mantraは非平坦なプロジェクト平面を使ってレンダリングすることができます。曲率が非ゼロの時、主光線にレイトレースが使われます。広角または魚眼レンズを模倣するときは、曲率を0より大きくまたは小さくします。
vm_curvature
には、既存のパースペクティブ方向ベクトルDで以下の効果があります:
tx = [-0.5:0.5] x screen offset ty = [-0.5:0.5] y screen offset cmult = camera:curvature / camera:zoom D.z = 1 + (1 - 2*(tx*tx + ty*ty)) * cmult
主光線(主光線のみ)の背景色を埋めるのに使うディープカメラ/シャドウの画像を指定します。
ディープカメラ/シャドウの画像はすべての深度でカラー/不透明度を記録しているので、ディープ画像がシーンの他のオブジェクトと完全なオクルージョン/透明度でミックスすることができます。
このプロパティをカメラ(出力ドライバではなく)に追加します。それを出力ドライバに追加すると、シャドウマップの生成で背景画像がピックアップされて、あなたが求める結果になりません。
このプロパティをライトに追加すると、画像がライトから生成されたシャドウマップと結合されます。
MantraはOCIOを使用してディスク上の画像のカラー補正を行ないます。
画像ファイル名(例えば、myimage-srgb.exr
)や画像形式に基づいてその画像のカラー空間を推測することもできます。
Background Deep Camera Mapをマットオブジェクトとしてレンダリングします。このプロパティがオンの時、Mantraはディープカメラマップのカラーを廃棄し、ディープカメラマップのアルファを最終画像に格納しません。これは、ディープシャドウマップのファイルに対するデフォルトの挙動です。
ディープカメラ画像にのみ意味があります。デフォルトでは、ディープシャドウ画像がこの挙動をします。
背景画像から使用するチャンネルに一致するスペース/カンマ区切りのパターンのリスト。例えば、*,^C
はC
チャンネル以外の全チャンネルを使用します。これによりディープカメラマップからアルファチャンネルのみを使ったり、DCMからのカラーがレンダリング画像に影響を与えないようにすることができます。
これはディープカメラマップの背景と平坦画像の背景のどちらにでも適用可能です。
Lens Shader
プロジェクションタイプで使用するCVEX Lensシェーダを指定します。
Lensシェーダは、スクリーン座標からプライマリ光線を計算する役割を担っていて、遠近法や正投影では表現できない新しい種類のカメラプロジェクションを柔軟に定義することができます。
Lensシェーダには以下のパラメータとエクスポートがあります:
float x
-1から1までの範囲のXスクリーン座標。
float y
-1から1までの範囲のYスクリーン座標。
float Time
サンプル時間。
float dofx
Xの被写界深度サンプル値。
float dofy
Yの被写界深度サンプル値。
float aspect
画像のアスペクト比(x/y)。
export vector P
カメラ空間での光線の原点。
export vector I
カメラ空間での光線の方向。
export int valid
サンプルが測定に対して有効かどうか。
Lensシェーダは、生成した画像の外側をサンプルする場合には、xとyを-1から1までの範囲外で扱うことができます。 PとIのエクスポートはカメラ空間で作成されるので、カメラのトランスフォームを無視します。
レンダリング開始前に、Mantraは、Lensシェーダを測定します。
その測定の処理中に、valid
変数を使用して、無効な光線にフラグを立てることができます。
将来、レンダリング中にvalid
フラグを使用できるようになるかもしれません。
Mantraのカメラ空間はカメラの正面から+Z値で定義されていることに気づいてください。 そのため、デフォルトのカメラでは、Z軸がHoudiniのワールド空間を基準に反転されています。
サンプルのLensシェーダは、Ray Lensシェーダにあります。
他のHoudiniプロパティ ¶
自動的に追加された背景フォグオブジェクトに割り当てられるシェーダ(vm_fogbackground
を参照してください)。
これは、Render Propertiesインターフェースに存在しないので、変更したいのであれば、これをSpareパラメータとして追加しなければなりません。
ネットワークレンダリングでキューするタイルの数。 これは、Render Propertiesインターフェースに存在しないので、変更したいのであれば、これをSpareパラメータとして追加しなければなりません。
通常では、IFD生成中に自動的に制御されます。
マテリアルの上書きでは、その上書きで指定した名前が内部のMantraプロパティ名(つまり、rendersubd
とは対称的なvm_rendersubd
)に一致しないことがあります。
プロパティマップには、上書きで指定したパラメータ名を実際のMantraプロパティ名にマッピングするネームマップ(Python辞書として表現)を用意しています。
これは、Render Propertiesインターフェースに存在しないので、変更したいのであれば、これをSpareパラメータとして追加しなければなりません。
PBRでレンダリングする時に光源別に独立したサンプリングを有効にします。これを無効にすると、Mantraは、すべてのライトからライティングを実行せずに、ランダムに光源を選択して照明計算することで、ライティングの計算の負荷を軽減しようとします。 通常では、複数のライトサンプリングを有効のままにし、たくさんのライトがあるシーンでライトの有効範囲の設定を組み合わせてパフォーマンス/品質のバランスをうまく設定します。
これは、vm_pbrshaderへ引数として渡されます。
これは、Render Propertiesインターフェースに存在しないので、変更したいのであれば、これをSpareパラメータとして追加しなければなりません。
IFDのみのプロパティ ¶
画像と平面のプロパティ ¶
平面画像の記録タイプ。使用される量子化のタイプは画像品質とサイズに影響を与えます。コンポジットで画像の動的な範囲を調整する必要があるなら、通常ではこの値をデフォルトの16ビット浮動小数点のままにしてください。
1番目の平面のデフォルトは"float16"
、2番目の平面のデフォルトが"float"
です。1番目の平面の値をMantraへの-b
コマンドライン引数で上書きすることができます。
暗黙のプロパティ ¶
これらのプロパティはIFDでのみ意味があります:
例: (0)
シェーダ内で照会可能な整数値。プリミティブ単位でのマテリアルの割り当て(Materialサーフェスノード)はサポートされていません。
計算されるプロパティ ¶
以下のプロパティがマッピング処理中にスクリプトで計算されます。これらのプロパティは直接的には同じHoudiniプロパティを持っていません。
これは、カメラプロジェクションを決めるのに使われます。クロップウィンドウと同様に、これはスクリーン空間の四角形を指定します。クロップウィンドウと違うのは、ウィンドウをフル画像まで延長します。
組み込みMantraプロパティではなく、ステレオペアをレンダリングする時にSOHOで追加されるプロパティ。
これは、カメラがステレオプロジェクションの左右の目を表現するのに使用します。カメラでステレオを無効にするなら、このプロパティは未定義にします。
定義する場合は、値はleft
、right
、both
のどれかです。
これは、ジオメトリライトの交差の制御に使用されるライトシェーダです。
これは、エリアライトに対してsample_light()
関数を実装するために使用します。
このライトシェーダは、グローバル変数やライト固有の機能を参照することができません。
これは、ジオメトリライトの交差の制御に使用されるライトシェーダです。
これは、エリアライトに対してintersect_lights()
関数を実装するために使用します。
このライトシェーダは、グローバル変数やライト固有の機能を参照することができません。
その他のプロパティ ¶
ネットワークエディタ内のレンダーノードで表示される“descriptive text”として使用するリテラル文字列。
通常では、静的な文字列よりはパラメータの値を表示した方が役立つので、代わりにsoho_descriptiveparmname
の方を設定したいことでしょう。
ネットワークエディタ内のレンダーノードで表示される“descriptive text”の内容として使用するパラメータの内部名。
例えば、これをcamera
に設定すると、ネットワークエディタは、そのネットワークエディタ内のノードの横にレンダーノードのCameraパラメータの値を表示します。
vm_motiontimescale
/ geometry:timescale
-v
オプションをray_detail
の行で指定する時、モーションブラーに基づいてVelocityのタイムスケールを決めます。
これはRender Propertiesインターフェースに存在しないので、それを変更したい場合には、floatのSpareパラメータとして追加する必要があります。
カメラでキャプチャーされるオブジェクトに影響を与えるカメラのスペアパラメータです。このパラメータはビューポートでも認識されます。つまり、カメラがこのパラメータを定義すれば、カメラ視点にすると、ビューポートは可視するオプションをフィルタリングするマスクとしてそのパラメータを使用します。
事前に定義された設定を使用して、シェーディングポジション(P
)の追加画像平面を追加します。より詳細な制御をするには、汎用画像平面インターフェースを使用して画像チャンネルを追加してください。
事前に定義された設定を使用して、シェーディング深度(Pz
)の追加画像平面を追加します。より詳細な制御をするには、汎用画像平面インターフェースを使用して画像チャンネルを追加してください。
事前に定義された設定を使用して、シェーディング法線(N
)の追加画像平面を追加します。より詳細な制御をするには、汎用画像平面インターフェースを使用して画像チャンネルを追加してください。
Shading Tangent-space Normal (Nt)
事前に定義された設定を使用して、タンジェント空間のシェーディング法線(Nt
)の追加画像平面を追加します。より詳細な制御をするには、汎用画像平面インターフェースを使用して画像チャンネルを追加してください。
これはテクスチャベイクに固有で、ベイクする出力ドライバにはデフォルトで存在します。
Combined lighting (per-component)
事前に定義された設定を使用して、合成照明(すべてのコンポーネント)の追加画像平面を追加します。より詳細な制御をするには、汎用画像平面インターフェースを使用して画像チャンネルを追加してください。
Direct Lighting (per-component)
事前に定義された設定を使用して、直接照明(すべてのコンポーネント)の追加画像平面を追加します。より詳細な制御をするには、汎用画像平面インターフェースを使用して画像チャンネルを追加してください。
Indirect Lighting (per-component)
事前に定義された設定を使用して、間接照明(すべてのコンポーネント)の追加画像平面を追加します。より詳細な制御をするには、汎用画像平面インターフェースを使用して画像チャンネルを追加してください。
事前に定義された設定を使用して、すべてのタイプのライト放出の追加画像平面を追加します。より詳細な制御をするには、汎用画像平面インターフェースを使用して画像チャンネルを追加してください。
事前に定義された設定を使用して、直接照明で影のない照明の追加画像平面を追加します。より詳細な制御をするには、汎用画像平面インターフェースを使用して画像チャンネルを追加してください。
事前に定義された設定を使用して、直接シェーディングサンプルの数の追加画像平面を追加します。より詳細な制御をするには、汎用画像平面インターフェースを使用して画像チャンネルを追加してください。
事前に定義された設定を使用して、間接シェーディングサンプルの数の追加画像平面を追加します。より詳細な制御をするには、汎用画像平面インターフェースを使用して画像チャンネルを追加してください。
事前に定義された設定を使用して、単一と複数のサブサーフェススキャタリングの追加画像平面を追加します。より詳細な制御をするには、汎用画像平面インターフェースを使用して画像チャンネルを追加してください。
Baking Properties ¶
Add Baking Exports to Shader Layers
ベイク関連のシェーダエクスポートをレイヤーコンポジットノードによって混在させて最終出力できるように、それらのシェーダエクスポートをレイヤー構造に追加します。
レイトレースシェーディング(例えば、Occlusion, Cavity, Thickness)に使用するサンプル数。サンプル数を上げると、シェーディング内のノイズが減ります。
接空間法線(Nt
)のベイクにMikkelsen氏の接空間(Tangent Space)を使用します。この基底はフラグメント毎に計算されます(Unreal Engineと互換性があります)。
他のアプリケーションでは四角形の接線を違った方法で補間することがあるので、ベイクする前にDivide SOPを使ってUV Objectを三角メッシュに変換してください。
法線のX軸の反転を切り換えます。色々なパッケージでは、異なる空間での法線マップを必要とすることがあります。反転パラメータは、それらの色々な空間に合致させることができます。
法線のY軸の反転を切り換えます。色々なパッケージでは、異なる空間での法線マップを必要とすることがあります。反転パラメータは、それらの色々な空間に合致させることができます。
これはキャビティオクルージョンシェーディングに対するコントラスト制御として動作し、値を0.5
より高くするとコントラストが強くなり、それより低くするとコントラストが弱くなります。
これは、精度が悪いけど高速な曲率測定をするための近似計算です。無効な時(デフォルト)、レンダラーは局所的にトポロジーを使って曲率を測定します。 有効な時、オクルージョン光線を投影することで曲率を測定します。オクルージョン光線の数は Baking Samples パラメータで制御します。
ベイクするUDIMタイルの指定に使用します。例: “1001-1004,1011”(引用符なし)。空っぽのままにすると、MantraはUVオブジェクトが占領しているUDIMタイルすべてをベイクします。
これらのコントロールはVEX変数を補助画像平面、出力ファイルの特別平面、特別ファイルのどれかとして出力することができます。
Tip
Houdini 9.1の時点では、各チャンネルを別のファイルへ書き出すことができます。これは1つの.exr
画像内に複数のチャンネルをサポートしないOpenEXRプログラムで作業することができます。
1つのチャンネルをmd
デバイス(インタラクティブではないMPlayウィンドウ)に送信したり、画像を複数の.pic
ファイルに分割するような面白いことが可能です。しかし、プライマリー画像がip
なら、すべての平面がip
に行きます。
Channel Nameパラメータは出力ファイルのチャンネルにデフォルト(VEX変数の名前)以外の別の名前を設定することができます。例えば、Of変数を送信したいとします。Channel Nameが空白のままなら、.pic
ファイルの平面の名前がOf
になります。Channel NameをOpacity
に設定すると、.pic
ファイルの平面の名前がOpacity
になります。