PBRの作業手順

Planetside公式フォーラム、"General"の Topic: PBR Workflow からの転用です 。

メタル(金属)に対する フレネル効果 の作業手順とラフネスマップを使用した手順を記述します。
  • 「Specular tab」において、Glossness mapを持っている場合、このマップはRoughness mapの反転であるため、"Invert roughness image"を有効にして使用します。
  • Gloss mapが黒色に近い場合は無視して下さい。ただし、非常に金属質なサーフェスを持っている場合は異なる取り組みをする必要があります。
  • Albedo map、またはBase colour mapを持っている場合は、非メタル(すなわち、ほとんどのマテリアルがそうである誘電体)の場合、"Diffuse colour"として割り当てます。メタルの場合は、"Reflectivity"として割り当てます。

非メタルサーフェスの作業手順

  1. "Diffuse colour"を白(1)に設定します。Albedo mapを"Diffuse colour image"に割り当てます。
  2. "Reflectivity"を白(1)、"Reflection tint"を白(1)に設定します。"index of refraction(屈折率)"をデフォルト値1.5で使用する事が出来ます。
  3. "Roughness"を1.0に設定します。次に、Roughness mapを"Roughness image"に割り当てるか、別の『Image Map Shader』を使用してRoughness mapを読み込み、その『Image Map Shader』を"Roughness function"として関連付けます。『Image Map Shader』を使用している場合は、「Colour」タブの"Data is linear"オプションを試してみると良いかもしれません。『Image Map Shader』の"Rrojection type"を必ず「Object UV (if available)」に設定し、"Repeat X"と"Repeat Y"を有効にして問題を回避して下さい。

Roughness mapの代わりにGlossiness mapがある場合、そのGlossiness mapを"Roughness image"に割り当てて、"Invert roughness image"を有効にする事で利用可能となります。

メタルサーフェスの作業手順

  1. "Diffuse colour"を黒(0)に設定します。これが重要です。
  2. "Reflectivity"を1にしてテクスチャマップを無し、"Index of refraction"を10に設定して、サーフェスの反射率を高くします。
  3. Albedo mapを"Reflectivity image"に割り当てます。
  4. "Roughness"を1に設定します。別の『Image Map Shader』を作成して、Roughnessを読み込みます。次に、『Image Map Shader』を『Default Shader』の"Rroughness function"に接続します。『Image Map Shader』の投影モードを「UV (if available)」に設定し、予期せぬ事態を避けるために、"Tile X"と"Tile Y"を有効にします。
  5. 『Default Shader』の直下に『Reflective Shader』を追加します(『Default Shader』は、『Reflective Shader』の"Main input"に入力する必要があります)。"Roughness"を1に設定し、『Default Shader』に対して行ったのと同じ"Rroughness function"に接続します。『Reflective Shader』を使用する理由は、入射角度において最大1の反射傾斜を作り出してフレネル効果を追加するためです。現実の世界では、これは暗く着色された金属でも起こります。この効果が得られない場合、エッジがあまりにも暗く見えるかもしれません。
異なる値を持つメタルマップがある場合、実際には2つのマテリアルを混合し、メタルマップを"Mix controller"として使用する必要があります。『Merge shader』を使用してミキシングを行い、"Mix controller"パラメータの入力を利用する事が出来ます。大部分の自然なオブジェクトでは、メタルは黒(0)にする必要があるため、これを行う必要はありません。

ラフネスとグロスに関する注意事項:

前述したように、グロスは基本的にラフネスの反転です。しかし、0と1の間で異なるマッピングを使用する場合、レンダラー間で矛盾が生じる可能性があります。これらの違いを説明するために、シェーダーにさらにオプションを追加して画像のガンマ/色空間を制御する予定です。これらのオプションがないと、ラフネスやグロスの画像で2.2または0.454のガンマ補正を試す必要があります。

Roughness mapを読み込むには、別の『Image Map Shader』を使用する事をお勧めします。 このようにして、「Colour」タブで"Data is linear"オプションを試す事が出来ます。これは、同じ"Roughness function"を複数のシェーダーに接続する必要がある場合にも役立ちます。

これらの問題が発生した場合は、TGでの表示と他のレンダラーでの表示の比較レンダリングをPS社まで送って下さい。これにより、どんな変更を加えたり、UIで提供する必要があるかどうかの判断材料になります。

上記メタルサーフェスのテスト用データとして以下のサンプルが提供されています。
PBR_Metal_Spheres.zip : 86.3 KB ( ここ からテクスチャをダウンロードする必要があります)

これはcc0textures.comのPBRメタルテクスチャを使用するプロジェクトのサンプルです。

パストレースとTG4.4以降で最適に機能するロバストアダプティブサンプラーを使用します。TG4.3でもレンダリングする事が出来ますが、4.4の方が高速です。