3ds Max 2011 で導入された mental ray_string_オプション では、Interface: mental_ray_string_options を使用して、レンダリング オプションを切り替えたり、UI で使用できないパラメータを設定できます。
これまで、mental ray オプションは mental ray のレンダラー ユーザ インタフェースのコントロールにより生成され、レンダラーに送信され、レンダリング処理がコントロールされてきました。
最新バージョンの mental ray レンダラーでサポートされる一部の機能は、さまざまな理由によって 3ds Max ユーザ インタフェースに公開されない場合があります。
文字列オプションにより、MAXScript からこれらの機能にアクセスして、それらを試した後で正式にサポートする方法が提供されます。
指定された名前の 1 つのオプションのみを対象とすることができます。このとき、最後に指定したオプションで、前回の定義内容のオーバーライドが発生します。
整数値が浮動小数点値の代わりに指定されたり、一部のオプションに Point3 値または Point4 値が含まれ 3 または 4 の浮動小数点値が指定されることがあります。
これらの例外のほか、誤った型の値は無視されます。たとえば、浮動小数点値 1.0 を文字列 "1.0" として指定しても、何も効果はありません。
また、スペルに誤りのある、もしくは不明のオプションは、mental ray によって暗黙的に無視されます。(それらはサードパーティ シェーダに関連するオプションである場合があります。)
mental ray でサポートされるが 3ds Max の mental ray のユーザ インタフェースにエクスポーズされない文字列オプションについて、以下に説明します。
既定では、mental ray によってイメージに対する計算が実行されます。これによって、イメージが長方形のバケットに分割され、最終形に対してできるだけ平行となるようにレンダリングされます。これは最高品質でより大きなシーンの分散レンダリングを行う場合に大変適しています。これには、すべてのバケットが完了した後でないと最終的なイメージを確認できないという欠点があります。
一方、ダリング モードでは、増分で品質を向上させながらフプログレッシブ レンル解像度でイメージが計算および送信されます。mental ray へのインタラクティブ レンダリング アプリケーションの実装をサポートしており、レイ トレースや間接光のような計算量の多い効果を出すことができます。最良のパフォーマンスは、マシンのメモリに完全に収まる中サイズ モデルの場合に達成できます。
特定の高度なレンダリング機能については、速度を増加させるためにサポートされていません。
最初のイメージの粗いサンプリングを有効にするかコントロールします。
設定されない場合、既定値が 0 になっており、サブサンプルが無効になっています。
1 より大きい値を設定すると、ピクセルのブロック単位でサブサンプルが有効化されます。
ここで設定する値によって、ピクセル ブロックのサイズ(サイズ X サイズ)が指定されます。このピクセル ブロックにおいて、初期サンプルが最初に配置され、通常は低解像度の粗いイメージとして表示されます。
2 を設定すると、2x2 = 4 ピクセルのブロックのサンプルが計算されます。
タスク サイズは複数のサブサンプル サイズを含むものにする必要があります。このように設定しなかった場合、可能な限り最も近い値に自動的に調整されます。
ブロック内のまだレンダリングされていないピクセルは、サブサンプル モードの設定に従ってカラー値で塗り潰されます。以下を参照してください。
またレンダリングされていないサブサンプル ピクセルの外観をコントロールします。
"detail"(既定値)- まだレンダリングされていないピクセルは、最も近い周囲の完了したサンプルから補間されます。これは低解像度のスムースなイメージとして表示されます。
"sparse" - まだレンダリングされていないピクセルは黒に設定されます。
"scatter"(既定値)- ピクセルは擬似ランダムな順序でレンダリングされます。
"linear" - ピクセルはピクセル ブロック内で 1 行ごとの順序で計算されます。
レンダリングするピクセルあたりの最小サンプル数を設定してから、次に示すその他の基準について検討します。
プログレッシブ レンダリングを停止するピクセルあたりのサンプル数を設定します。
ここで設定するピクセルあたりのサンプル数がレンダリングされると、プログレッシブ レンダリングがその他の停止基準に関係なく自動的に停止します。
プログレッシブ レンダリングを停止する時間を秒で設定します。
プログレッシブ レンダリングを停止するエラー スレッショルドを設定します。
ここで設定した相対的なエラー スレッショルドに達すると、プログレッシブ レンダリングが自動的に停止します。
値 0.0 は完全な品質を目標としており、この値を設定するとレンダリングは停止しません。
値 0.5 はすでに非常に低い品質にあるレンダリングを停止します。
この設定は、プログレッシブ レンダリングを停止するかどうかの判断基準として優先度が最も低くなります。
インポートンは「仮想パーティクル」です。これらはいくつかの点、たとえばシーン内でバウンドするといった点で、フォトンと類似しています。その一方、大きな違いもあります。たとえば、インポートンはフォトンと異なりエネルギーを分散しません。代わりに、インポートンには特定の位置にある発光が最終的なイメージに関与する係数に影響するカラーが含まれます。このようにして、インポートンは限られた計算リソースで最良のイメージを得るために計算労力をどのように分散するべきかについて、レンダラーに情報を与えます。
フォトンと異なり、インポートンはカメラから放出され、発光体の方に向かって(つまりフォトンと逆方向に)バウンドします。ただし、二重発光によって、フォトン シェーダをインポートンに適用することが可能です。簡素化の都合上、mental ray では新しいタイプのシェーダは導入されていませんが、インポートン用のフォトン シェーダは使用されます。
インポートンはレンダリングの品質とパフォーマンスを向上させる補助的なメカニズムとして使用されます。インポートンはイラディアンス パーティクルの質を後押しする主要なメカニズムとして使用されます。 mental ray は GI フォトン マップの質を向上させる際にも使用されます。mental ray によって、(インポートンの使用により決定される)特定の変数マージ距離におけるマージによるフォトン マップ サイズの大幅な縮小が実現します。このような変数マージ距離は、定数マージ距離より優れています。
インポートンは、有効にした場合、フォトン マップの作成前に放出されます。インポートンは GI フォトン マップの作成時に使用されます。インポートンは GI フォトン マップの最も近い周辺検索に関連しないため、フォトン マップが作成されると破棄されます。
true に設定されると、インポートンが放出され、インポートン マップが作成されます。
カメラから放出される、ピクセルあたりのインポートンの概数を指定します。
現在の実装におけるこのオプションの最小値は 0.02、つまり 50 ピクセルあたりおよそ 1 インポートンとなります。
値が低いほどインポートンの放出速度が高くなりますが、最適なフォトン マップは生成されにくくなり、最終イメージの品質も低下します。
近いインポートンをマージするために使用されるワールド スペース距離を指定します。
0.0(既定値)に設定すると、インポートンは拡散反射光で散乱しません。
場合によっては、1 つ以上の拡散反射光を使用する必要が生じることがあります。ファイナル ギャザーとの組み合わせが使用されている場合や、"importon traverse" オプションがオフに切り替わっている場合がこれに該当します(以下を参照)。
カメラから放出されるインポートンの特殊な動作が有効化されます。これらのインポートンは、完全に不透明なジオメトリによってもブロックされません。代わりに、レイ上にあるジオメトリとのすべての交点が、カメラから無限に保存されます。
これによって、非常に多数のインポートンがシーンに保存されます。ただし、カメラ関数の可視性によるインポートンの分散における不連続性は取り除かれます。
このアルゴリズムは、重要性サンプリングに基づきグローバル発光を計算する斬新な方法です。重要性サンプリングは、ファイナル ギャザーと組み合わされるグローバル イルミネーション フォトン トレーシングのような既存のソリューションよりもはるかに速く望ましい品質まで集約される傾向があります。
レンダリング開始前に、インポートンはカメラからシーン内に放出され、イラディアンス パーティクルと呼ばれる新しい種類のパーティクルとして収集されます。これらは、それぞれの位置に入ってくる直接光の量(「放射照度」)に関する情報、またオプションで(間接パスが有効になっている場合は)それぞれの位置における間接照射量に関する情報を伴います。レンダリング時、保存されたパーティクルは、シェーディング ポイントにおけるイラディアンスを予測する目的で使用されます。イラディアンス パーティクルに関して直接光のみが収集される場合、これは間接光の 1 バウンドに相当します。
イラディアンスは、パーティクルの各位置における計算済みの値から補間することもできます。
イラディアンス パーティクル アルゴリズムによって、mental ray における従来のグローバル発光アルゴリズムの間接光インタラクションの一部がシミュレートされます。このため、イラディアンス パーティクルが有効化されると、mental ray ではグローバル発光フォトン トレーシングが(オンの場合は)自動的にオフとなります。これは、外部アプリケーションが、インポートンに必要なフォトン シェーダがアタッチされた mental ray シーンを生成するよう要求された場合に共通の状況です。コースティックスをイラディアンス パーティクルとともに使用できます。コースティックスはイラディアンス パーティクルでシミュレートできない間接光効果を捕捉する際に使用されます。ファイナル ギャザーとイラディアンス パーティクルの両方が有効化されている場合、ファイナル ギャザーが優先され、イラディアンス パーティクルは自動的にオフに切り替わります。したがって、イラディアンス パーティクルを有効にするために文字列オプションを使用するとき、FG をオフにすることは重要です。.
イラディアンス パーティクルでは特殊なイメージ ベースの発光スタイル機能がサポートされます。この機能は間接パスの数を -1 に設定することによって有効化できます。この場合、拡散反射光ではなく、環境マップ発光のみが考慮されます。補間が無効となっている場合は、環境プレサンプリング マップのみが作成されるため、計算前の手順は必要となりません。補間が有効となっている場合は、パーティクルが計算前パスに通常の方法で放出されますが、補間ポイントとしてのみ使用されます。
有効となっている場合、イラディアンス パーティクルは、グローバル発光フォトンがオンになっている場合はそれらを無効化しながら間接光をシミュレートするために使用されます。
ファイナル ギャザーが有効になっている場合、この設定は無視されます。
イラディアンスを予測する際に放射するレイの数をコントロールします。
この値が 0 より大きい場合、一連のパスが実行され、すべてのパーティクル位置で入ってくるイラディアンスが収集されます。このため、イラディアンス パーティクルには直接光と間接光の両方の情報が含まれます。
この値が 0(既定値)の場合、イラディアンス パーティクルには間接光の情報のみが含まれます。
値が -1 の場合、拡散反射光ではなく、環境マップ発光のみが考慮されます。補間が無効となっている場合は、環境プレサンプリング マップのみが作成されるため、計算前の手順は必要となりません。補間が有効となっている場合は、パーティクルが計算前パスに通常の方法で放出されますが、補間ポイントとしてのみ使用されます。
レンダリング時のイラディアンスの強度に関するグローバル スケール係数です。
美的観点からの制御をおこなうためのグローバル調整オプションです。
R、G、B を一度に設定するための 1 つの浮動小数点値として、または 3 つのカラー チャネルを別々にコントロールするための Point3 値として指定できます。
mental_ray_string_options.AddOption "irradiance particles interpolate" {<Integer>index|<String>modeName}
このオプションは、補間の使用をコントロールするために使用されます。数値または文字列で指定されます。
2 - 2 番目のレイに対してのみ補間(目のレイは補間しない。反射、屈折などは補間する)
または、"never"、"always"、"secondary" といった文字列に設定します。
このフラグによって、イラディアンス計算用の環境マップの使用が有効化されます。
有効となっている場合、別個のパーティクル マップが(環境シェーダがある場合に)環境用に作成され、レンダリング時に使用されます。
mental_ray_string_options.AddOption "irradiance particles env scale" {<Float>Scale|<Point3>RGBScale}
単一の浮動小数点値または Point3 値として指定できます。
このスケール係数は、環境イラディアンスにのみ適用されるため、相対的となります。環境イラディアンスは、ユーザが「イラディアンス パーティクル スケール」の文字列オプションを使用してグローバル スケール係数を指定した場合、実際にはさらにスケールされることがあります。
たとえば、環境スケールが 2.0 に設定されていて、グローバル スケールが 3.0 の場合、環境イラディアンスの実際のスケール係数は 6.0(2.0 x 3.0)になります。
環境マップから入ってくるイラディアンスの計算に使用されるレイの数。
この数は、特に環境のほとんどがシーン ジオメトリでカバーされる場合(典型例:1 つまたは 2 つの窓のある部屋)に、通常のイラディアンス計算に使用されるレイの数よりもはるかに多くなります。
外側シーンの場合は、より少ない数のレイで問題なく動作します。
既定値が取得され、「イラディアンス パーティクル レイ」の実際の値となります。
ファイルが存在する場合、mental ray によってそこからパーティクル マップの読み込みが試行されます。
存在しない場合は、計算済みのパーティクル マップが、指定された名前でファイルに保存されます。
true に設定すると、mental ray ではパーティクル マップが再計算されます。
false に設定すると、既存のマップが、指定のある場合には既存ファイルから読み込まれることにより、あるいはアニメーションの前のフレームから取得されることにより再利用されます。
これは、フライスルーの場合など、アニメーションのちらつきを回避するのに便利です。
オブジェクトが移動している場合、グローバル発光は不正確となることがあります。
パーティクル マップは基本的にビュー従属であるため、カメラが動くと不正確さが目立ちます。
"automatic"(既定)- 主に単一の静止イメージのレンダリングを対象とします。finalgather points 引数が使用されます。この引数は、補間で使用されるファイナル ギャザー ポイントのそれぞれの概算の最小数に対応します。すべての FG ポイントが FG 計算済みステージで生成されます。
"multiframe" - カメラ フライスルー アニメーションのレンダリングを対象とします。 finalgather points 引数が使用されます。この引数は、補間で使用されるファイナル ギャザー ポイントのそれぞれの概算の最小数に対応します。すべての FG ポイントが FG 計算済みステージで生成されます。finalgather accuracy R_1 が、ファイナル ギャザー ポイントの最高有効性距離を制限するために使用され、ファイナル ギャザー ポイントの密度が不十分な場合にリモート オブジェクトからの発光が取得されることを回避します。
"force" - ファイナル ギャザー キャッシングを完全に無効にして、常にフルおよび正確な計算を実行します。 これには時間が掛かりますが、品質は向上します。
"strict 3.4" - 互換モード - mental ray 3.4 と同一または非常に類似するレンダリング イメージにフォーカスを設定します。
"3.4" - 互換モード - 同じ引数セットの使用にフォーカスを設定しますが、レンダリングが向上します