mental ray mia_material は、建築およびプロダクト デザインのレンダリングで使用されるほとんどのマテリアルに対応できるように設計された、総合的なマテリアル シェーダです。メタル、木目、ガラスなど、ほとんどのハード サーフェス マテリアルをサポートします。特に、高速で光沢のある反射と屈折(DGS マテリアルに取って代わる)および高精度なガラス(誘電体マテリアルに取って代わる)向けに調整されています。
主な特徴:
マテリアルには、mental ray 3.5 と互換性のある mia_material と新しく拡張された mia_material_x の 2 種類があります。ただし、単にインタフェースが 2 種類存在するだけで、基本コードは同じなので、mia_material_x の以下の点を除き、機能は同じです。
このドキュメントは、マテリアルの主な特徴を説明する基礎(基礎)、すべてのパラメータを詳細に説明するパラメータ(パラメータ)、ユーザに対するアドバイスを紹介するヒントとテクニック(ヒントとテクニック)のセクションで構成されています。
mia_material は、物理的に正確に表現することを第一の目標とし、ハイ ダイナミック レンジで出力します。マテリアルの外観を魅力的に見せることができるかどうかは、レンダラ内のカラーを画面上に表示されるカラーにマッピングするかにかかっています。
mia_material を使用する場合は、トーン マッパ/露光コントロールか、少なくともガンマ補正を使用することを強くお勧めします。
このドキュメントではガンマ補正の詳細な説明は省略し、概要を簡単に説明します。
通常の市販のコンピュータ画面のカラー空間は、直線的(リニア)ではありません。RGB 値 200 200 200 のカラーは、(おそらく皆さんの予想に反して)RGB 値 100 100 100 のカラーの 2 倍の明るさではないのです。
これは、"バグ" ではありません。人間の目は光を非直線的(ノン リニア)に知覚するという事実によって、前者のカラーは後者のカラーの 2 倍の明るさとして実際に知覚されます。そのため、通常のコンピュータ画面のカラー空間は、どれも知覚的にはほぼ同じということになります。これは利点であり、24 ビット カラー(赤、緑、青の要素をそれぞれ 8 ビット、256 階調で表現)が、人間の視覚が識別する色に十分対応できる主な理由でもあります。
問題は、物理的に正確なコンピュータ グラフィックスが、値が実際の光エネルギーを表すトゥルー リニア カラー空間で表示されることです。単純にレンダラに対するカラー出力の範囲を、各 RGB カラー要素の 0 ~ 255 の範囲にマッピングするのは間違いです。
解決策は、何らかのマッピング方法を取り入れることです。そのマッピング方法の 1 つが、ガンマ補正です。
ほとんどのコンピュータ画面のガンマ値は 2.2 2ですが、ほとんどのソフトウェアのデフォルトのガンマ値は 1.0 であるため、すべてが(特に中間トーン)暗く映り、光が正確に "処理" されません。
論理的に "正しい" 値であるガンマ値 2.2 を使用すると、レンダラ内の物理的に直線的な光が画面上に正確に直線的に表示されます。
ただし、写真用フィルムは直線的(リニア)ではないため、この "論理的に正しい" 値を使用すると、"人間の目には明る" すぎて、色があせているように感じます。一般的な打開策は、ガンマ値 1.8 を使用してレンダリングし、より "写実的" に、写真用フィルムで撮影して現像した写真のように表示することです。
他にも、レンダラ内の物理的なエネルギーを視覚的に見やすいピクセル値にマッピングする、トーン マッピングと呼ばれる方法があります。マッピングは、浮動小数点ファイル形式にレンダリングして外部ソフトウェアを使用するか、レンダラのプラグインを使用してその他の編集と同時に行います。
シンプルな mia_exposure_simple と比較的高度な mia_exposure_photographic の 2 つのトーン マッピング シェーダがライブラリに含まれています。両シェーダについては、トーン マッパで説明します。
注: トーン マッピングとガンマ補正を併用する場合は、特に注意が必要です。トーン マッピング シェーダには、独自のガンマ補正機能が組み込まれていることがあるため、不注意にガンマ補正を 2 度適用した結果、色あせが発生する可能性があります。ガンマ補正が 1 度だけ適用されるように、ガンマのワークフローに注意を払う必要があります。
マテリアルは、十分な直接イルミネーションと間接イルミネーションを使用した、リアルなライティング環境で使用するように設計されています。
mental ray では、ファイナル ギャザリングとグローバル イルミネーションという 2 つの基本的な方法で間接光を生成できます。最良の結果を得るには、少なくともいずれかの方法を使用する必要があります。
良質の結果を得るには、少なくともファイナル ギャザリングを使用するか、ファイナル ギャザリングとグローバル イルミネーション(フォトン)の組み合わせを使用する必要があります。ファイナル ギャザリングとグローバル イルミネーションを使用する際のヒントについては、このドキュメントのファイナル ギャザリングのパフォーマンスを参照してください。
反射を表現するために環境を使用する場合に、ファイナル ギャザリングでシーンを照らすには、同じ環境(またはブラーを適用したコピー)を使用する必要があります。
従来のコンピュータ グラフィックスの光源は、光の強度が距離に応じて変化することのない、まるで漫画の世界のような光です。しかし、現実世界はそれほど単純ではありません。光線は光源から分散し、光線の "密度" は距離に応じて変化するとうい事実によって、光は光源から離れるにつれて減衰します。点光源の減衰が、たとえば 1/d² の場合、光の強度は、光源からの距離の 2 乗に反比例します。
従来のコンピュータ グラフィックスにおける極端な単純化の原因は、コンピュータ グラフィックスが誕生した初期の頃にはまだトーン マッピングが使用されていなかったことにあります。当時は3色が最も望ましくない方法で "白とび" する問題が蔓延していました。
ただし、間接イルミネーションを生成する方法としてファイナル ギャザリング(FG)のみを使用している限り、このような従来の単純化は問題になりません。減衰しない光源を使用しても、妥当なレンダリング結果が得られます。これは、FG ではサーフェスを出発点とする光の軌跡のみを計算し、光源からサーフェスへの光の軌跡を計算しないためです。
グローバル イルミネーション(GI)(たとえば、フォトン)を使用する場合は、問題が発生します。
GI を有効にすると、光源はフォトンを放出します。mia_material(またはその他の mental ray マテリアル)が正常に機能するためには、フォトンのエネルギーが同じ光源から投射される直接光に一致することが欠かせない条件です。フォトンは物理的な方法で光をモデリングするため、減衰が "組み込まれ" ます。
GI を使用する場合:
このため、ライトのライト シェーダとフォトン放出シェーダの両方が正常に連携していることを確認することが重要です。
用途の観点から見ると、シェーディング モデルは以下の 3 つのコンポーネントで構成されています。
mia_material シェーディング モデル
シーンの直接光と間接光の両方によって、拡散反射と半透明性エフェクトが生成されます。また、間接光源によって、従来の "ハイライト"(スぺキュラ ハイライト)が生成されます。
レイ トレーシングは反射エフェクトと屈折エフェクトの作成に使用され、光沢のある反射と屈折の作成には高度な重要度主導型マルチサンプリングが使用されます。
光沢のある反射/屈折のレンダリング速度は、ファイナル ギャザリングによって "エミュレートされた" 反射と補間によってさらに向上します。
マテリアルの最も重要な特徴の 1 つは、自動的にエネルギーを保存することです。これは、
拡散 + 反射 + 屈折 <= 1 という式で表現されます。エネルギー源がないところから自発的にエネルギーが生まれることはありません。入射光のエネルギーは、熱力学の第 1 法則4に則した方法で、拡散、反射、屈折コンポーネントに適切に分配されます。
実際には、たとえば反射を増加させるには、他のコンポーネントからエネルギーを取得する必要があるため、それに伴って拡散レベルと透明度が自動的に減少します。同様に、透明度を追加すると、拡散レベルが減少します。
以下の規則が当てはまります。
reflectivity(反射率)0.0、0.4、0.8、1.0(左から右)
transparency(透明度)0.0、0.4、0.8、1.0(左から右)
また、ハイライトのレベルはサーフェスの光沢に関係があることを意味しています。refl_gloss(反射の光沢)の値が高い場合は、幅が狭くて、非常に強度の高いハイライトが発生し、値が低い場合は幅が広くて、強度の低いハイライトが発生します。これは、広い立体角でエネルギーが拡散、消散されるためです。
木目の床の反射は、視点の角度に依存します。
これと同じ性質のマテリアルは多数あります。フレネル エフェクトが適用されたガラス、水、およびその他の誘電体マテリアル(角度に対する依存は、屈折率によって厳密に導き出されます)は最も顕著な例ですが、他にもラッカー塗装の木材やプラスティックなど、レイヤー化されたマテリアルも同様の性質を持ちます。
mia_material を使用すると、このエフェクトを屈折率によって定義し、以下の 2 つの反射値を明示的に設定できます。
詳細については、BRFD のセクションを参照してください。
最終的なサーフェスの反射は、実際には以下の 3 つのコンポーネントの合計によって生成されます。
拡散、反射、ハイライト
現実の世界では、"ハイライト" は単なる光源の(光沢のある)反射です。コンピュータ グラフィックスの世界では、ハイライトと反射を個別に扱うとより効率的です。しかし、物理的な正確さを維持するために、マテリアルは "ハイライト" の強度、光沢、異方性などを、反射の強度、光沢、異方性に自動的に同調させます。つまり、両方とも反射の設定によって決定されるため、個別のコントロールはありません。
マテリアルは、完全な光沢のある異方性透明度と半透明度のコンポーネントをサポートします。半透明度の詳細については、半透明度を参照してください。
半透明度
透明度/半透明度は、オブジェクトを立体または薄壁として扱うことができます。
すべてのオブジェクトを常に立体として扱う場合、建築モデルのすべての窓ガラスを 2 つの面でモデリングする必要があります。2 つの面とは、入射面(光が一方向にわずかに屈折する)とその直後の射出面(そこに当たった時点で光が屈折して元の方向に戻る)です。
追加のモデリング作業が必要になるだけでなく、イメージに対して実質的な効果をほとんどもたらさない屈折をモデリングするためにレンダリング パワーを浪費することになります。一方、マテリアルを使用すると、窓ガラス全体を 1 つの平面としてモデリングできるため、実際の光の "屈折" をモデリングせずに済みます。
立体と薄壁の透明度と半透明度
上のイメージでは、ヘリコプターの円蓋 、窓ガラス、半透明のカーテン、右側の球体にはすべて "薄壁" の透明度または半透明度を使用し、ガラス製のゴブレット、プラスティック製の馬、左側の球体にはすべて "立体" の透明度または半透明度を使用しています。
"物理的" な透明度(マテリアルの実際のプロパティをモデリングする)を超越した、完全に独立した非物理的な "Cutout Opacity(不透明度の切り取り)" チャンネルを使用して、木製の "看板" オブジェクトを作成したり、不透明度マスクを使用して、金網のフェンスのように物体を切り抜くことができます。
アンビエント オクルージョン(以下 "AO")は、グローバル イルミネーションの "外観" を忠実にエミュレートする方法で、主に映画業界で使用されています。この方法では、ある領域が入射光から遮蔽(遮断)されている程度を計算するシェーダを使用します。
AO シェーダ5を単独で使用すると、光が届かない領域は "暗く"、光が届く領域は "明るい"、グレースケール出力が作成されます。
AO が適用されたシーンの例
上のイメージに見られるように、AO を適用した場合の主な結果として、隙間や他のサーフェスによって光が遮断された領域は暗くなり、環境にさらされている領域は明るくなります。
AO の重要な点の 1 つは、AO で遮蔽ジオメトリを検出する "距離" を調整できることです。
短半径内を検索する AO
半径を使用すると、"ローカル化" された AO エフェクトのみが作成されます。つまり、指定された半径内のサーフェスのみが遮蔽ジオメトリとして見なされます(レンダリング速度も大幅に高速になります)。実際には、AO によって優れた "コンタクト シャドウ" エフェクトが生成され、小さな隙間までもが表現されます。
mia_material に組み込まれた AO を活用する方法は 2 つあります。
後者の方法では、特に非常に "滑らかな" 間接イルミネーション(すなわち、フォトンの半径が広い、または非常に低いファイナル ギャザリング密度)を使用すると、興味深い結果が得られます(細かいディテールが失われる可能性があります)。短い光線を指定して AO を適用すると、失われたディテールは元に戻ります。
mia_material には、最高のパフォーマンスを提供する以下の機能をはじめとした大規模な機能セットが組み込まれています。
このセクションでは、mia_material に既に精通したユーザを対象に、メモリ リフレッシュ ツールとして使用するのに適したパラメータの概要について簡単に説明します。さらに詳細な情報については、パラメータの詳細を参照してください。[+]の付いたパラメータは、mia_material_x にのみ存在します。
diffuse_weight(ウェイト)は、拡散反射を任意のレベルに設定(およびカラーを拡散)します。マテリアルはエネルギー保存の法則に従うため、使用される実際の拡散レベルは、上記で説明したとおり、反射と透明度に依存します。
拡散コンポーネントは、Oren-Nayar シェーディング モデルを使用します。diffuse_roughness(粗さ)が 0.0 の場合、これは従来の均等拡散シェーディングと同じですが、値が高いほど、サーフェスがより "粉っぽく" なります。
Diffuse Roughness(粗さ)0.0(左)、0.5(中央)、1.0(右)
reflectivity(反射率)と refl_color(反射のカラー)は、反射レベルと従来の "ハイライト"("スペキュラ ハイライト" とも呼ばれる)の強度を定義します。
この値は、最大値です。実際の値も、サーフェスの角度と BRDF カーブに依存します。このカーブ(詳細については BRDF を参照)を使用すると、brdf_0_degree_refl(見る人の正面に位置するサーフェス用)とbrdf_90_degree_refl(見る人に対して直角に位置するサーフェス)を定義できます。
反射なし(左)、角度に依存(中央)、一定(右)
反射率が高い場合、白の拡散カラーが自動的に抑制される点に注意してください。自動的に抑制されない場合、マテリアルは非現実的なほど過剰に明るくなり、物理の法則 6に反します。
refl_gloss(反射の光沢)パラメータは、サーフェスの "光沢" を、1.0(完全鏡面)から 0.0(拡散反射サーフェス)の範囲で定義します。
refl_gloss(反射の光沢)1.0(左)、0.5(中央)、0.25(右)
refl_samples(光沢のあるサンプル)パラメータは、光沢のある反射を作成するために投射されるサンプル(レイ)の最大7数を定義します。値が高いほど、レンダリング速度は遅くなりますが、より滑らかな結果になります。値が低いほど、レンダリング速度は速くなりますが、より粗い結果になります。一般に 32 に設定すると、ほとんどのケースに十分対応できます。
特殊なケースが 2 つあります。
メタリック オブジェクトは、他のマテリアルとは異なり、実際に反射のカラーに影響を与えます。たとえば、金の延べ棒は、金色に反射しますが、赤のガラス球の反射は赤色ではありません。これは、refl_is_metal(メタル マテリアル)オプションによってサポートされています。
メタル反射なし(左)、メタル反射(中央)、メタルと拡散が混合(右)
左のイメージでは、メタリック反射は表示されていません(refl_is_metal はオフ)。反射には、マテリアルが反射するオブジェクトのカラーが含まれていることが明確に確認できます。マテリアルのカラーによる影響は受けていません。
中央のイメージでは、メタリック反射が使用されています(refl_is_metal はオン)。反射のカラーには、マテリアルのカラーが影響しています。右のイメージでは、reflectivity が 0.5 に設定されており、50 対 50 の割合でカラー反射と拡散反射が混合されています。
光沢のある反射では、複数の例をトレースして滑らかな結果を作成する必要があるため、パフォーマンスの問題が発生する可能性があります。そのため、パフォーマンスを向上させるために設計された特殊機能がいくつかあります。
最初の機能は、補間です。refl_interpolate(反射の補間)をオンにすると、スムージング アルゴリズムによってレイが再利用され、滑らかになります8。結果的に、より高速により滑らかな光沢のある反射をレンダリングできますが、その分精度は低下します。補間の詳細については、補間を参照してください。
反射率の高いサーフェスの場合、実際の反射レイが必要なのは明らかです。ただし、反射率の低いサーフェスの場合(サーフェスが実際に何を反射しているか "明らか" でない場合)、refl_hl_only(ハイライトのみ)スイッチを使用してパフォーマンスを向上させることができます。
refl_hl_only が オンの場合、実際の反射レイはトレースされません。代わりに、"ハイライト" と、ファイナル ギャザリング9を使用してエミュレートされたソフトな反射のみが表示されます。
refl_hl_only モードでは、非光沢(拡散)サーフェスと比較して、追加のレンダリング時間は不要ですが、驚くほどリアルな結果が得られます。シーン内の "ヒーロー" オブジェクト(主要オブジェクト)には完璧に対応できない可能性がありますが、重要度がそれほど高くないシーン要素には十分対応できます。弱い反射または非常に光沢のある(ブラーが適用された)反射のあるマテリアルに最も適している傾向があります。
左の 2 つのカップでは、実際の反射を使用しています。右のカップでは refl_hl_only(ハイライトのみ)を使用しています。
左の 2 つのカップは右のカップと比べて断然自然に見えます。ただし、このモードで非常に興味深いことは、右の 2 つのカップは、完全に反射していないサーフェスと比べて追加のレンダリング時間がかからないことです。エミュレートされた反射では、指向性のカラー ブリード(カップが実際に木の床を反射しているかのように、カップの下側が木の床のカラーの影響を受ける現象)が表現されています。
transparency(透明度)パラメータは屈折のレベルを定義し、refr_color(屈折のカラー)はカラーを定義します。このカラーを使用して "色ガラス" を作成することもできますが、色ガラスのセクションで説明する方法を使用すると、若干精度を高めることができます。
マテリアルのエネルギー保存の特性により(エネルギー保存を参照)、transparency パラメータに設定する値は、最大値です。実際の値は、反射と BRDF カーブに依存します。
refr_ior(屈折のインデックス)は、光線がマテリアルに入射するときに "曲がる" 割合を示す屈折率を定義します。光が曲がる方向は、オブジェクトに入射する場合とオブジェクトから射出する場合では異なります。mia_material は、入射または射出のどちらであるかを判断する主要材料として、サーフェス法線の方向を使用します。そのため、適切な方向を向いているサーフェス法線を使用して透明な屈折オブジェクトをモデリングすることが重要です。
IOR は、"誘電性" マテリアルと呼ばれる透明なマテリアルで発生する、BRDF カーブを定義するために使用することもできます。
refr_ior(屈折のインデックス)1.0(左)、1.2(中央)、1.5(右)
左のカップは、完全に非現実的で、ほとんど確認できません。IOR を 1.0(空気と同じ)に設定するのは非現実的であり、マテリアル全体の反射に変化がないため、"エッジ" の存在やその他の変化を認識できません。中央と右のカップには、IOR によって導き出されたリアルな反射の変化が見られます。
ただし、必ずしも IOR に基づいて反射を設定する必要はありません。代わりに BRDF モードを使用して手動で設定することもできます。
透明度のタイプによる違い
左のカップでは、屈折率に基づいてカーブが取得されています。中央のカップではカーブが手動で定義されています。brdf_90_degree_refl は 1.0、brdf_0_degree_refl は 0.2 に設定され、若干金属を含むガラスのように見えます。右のカップでは同じ BRDF カーブを使用していますが、"薄壁" の透明度(薄壁を参照)に設定されています。明らかに、この方法は、単に refr_ior を 1.0 に設定する方法に比べて、"非屈折" オブジェクトを作成するのに適しています。
反射と同様に、refr_gloss(屈折の光沢)パラメータで、屈折/透明度の程度を 1.0(完全にクリアな透明度)から 0.0(極端な拡散透明度)の範囲で定義します。
refr_gloss(屈折の光沢)1.0(左)、0.5(中央)、0.25(右)
光沢のある反射と同様に、光沢のある透明度に refr_interpolate(屈折の補間)スイッチを設定し、より高速で、滑らかな光沢のある透明度を作成できます。ただし、精度は低下します。補間の詳細は、補間を参照してください。
半透明度は、透明度の特殊なケースとして扱われます。つまり、半透明度を使用するには、ある程度の透明度が必要で、refr_trans_w(ウェイト)パラメータで透明度として使用する割合と半透明度として使用する割合を定義します。
transparency(透明度)0.75、refr_trans_w(ウェイト)0.0(左)、0.5 (中央)、1.0(右)
半透明度は、主に "薄壁" モードで、カーテン、ライス ペーパーなどのエフェクトのモデリングに使用されます(上記の例を参照)。"薄壁" モードでは、単にオブジェクトの裏面のシェーディングが "染み出す" ように設定できます。
シェーダは "ソリッド" モードでも使用できますが、mia_material への半透明度の実装は、単にオブジェクトの背面から正面への光の伝搬に関する単純化であり、"本当の意味での" SSS(サブサーフェス スキャタリング)ではありません。"SSS に類似した" エフェクトは、光沢のある透明度と半透明度を併用して作成できますが、専用の SSS シェーダほど高速でも強力でもありません。
refr_trans_w 0.0(左)、0.5(中央)、1.0(右)が設定されたソリッドの半透明度
異方性反射および屈折は、anisotropy(異方性)パラメータを使用して作成できます。パラメータは、ハイライトの "幅" と "高さ" の比率を設定します。anisotropy を 1.0 に設定すると、異方性は設定されず、効果は無効になります。
anisotropy をその他の値(1.0 以上または以下の両方の値が有効)に設定すると、ハイライトの "シェイプ"(および反射の外観)が変化します。
anisotropy(異方性)1.0(左)、4.0(中央)、8.0(右)
異方性は anisotropy_rotation(回転)パラメータを使用して回転できます。値 0.0 は回転なし、値 1.0 は 1 回転(360 度)です。これは、テクスチャ マップを使用して角度を操作するのに便利です。
anisotropy_rotation 0.0(左)、0.25(中央)、テクスチャを適用(右)
注: テクスチャを適用した anisotropy_rotation を使用する場合、このテクスチャにアンチエイリアシング(フィルタリング)が適用されていないことが重要です。アンチエイリアシングが適用されたピクセルは、継ぎ目のアーティファクトのように見える、異方性の渦が局所的に発生する原因になります。
0 以上の値を指定すると、ハイライトの "伸長方向" を定義する空間が、anisotropy_channel(チャンネル)10 によって設定されたテクスチャ空間から導き出されます。
anisotropy_channel には以下の "特別な" 値を設定することもできます。
ヒントのセクションの ブラシ仕上げメタルの "ブラシ仕上げメタル" に関する説明も参照してください。
角度の冒頭で説明したとおり、マテリアルの反射は、最終的には視点からの入射角によって導き出されます。
0 度(緑)と 90 度(赤)の視点の角度
この BRDF カーブを定義するモードは 2 つあります。
1 つ目のモードは "IOR" によるものです。つまり、brdf_fresnel(フレネル反射を使用)がオンの場合です。反射が角度に依存する割合は、マテリアルの IOR のみによって導き出されます。これは、フレネル反射として知られ、水、ガラスなどのほとんどの誘電性マテリアルの動作です。
2 つ目のモードは手動モードです。つまり、brdf_fresnel が オフの場合です。このモードでは、brdf_0_degree_refl(0 度反射)パラメータは見る人の正面に位置するサーフェスの反射(または入射光線)を定義し、brdf_90_degree_refl(90 度反射)は見る人に対して垂直に位置するサーフェスの反射を定義します。brdf_curve(Brdf カーブ)パラメータは、このカーブの減衰を定義します。
このモードは、ほとんどのハイブリッド マテリアル、またはメタルに使用されます。ほとんどのマテリアルはグレージング角度によって強い反射を示すため、brdf_90_degree_reflは通常は 1.0 のままでかまいません(代わりに、reflectivity パラメータで全体の反射率をコントロールします)。メタルは、非常に均一に反射する傾向があり、brdf_0_degree_refl の値は高くなります(0.8 ~ 1.0)が、その他の多数のレイヤ マテリアル(リノリウム、ラッカー塗装の木材など)では brdf_0_degree_refl の値は低くなります(0.1 ~ 0.3)。
ガイドラインについては、メタルに関するヒントを参照してください。
組み込みのアンビエント オクルージョン(以下 "AO" )は、2 つの用途に使用できます。間接イルミネーションにおけるディテールと "コンタクト シャドウ" を強化するために使用するか(この場合、最初に何らかの間接イルミネーションが存在することが前提条件です)、または従来の方法で指定した"アンビエント ライト"と併用します。間接光が存在せず、"アンビエント ライト" も指定されていない場合、AO は無効です 11。
ao_samples(サンプル)は、AO を作成するために投射されるサンプル(レイ)数を設定します。高い値を設定するほど滑らかになりますが、低速になります。低い値を設定するほど高速になりますが、粗くなります。デフォルト値は 16 です。64 に設定すると、ほとんどの状況に対応できます。
ao_distance(距離)パラメータは、遮蔽オブジェクトを検出する範囲の半径を定義します。小さい値を設定すると、AO の効果が小さい隙間に制限されますが、レンダリング速度が大幅に速くなります。大きい値を設定すると、大きい領域をカバーできますが、レンダリング速度が低下します。以下のイメージに、2 つの異なる距離を指定した場合のイメージの AO 成分のみを示します。
はじめに
mia_material とは
mental ray 3.6 の機能強化と mia_material_x
このドキュメントの構成
基礎
物理学とディスプレイ
ガンマに関する注意点
トーン マッピング
ファイナル ギャザリングとグローバル イルミネーションを使用する
物理的に正確な光を使用する
特徴
シェーディング モデル
エネルギー保存
BRDF - 反射と角度の依存関係
現実の世界では、サーフェスの反射は通常視点の角度に依存します。これは、BRDF(双方向反射率分布関数)という、さまざまな角度から見た場合のマテリアルの反射を定義する方法で表すことができます。
反射の特徴
透明度の特徴
立体(ソリッド)と薄壁
不透明度の切り取り
スペシャル エフェクト
組み込みのアンビエント オクルージョン
パフォーマンスの特徴
マテリアルのパラメータに関するクイック ガイド
マテリアルのパラメータの詳細
拡散
反射
基本的な機能
パフォーマンス向上のための機能
屈折
半透明度
異方性
BRDF
スペシャル エフェクト
組み込みのアンビエント オクルージョン
![]() 長い距離 | ![]() 短い距離 |
アンビエント オクルージョン エフェクトの始めで説明したとおり、AO は間接イルミネーションの "ディテールの強化" に使用できます。このモードを有効にするには、ao_do_details(詳細の距離の使用)を 1 に設定します。
このモードは、短い距離を指定した AO を、既存の 間接イルミネーション(ファイナル ギャザリングまたはGI/フォトン)と共に適用し、細かいディテールを引き出すために使用します。
ほぼ間接光のみで照らされているこのヘリコプターについて見てみましょう。
![]() AO なし | ![]() AO あり |
左のイメージでは、ヘリコプターが "着地" しているように見えず、着陸用そりの下のシャドウが非常に曖昧です。右のイメージでは、AO が使用され、ディテールとコンタクト シャドウが "強調" されています。
![]() ao_do_details(詳細の距離の使用)= 1 | ![]() ao_do_details(詳細の距離の使用)= 2 |
左のイメージは、従来の AO で発生する問題を示しています。AO がすべての間接イルミネーションに適用されるため、イメージは常に暗めになります。輝いている球体に最も顕著に表れていますが(球体の下に暗いスポットがあります)、立体の正面が強く照らされているにもかかわらず、立体の前の床が不自然に暗くなっているのがわかります。馬の脚の間や赤い球体の下側も同様です。
対照的に、右のイメージでは、すべてのマテリアルに ao_do_details =2 が使用されているため、輝いているボールによって床が自然に照らされています。また、立体から床に少量の白のバウンス ライトが当たり、馬の脚の間と赤いボールの下側にライトが当たっています。
AO を使用中に、コーナーが暗くなりすぎたり、セルフ イルミネーション オブジェクトの周囲に暗いリムが発生して "きれいなイメージが得られない" 場合は、ao_do_details を 2 に設定してより正確な結果を得るようにしましょう。
ao_dark(アンビエント シャドウ カラー)パラメータは、AO シャドウの "暗さ" を設定します。これは完全に遮蔽されたサーフェスの乗数値として使用されます。実際には、暗いカラーは AO エフェクトを非常に暗くし、中間のグレー カラーはエフェクトを見えにくく(明るく)します。こうする代わりに ao_do_details を 2 に設定して新しいモードを使用すると、隣接するオブジェクトから取得したカラーと "暗さ" の間に "ブレンド" が設定されます。ブレンドは以下のように行われます。
(1-ao_dark) * (object colors) + black * ao_dark. .
ao_ambient(アンビエント ライトのカラー)パラメータは、"従来の" AO を実行する場合に使用されます。すなわち、想像上の "絶えず存在するアンビエント ライト" を AO エフェクトによって減衰してシャドウを作成する目的で使用されます。
"従来の AO" は一般に、他の間接光を使用せずにレンダリングする場合に使用されますが、既存の間接光と組み合わせることもできます。この魔法の "絶えず存在するアンビエント ライト" は本質的には物理的ではありませんが、面倒な暗いコーナーを照らすには便利でしょう。
これらのパラメータは、反射のパフォーマンスを向上させるオプションを定義します。
refl_falloff_dist(最大距離)を使用すると、反射を特定の距離に限定することができるため、レンダリング速度が高速になると同時に、遠方のオブジェクトで極端な光沢のある反射が生じないようにすることができます。
refl_falloff_color(終点カラーに減衰)を有効にして使用すると、反射はこのカラーに減衰します。無効な場合、反射は環境カラーに減衰します。前者は屋内シーンに便利で、後者は屋外シーンに便利です。
完全反射(左)、100mm 以降減衰(中央)、25mm 以降減衰(右)
各マテリアルには、refl_depth(最大トレース デプス)パラメータを使用して、最大トレース デプスを局所的に設定できます。このトレース デプスに到達すると、マテリアルは refl_hl_only スイッチが有効であるかのように動作します。つまり、ハイライトと "エミュレートされた" 反射のみを表示します。refl_depth がゼロの場合、グローバル トレース デプスが使用されます。
refl_cutoff(遮断しきい値)は、反射が行われなくなる(トレースされない)しきい値です。これは相対的な値です。たとえば、デフォルトの 0.01 に設定すると、最終的なピクセルに対する貢献度が 1 を下回るレイは無視されます。
屈折(透明度)の最適化設定は、反射の設定とほぼ同じです。ただし、動作が異なる refr_falloff_color(最大距離でのカラー)は例外です。
制限なし(左)、黒に減衰(中央)、青に減衰(右)
左のカップは減衰しません。中央のカップは、refr_falloff_color がオフに設定されているため、黒に減衰します。反射に使用した場合と同様に、トレース距離を制限してパフォーマンスを向上させることができます。
ただし、右のカップは、青に減衰します。これは、マテリアルが厚手になるほどカラーが濃くなるという、正しい指数的減衰をマテリアルに与えます。 リアルな色ガラスについては、色ガラスを参照してください。
注: refr_falloff_dist を使用する場合に適切なシャドウをレンダリングするには、レイトレーシング シャドウを使用する必要があります。また、シャドウ モードはセグメントに設定する必要があります。シャドウ モードについては、mental ray のマニュアルを参照してください。
各マテリアルには、refl_depth パラメータを使用して、最大トレース デプスをローカルで設定できます。このトレース デプスに達すると、マテリアルは黒い屈折を返します。その他のほとんどの透明度/ガラス シェーダは環境を返すため、極端に明るい屋外環境と共に屋内をレンダリングすると、暗い食器棚の中のガラス オブジェクトに空の一部が屈折した明るい領域が表示されるという、非常に不自然な結果になります。refl_depth がゼロの場合、グローバル トレース デプスが使用され、黒ではなく環境が返されます。
refl_cutoff は、上記で説明した反射のケースと同様です。
オプションには、マテリアルの最も細かいディテールの一部をコントロールするためのいくつかのオン/オフのスイッチがあります。
thin_walled(薄壁付き)は、マテリアルが屈折を生じさせるかどうか(立体の透明な物質で構成されているかのように動作するか、または透明なマテリアルの非常に薄いシートで構成されているかのように動作するか)を決定します。このトピックの詳細については、薄壁を参照してください。
左: Solid(ソリッド)、右: Thin Walled(薄壁付き)
do_refractive_caustics(屈折コースティクス)パラメータは、コースティクスが有効な場合のガラスの動作を定義します。
コースティクスをレンダリングしない場合、mia_material はシャドウ シェーダを使用して透明なシャドウを作成します。窓ガラスなどのオブジェクトの場合、これは完全に適しています。たとえば、直接光は(ほぼ)影響を受けずにガラスを通過して部屋まで入射可能になるため、実際、コースティクスを使用する場合よりも優れた結果が得られます。
従来であれば、mental ray でコースティクスを有効にすると、すべてのマテリアルが透明なシャドウの投影を停止し、その代わりに屈折コースティクスの生成を開始していました。これはほとんどの建築シーンでは望ましくありません。たとえば、テーブル上のガラスの装飾品でコースティクス エフェクトを生じさせる一方、部屋の窓からは通常の間接光を投射したい場合があります。このスイッチは、これをマテリアル レベルで設定できるようにします。
高度なレンダリング オプション
反射の最適化設定
屈折の最適化設定
オプション
![]() 透明なシャドウを使用 | ![]() 屈折コースティクスを使用 |
左のイメージは、do_refractive_caustics がオフの場合、右のイメージはオンの場合の結果です。両方のモードを同じレンダリングで自由に混合できます。フォトンは、組み込み型のフォトン シェーダによって適宜自動的に処理されます。前者の場合は間接光としてまっすぐ照射し、後者の場合はコースティクスとして屈折します。
backface_cull(バック フェース カリング)スイッチを使用すると、サーフェスを裏側から見たときに、カメラに対して完全に非表示にする特別なモードを有効にできます。これは、室内に "マジック ウォール" を作成するのに便利です。すべての壁が法線が内側を向いた平面として作成されている場合、backface_cull スイッチを使用して部屋を "外側" からレンダリングできます。カメラは室内を捉えますが、壁は "存在" したままの状態で、シャドウ、バウンス フォトンなどを投影します。一方、カメラが屋外に出ても、室内は魔法のように "透けて見えます"。
![]() バック フェース カリングなし | ![]() 壁にバック フェース カリングを設定 |
propagate_alpha(アルファの伝播)スイッチは、透明なオブジェクトがバックグラウンドのアルファ チャンネル情報を扱う方法を定義します。オンの場合、屈折とその他の透明度エフェクトは、透明なオブジェクトを "通過して" バックグラウンドのアルファを伝播します。オフの場合、透明なオブジェクトに不透明アルファが設定されます。
no_visible_area_hl(可視エリア ライトに対するハイライトなし)パラメータは、可視のエリア ライトの動作を考慮します。
従来の "ハイライト"(スペキュラ エフェクトなど)は、可視の光を放出しているサーフェスの光沢のある反射を実際に作成する代わりに使用する、コンピュータ グラフィックスによる "トリック" です。
ただし、mental ray のエリア ライトは可視に設定可能で、可視に設定した場合、あらゆる(光沢)反射オブジェクトに反射します。可視のエリア ライトとハイライトの両方の反射をレンダリングすると、ライトは 2 度追加され、不自然に明るいエフェクトが作成される原因になります。このスイッチ(デフォルトではオン)を使用すると、可視のエリア ライトが "ハイライト" を緩め、反射12としてのみ表示されるようにできます。
hl_vs_refl_balance(スペキュラ バランス)は、ハイライトの強度と反射の強度のバランスを変更します。デフォルト値 1.0 は、"可能な限り物理的に正確な" 値です。このパラメータを使用して、このデフォルト値を調整できます。1.0 より大きい値を設定するとハイライトが強まり、1.0 より小さい値を設定すると弱まります。
最終的な最適化のスイッチ(デフォルトではオン)は、skip_inside_refl(内側で反射をスキップ)チェックボックスです。透明なオブジェクトの内側のほとんどの反射は非常に弱くなります。ただし、"全反射"(TIR)として知られる、特定の角度で発生する特別なケースを除きます。このスイッチを使用すると、弱い反射を完全に無視する一方、TIR を維持することによって、レンダリング時間を短縮できます。
indirect_multiplier(FG/GI乗数)を使用すると、マテリアルが間接光に反応する強さを調整できます。fg_quality(ファイナル ギャザー精度)は、マテリアルによって投射されるファイナル ギャザリング レイの数のローカル乗数です。両方ともデフォルト値は 1.0 で、グローバル値を使用します。
fg_quality にテクスチャをマッピングする際に役立つ、追加の fg_quality_w(ファイナル ギャザー精度のウェイト)パラメータがあります。ゼロの場合、fg_quality はそのままの精度設定です。fg_quality_wをゼロ以外に設定すると、実際に使用される精度は 2 つの値の乗算値になります(最小値は 1.0)。つまり、カラー テクスチャを fg_quality にマッピングし、fg_quality_w を 5.0 に設定すると、テクスチャの黒は 1.0 の精度になり(投射されるファイナル ギャザリング レイの数はグローバルのデフォルト値)、テクスチャの白は 5.0 の精度になります(5 倍のレイが投射されます)。
光沢のある反射と屈折は補間できます。つまり、レンダリング速度がより高速になり、より滑らかな結果が得られます。
補間は、イメージ全体にわたるグリッドを使用して光沢のある反射を事前に計算することで作用します。各ポイントで取得されるサンプル(レイ)の数は、補間を実行しない場合と同様に、refl_samples(反射サンプル)または refr_samples(屈折サンプル)パラメータで指定します。グリッドの解像度は intr_grid_density(グリッド密度)パラメータで設定します。
ただし、補間が原因でアーティファクトが発生する可能性があります。低解像度のグリッドで実行すると、ディテールが失われます。この低解像度のグリッドでは、隣り合わせのグリッド同士がブレンドされ、オーバースムージングが発生する可能性があります。このため、主に平らなサーフェス上で使用すると便利です。起伏のある、ディテールの細かいサーフェス、またはバンプ マップを使用しているサーフェスは、補間にはあまり適していません。
intr_grid_density パラメータの有効な値は以下のとおりです。
グリッド内にデータが格納され、ポイント全体で共有されます。低解像度のグリッドは、レンダリング速度は高速ですが、より多くのディテールが失われます。反射と屈折の両方に intr_refl_samples パラメータがあり、光沢を滑らかにするために参照する保存済みのグリッド ポイント(現在のレンダリング ポイントを中心とした N × N グループ)の数を定義できます。デフォルト値は 2 です。大きい値を設定すると、より光沢が "不鮮明に" なりますが、滑らかになりすぎる傾向があります。
補間なし(左)、2 ポイントを参照(中央)、4 ポイントを参照(右)
床の上にある左のカップの反射では補間が使用されていないため、粒子が見て取れます(ここでは意図的に誇張されています)。他の 2 つのカップの下の床のタイルには 1/2 の解像度の補間が使用され、それぞれ 2 ポイント(中央)と4 ポイント(右)を参照しています。
このイメージには、補間の使用結果も示されています。左のカップの足の床付近の部分は、かなりはっきりと反射しており、床から離れた部分のみがぼやけています。一方、左のカップの補間された反射には、特定の "ベース レベル" のぼかしが適用されており(補間のスムージングによる)、床に最も近い部分でさえぼやけています。弱い光沢のある反射のシーンでは、この違いはわからないでしょうが、その他のシーンでは、反射が強いと、テーブルや椅子の脚などのオブジェクトが光沢のある床に "接地" していないように見えることがあります。
これを解決するには、intr_refl_ddist(非常に詳細な表示をする距離を使用)パラメータを使用します。このパラメータを使用すると、詳細な 2 次レイのセットをトレースし、指定した半径内のオブジェクトの "より鮮明" なバージョンを作成できます。
詳細の距離なし(左)、詳細の距離 25mm(中央)、詳細の距離 150mm(右)
すべての 3 つの床のタイルで補間を使用していますが、右の 2 つではそれぞれ異なる距離の "詳細の距離" を使用しています。
これにより、興味深い "トリック" を使用できます。たとえば、refl_samples を 0 に設定して、まるで完全鏡面のように反射をレンダリングする一方、補間を使用してこの "完全な" 反射にブラーを適用します(さらに、intr_refl_ddist を使用して隣同士のブラーを抑えます)。この方法を使用すると、光沢のある反射を非常に迅速に作成できます。
詳細の距離なし(左)、詳細の距離あり(右)
上の床のタイトルは、ミラー反射を使用してレンダリングされ、"ぼかし" は補間のみを使用して適用されています。この場合、レンダリング速度は純粋なミラー反射と同じです(または速くなります)が、特に右のタイルのように intr_refl_ddist を使用すると、十分満足できる光沢のある反射を忠実に再現できます。
mia_material は以下の特別な入力にも対応しています。
bump パラメータには、バンプ マッピングの法線を摂動するシェーダを指定できます。このパラメータは、新しい bump_mode(バンプ モード)パラメータがゼロの場合にのみ使用されます。
no_diffuse_bump(拡散バンプなし)がオフの場合、バンプはすべてのシェーディング コンポーネント(拡散、ハイライト、反射、屈折など)に適用されます。オンの場合、バンプは拡散以外のすべてのコンポーネントに適用されます。つまり、バンプは反射、ハイライトなどに見られますが、拡散シェーディングにはバンプは見られません。マテリアルの拡散サーフェスは滑らかなように見えますが、凸凹したラッカー塗装が施されています。
no_diffuse_bump(拡散バンプなし)がオフ(左)、オン(右)
mia_material_x には、バンプ マッピングに関連のある 3 つの新しいパラメータがあります。2 つはベクトル バンプ入力の overall_bump(全体のバンプ)と standard_bump(標準バンプ)で、もう 1 つはそれらのベクトルの座標空間を定義するパラメータ bump_mode です。overall_bump または standard_bump に指定されたシェーダはベクトルを返しますが、これらのシェーダが各自の法線ベクトルを変更して(0,0,0)を返すこともできます。
overall_bump は、no_diffuse_bump の設定に関係なく、随時拡散とスペキュラ コンポーネントの両方に常に適用される全体的なバンプを定義します。standard_bump は、no_diffuse_bump がオフの場合はグローバルに適用され、no_diffuse_bump がオン の場合はスペキュラ/反射 "レイヤ" にのみ適用され、この点では従来からある bump パラメータと同様です。ただし、standard_bump は overall_bump の結果の上に追加されます。
overall_bump に mia_roundcorners シェーダを指定し、standard_bump に法線バンプ シェーダを指定する用途を目的としています。この方法では、"丸角" エフェクトは、no_diffuse_bump の設定に関係なく、拡散とスペキュラのコンポーネントの両方に適用されます。
bump_mode パラメータは、ベクトルの座標空間と、その座標空間が追加モードかどうかを定義します。以下の値を使用できます。
"追加" モードとは、ベクトルに法線の摂動を含める必要があることを意味します。すなわち、現在の法線に "追加" される変更です。一方、"設定" モードとは、実際の法線が次のベクトルによって置き換えられ、前述の座標空間で解釈されることを意味します。
この新しいスキームでは、mia_material_x バンプ マッピングに mental ray の統合機能との互換性を持たせ、no_diffuse_bump がオンの場合でも丸角を適用することができます。
cutout_opacity(不透明度の切り取り)は、不透明度マップを適用してオブジェクトの一部を完全に削除するために使用します。典型的な例としては、木のイメージを平面にマッピングし、木が存在していない部分を切り取るために不透明度を使用します。
transparency(透明度)(左)と cutout_opacity(不透明度の切り取り)(右)のマッピング
additional_color(追加のカラー)は、任意のシェーダに適用可能な入力です。このシェーダの出力は、mia_material によるシェーディングの上に単に追加され、"セルフ イルミネーション" タイプのエフェクトに使用することも、任意の追加のシェーディングを追加するために使用することもできます。
マテリアルは標準の displacement シェーダと environment シェーダをサポートしています。environment が提供されない場合は、グローバル カメラ環境が使用されます。
ここでは、mia_material_x の使用可能な出力の詳細なリストを示します。
ほとんどの出力は、xxx_result、xxx_raw、および xxx_level のパターンに該当します。"result" は最終的な成分、"raw" はスケールされていない成分、"level" はスケーリングです。"level" は、入力パラメータ(または組み合わせ)に関連付けられることが多く、マテリアルのエネルギー保存の特性に従うために変更されています。
特に明記されていない限り、以下に従います。xxx_result = xxx_raw * xxx_level. .
各種出力と関係性
出力には重複する要素が含まれるので、たとえば、個別のチャンネルの "現在の反射" のみが必要な場合は、refl_result を使用します。しかし、ポスト プロダクションで反射の量をコントロールする必要がある場合は、代わりに refl_raw と refl_level を使用して、最終的なカラーに追加する前の合成の段階で乗算します。
ただし、mia_material_x は、(パフォーマンスが)低精度の実際のレンダリングの段階で非常に低レベルの反射を意図的にサンプリングするため、ポスト プロダクションの段階で反射の強度を大きく変更するのは避ける必要があります。
以下の出力があります。
出力の例
出力では重複する要素を使用できるため、それらの要素を合成して優れたレンダリング イメージを作成するための方法がいくつかあります。2 つの合成パイプラインについて、方程式で簡単に説明します。
まず、各種の result パラメータの合計である "シンプル" なバージョンがあります。このバージョンでは、ポスト プロダクションにおける、マテリアル間の全体的なバランスに対する小さな変更のみが可能です。
しかし、多数のファイルを必要とせず、浮動小数点以外の合成で適度に機能するという利点があります。
次に、各種の raw と level 出力を使用する、より "複雑" なバージョンがあります。ポストプロダクションで、より詳細なコントロールが可能です。
raw 出力は、ダイナミック レンジを維持するために、浮動小数点で保存および合成する必要があります。level 出力は常に 0.0 ~ 1.0 の範囲内で、浮動小数点で保存する必要はありません。
mental ray 3.5 のファイナル ギャザリングのアルゴリズムは、以前のバージョンに比べて、特に適応性が大幅に向上しています。mental ray の以前のバージョンに比べて、レイの数と密度を大幅に低く設定できます。
静止画の多くを、極端な設定(たとえば、レイ数を 50、密度を 0.1 に設定)を使用してレンダリングできます。この設定が原因で "オーバースムージング" のアーティファクトが発生する場合は、組み込みの AO(アンビエント オクルージョンを参照)を使用して問題を解決できます。
ファイナル ギャザリングを GI(フォトン)と使用する場合、最初にファイナル ギャザリングを無効にしてレンダリングし、フォトンが十分に "滑らか" であることを確認します。フォトンが粗い場合は、"滑らかになる" までフォトンを検索する半径を増やしてから、ファイナル ギャザリングを再度有効にします。
ここでは、各種マテリアルを作成する場合の経験則について簡単に説明します。最初は基本的なデフォルト設定を使用することを前提とします。
これは "ハイブリッド" マテリアルの一種で、多数の建築レンダリングに使用できます。たとえば、ラッカー塗装の木材、リノリウムなどがあります。
これらのマテリアルでは、brdf_fresnel(フレネル反射を使用)をオフにする必要があります(カスタム BRDF カーブを定義します)。まず、brdf_0_degree_refl(0 度反射)を 0.2、brdf_90_degree_refl(90 度反射)を 1.0 に設定し、適切なテクスチャ マップを diffuse に適用します。reflectivity(反射率)を 0.5 ~ 0.8 に設定します。
マテリアルの光沢はどうですか? 反射は非常にクリアですか、ぼやけていますか? 強いですか、弱いですか?
典型的な木の床では、refl_gloss を 0.5、refl_samples を 16、reflectivity を 0.75 に設定し、diffuse に見た目のよい木のテクスチャ、おそらくバンプ マップを若干適用します(バンプをラッカー塗装のレイヤにのみ表示する必要がある場合には、no_diffuse_bump(拡散バンプなし)チェックボックスを使用してみます)。
リノリウム カーペットでも同じ設定を使用しますが、異なるテクスチャとバンプ マップを適用し、reflectivity と refl_gloss を若干低めの値に設定します。
セラミック マテリアルは、釉薬がかかっています(透明なマテリアルの薄いレイヤで覆われています)。上記で説明した一般的なマテリアルと同様のルールに従いますが、brdf_fresnel(フレネル反射を使用)を オン、refr_ior(屈折のインデックス)を約 1.4、reflectivity(反射率)を 1.0 に設定する必要があります。
diffuse は適切なテクスチャまたはカラーに設定する必要があります。たとえば、白の浴室のタイルには白を設定します。
石は通常非常にマットで、反射は非常にぼやけていてほぼ拡散しています。石の "粉っぽい" 特性は、diffuse_roughness(粗さ)パラメータを使用してシミュレートします。最初は 0.5 に設定してみましょう。レンガなどの浸透性のある石の場合は高い値を設定します。
石の場合、refl_gloss(反射の光沢)を非常に低い値(0.25 より低い値)に設定し、通常は refl_hl_only(ハイライトのみ)を使用すると、優れた効果を効率的に得られます。diffuse には見た目のよい石のテクスチャを設定します。たとえば、バンプ マップや、refl_gloss 値に変化を持たせるマップなどを使用します。
reflectivity(反射率)を約 0.5 ~ 0.6、brdf_fresnel(フレネル反射を使用)をオフ、brdf_0_degree_refl(0 度反射)を 0.2、brdf_90_degree_refl(90 度反射)を 1.0 に設定します。
ガラスは誘導体であるため、brdf_fresnel(フレネル反射を使用)を必ずオンに設定する必要があります。ガラスの IOR は約 1.5 です。diffuse_weight(ウェイト)を 0.0、reflectivity(反射率)を 1.0、transparency(透明度)を 1.0 に設定します。これは、基本的な、完全にクリアな屈折するガラスを作成するのに十分な値です。
このガラスが窓ガラス用の場合は、thin_walled(薄壁付き)をオンに設定します。立体(ソリッド)のガラスのブロックの場合は、thin_walled をオフに設定し、コースティクスが必要かどうかを判断し、do_refractive_caustics を適宜設定します。
ガラスが曇りガラスの場合は、 refr_gloss(屈折の光沢)を適切な値に設定します。refr_samples を調整して精度を高めるか、refr_interpolate(屈折の補間)を使用してパフォーマンスを向上させます。
クリア ガラスには前のセクションで説明したヒントが役立ちます。ただし、色つきガラスの場合は若干異なります。
多数のシェーダは、透明度をガラスのサーフェスで設定します。実際には、単に refr_color(屈折のカラー)をある値(たとえば、青)に設定して透明度を設定します。この方法は、thin_walled(薄壁付き)がオンに設定されたガラスで完璧に機能します。ただし、立体のガラス オブジェクトの場合、この方法ではリアルな外観を正確に再現できません。
以下の例を見てみましょう。サイズの大きく異なる 2 つのガラスのブロック、内側に丸い穴のある球体14、ガラスの馬があります。
refr_color(屈折のカラー)を青に設定し、サーフェスで色が変化したガラス
問題ははっきりと見て取れます。
問題の原因は?
ガラス オブジェクトに入射する光線を思い浮かべてください。"サーフェス" に色が付いている場合、光線がオブジェクトに入射するときに光線に色が付き、この色はオブジェクトを通過する間保持され、オブジェクトを射出するときに別の色が付きます(減衰)。
ガラスのサーフェスの色の変化
上の図では、光線は左側から入射し、サーフェスに入射する時点でレベルが低下し、少し暗くなります(下のグラフはレベルを図式化したものです)。この色は、媒質を通過する間保持され、サーフェスを射出する時点でレベルが再度低下します。
シンプルなガラス オブジェクトの場合は、これで十分です。thin_walled を使用したガラスは定義上はこれに該当しますが、複雑な立体のガラスは該当しません。特にガラスの内側の負の空間(この例の球体のような)は、これには該当しません。光線は 2 つではなく 4 つのサーフェスを通過する必要があるためです("サーフェスでの減衰" のステップがさらに 2 つ追加されます)。
実際の色ガラスでは、光線は媒質を通過し、"進行中に" 減衰します。mia_material では、refr_falloff_dist(最大距離)を有効にし、refr_falloff_color(最大距離でのカラー)を使用し、refr_color(屈折のカラー)を白に設定することでこれを実現します。以下に結果を示します。
媒質内でのガラスの色の変化
上の結果は、明らかに改善されています。厚いガラスのブロックは薄いガラスに比べてより濃い青で、穴の開いた球体は正しく表現されています。図式化すると、以下のようになります。
d = refr_falloff_dist(最大距離)、減衰は refr_falloff_color(最大距離でのカラー)
光線は媒質に入射し、通過中に減衰します。減衰の強さは、厳密には refr_falloff_dist(図では d)であり、減衰によって refr_falloff_color に一致します(この深度での減衰は、前のモデルでサーフェスに入射した直後に受けた減衰と同じです)。減衰は指数関数的で、refr_falloff_dist が 2 倍になると、効果は refr_falloff_color の二乗になります。
以下のトレードオフの関係があります。
この方法を使用してマテリアルのシャドウを正確にレンダリングするには、コースティクスを使用するか、または mental ray "セグメント" シャドウ モードでシャドウをレンダリングしていることを確認します。
通常、コースティクスを使用すると、見た目に最も正確なシャドウが生成されますが(上のイメージはコースティクスを使用してレンダリングされていません)、有効なコースティクス フォトンとコースティクス フォトンを放出する物理的な光源が必要です。
一方、mental ray "セグメント" シャドウは、幅広く使用される "簡易" シャドウ モードに比べてパフォーマンスが少し低下します。しかし、セグメント シャドウを使用しない場合、媒質を通過中のシャドウの強度の減衰が適切に考慮されません15。
水はガラスと同様、誘導体で、IOR は 1.33 です。そのため、物体を屈折させる必要があるまとまった量の水(たとえば、蛇口から流れ出る水)には、ガラス(上記)と同じ原理が当てはまります。色の付いた飲み物は、色ガラスと同じ原理です。
水からワインへ
上のイメージのような、容器に入った飲み物を作成するには、mia_material が複数のサーフェスを通過する屈折を処理する方法と、"現実の世界"で実際に見られる屈折の違いを理解することが重要です。
屈折で重要なことは、IOR が異なる媒質間の遷移です。このような遷移は、界面と呼ばれます。
レモネード入りのグラスの場合、光線は空(IOR = 1.0)を通過してグラスに入射し、グラスの IOR(1.5)によって屈折します。グラスを通過した後、光線はグラスから射出して液体に入射します。つまり、ある媒質(IOR 1.5)と別の媒質(IOR 1.33)の界面を通過します。
これをコンピュータ グラフィックスでモデリングするには、グラスの内側を向いた法線と IOR 1.5 を使用してガラスの閉じたサーフェスを個別に作成し、次に内側を向いた法線と IOR 1.33 を使用して飲み物の閉じたサーフェスを作成し、容器と液体の間に小さな "空気の隙間" を残す方法があります。
この方法は "うまくいくはずです" が、問題が 1 つあります。光線が IOR が高い媒質から低い媒質に進行する場合に、"全反射"(TIR)と呼ばれる効果が発生する可能性があります。これは、スイミング プールに飛び込んで見上げたときに目にする効果です。水面より上にあるオブジェクトは真上の小さな円からしか見えず、特定の角度より低いところは、プールの反射とサーフェスの下側のオブジェクトのみが見えます。2 つの媒質の IOR の差が大きいほど、TIR が発生する可能性も高くなります。
この例では、光線がグラス(IOR = 1.5)から空気中に進行するときに、TIR が発生する可能性が高くなります。しかし実際には、光線は IOR = 1.5 の媒質から IOR = 1.33 の媒質に進行するので、IOR の差は非常に小さく、TIR が発生する可能性も低くなります。以下の図に見た目の違いを示します。
正確な屈折(左)と "空気の隙間" を挿入した場合(右)
左の結果は正確ですが、ではどのような方法で実現したのでしょうか?
問題を解決するには、媒質ではなく、界面という視点からモデリングを考え直します。この例では、3 つの異なる界面があり、IOR を外側と内側の媒質の IOR 間の比率として考えることができます。
最も一般的なケースである空気との界面では、使用する IOR は媒質の IOR です(空気の IOR は 1.0 であるため)。これが 2 つの異なる媒質の間の界面となると、状況は異なります。
この状況を正しくモデリングするには、それぞれ個別の mia_material が適用された 3 つのサーフェスが必要です。
液体の入ったグラスの 3 つの界面
2 つの液体マテリアルに適切な refr_falloff_dist(最大距離)と refr_falloff_color(最大距離でのカラー)を設定した(色付きの液体を得るために)結果は、上記の比較図の左のイメージです。
水面は、見るからに透明な液体とは少し異なります。
海洋が青いのではなく、これは反射です。海洋の水面下に差し込む光線の大半には、特に面白い効果は見られません。ほんのわずかな量の光が、文字通りの "サブサーフェス スキャタリング" をわずかに行いながら、散乱して水面に返ります。
mia_material を使用して海面を作成するには、以下の手順に従います。
diffuse_weight(ウェイト)を 0.0、reflectivity(反射率)を 1.0、transparency(透明度)を 0.0 に設定します(屈折はまったく使用しません)。
refr_ior(屈折のインデックス)を 1.33、brdf_fresnel(フレネル反射を使用)をオンに設定します。揺れを表現するシェーダを bump(バンプ)に適用すれば、海洋は基本的に完成です。
この海洋には、IOR によって導き出された反射しか設定されていませが、 おそらくこれで十分です。試してみてください。ただし、反射する何らかの対象物があることを確認してください。空のマップ、オブジェクト、または単なる青のグラデーションのバックグラウンドでかまいません。何らかの対象物がないと、完全に黒になります。
青いのは海洋ではなく、空
"熱帯地域" の海洋に見せるには、diffuse を少し緑っぽい/青っぽいカラーに設定し、diffuse_weight を非常に低い値(0.1)に設定し、no_diffuse_bump(拡散バンプなし)チェックボックスをオンにします。
これで、海洋の最上部でわずかに発生する散乱をエミュレートする水中の "ベース カラー" が完成しました。
熱帯地域の海洋
メタルは非常に反射性が高いので、反射する何かが必要です。最高に見栄えのよい外観のメタルは、真の HDRI 環境から得ることができます。球状にマッピングされた HDRI フォト16または mental ray physical sky などを使用します。
典型的なクロムを設定するには、brdf_fresnel(フレネル反射を使用)をオフ、reflectivity(反射率)を 1.0、brdf_0_degree_refl(0 度反射)を 0.9、brdf_90_degree_refl(90 度反射)を 1.0 に設定します。diffuse を白に設定し、refl_is_metal(メタル マテリアル)チェックボックスをオンにします。
これでほぼ完全に反射するマテリアルを作成できます。refl_gloss(反射の光沢)パラメータを調整し、好みに合わせてぼやけた反射のレベルを調整します。メタル オブジェクトで効力を発揮する "丸角" エフェクトの使用も検討します。
メタルは反射のカラーにも影響を及ぼします。ここでは refl_is_metal を有効に設定したので、既に影響が見られます。diffuse を "金色" に設定して金を作成してみましょう。
さまざまなレベルの refl_gloss を試してみましょう(必要に応じて refl_interpolate(反射の補間)を併用し、パフォーマンスを向上させます)。
refl_is_metal が有効な場合には、reflectivity を変更して少し変化を持たせ、反射(diffuse によって色付けされた)と通常の拡散シェーディングをブレンドできます。これにより、光沢のある反射と拡散シェーディングを "ブレンド" し、両方とも同じカラーにすることができます。たとえば、アルミ マテリアルでは多少拡散をブレンドする必要がありますが、クロムでは必要ありません。
金、銀、銅?
ブラシ仕上げのメタルは、興味深い特殊なメタルです。ブラシ仕上げメタルは、refl_gloss(反射の光沢)を "非常にぼやけた" 反射を受けるレベルに下げるだけで作成できる場合もあります。ブラシ方向がランダムな場合、または集合エフェクトとしてもブラシが非常に小さ過ぎて見えない場合は、これで十分です。
明確なブラシ方向が設定されている、または実際のブラシ ストロークが見えるマテリアルの場合、リアルな見た目を作成するにはもう少し複雑な処理が必要です。
ブラシ仕上げのメタルの小さな溝がすべて一体となって異方性反射を作り出します。この様子を以下の図に示します。実際に多数の隣接する小さな円柱をモデリングし、シンプルな Phong シェーダでシェーディングすることによって、ブラシの溝がシミュレートされています。
多数の隣接する小さな円柱
ご覧のとおり、各円柱のスペキュラ ハイライトが一体となって、異方性ハイライトである集合エフェクトを作成しています。
また、ハイライトは連続しておらず、実際には隣接する小さなセグメントに分割されています。マテリアルが "ブラシ仕上げのメタル" であることを視覚的に示す主な特性は以下のとおりです。
つや消しマテリアルをシミュレートする際に、多くのユーザは最初のエフェクトである異方性しか考慮しません。別のよくある間違いは、ハイライトはブラシ方向に伸長すると考えることです。どちらも実際とは異なります。
つや消しマテリアルをシミュレートするには、これらの 2 つの視覚的な特性をシミュレートする必要があります。1 つ目は簡単です。anisotropy(異方性)と anisotropy_rotation(回転)を使用して異方性ハイライトを作成します。2 つ目は、いくつかの方法でシミュレートできます。
それぞれ長所と短所がありますが、ここでは最後の方法を使用します。この方法を選択した理由は、補間とうまく併用できるためです。
ブラシ仕上げメタル補間
特別なマップ
バンプ マッピング
不透明度の切り取りと追加のカラー
mia_material_x の複数出力
はじめに
すべての出力のリスト
適切な合成
Beauty = diffuse_result + indirect_result + spec_result +
refl_result + refr_result + tran_result +
add_result
Beauty = diffuse_level * (diffuse_raw + (indirect_raw * ao_raw)) +
spec_level * spec_raw +
refl_level * refl_raw +
refr_level * refr_raw +
tran_level * tran_raw +
add_result
ヒントとテクニック
ファイナル ギャザリングのパフォーマンス
一般的なマテリアルに関するクイック ガイド
光沢のある木材、床などの一般的な経験則
セラミック
石のマテリアル
ガラス
色ガラス
水と液体
海洋と水面
メタル
ブラシ仕上げメタル
脚注