Usage of specular values for PBR metallic texture workflow

Memo

  • You can set specular value for PBR materials in UE4 if you want to use it.
  • It is used to control the default fresnel value 0.04 for non-metal materials.
  • One way to account for micro-occlusion and micro-shadows in texture levels at non-metels materials is to set this specular value and decrease the fresnel value 0.04.
  • The default value of specular value is 0.5 and used like this.
  vec3 specular_color = mix( 0.08 * specular_value, base_color, metallic );


メモ

  • 「メタルネスを使う PBR テクスチャのワークフローの場合」でスペキュラの入り方をコントロールする際には, 主にラフネスマップを調整します.
  • しかし, PBR シェーダで非金属のマテリアルについては固定で垂直フレネル反射率 0.04 を入れてしまっていることが多いです.
  • この場合, テクスチャレベルの細かいマイクロオクルージョンやシャドウを考慮しようとすると, このフレネル反射率 0.04 の固定値のせいでスペキュラライティングを抑えられずに困ることがあります.
  • そういう場合の対処方法の 1 つとして, このスペキュラの値に対してデフォルトの値(0.5)よりも小さい値を入れることがあります.
  • 実際にシェーダ内では下のような計算が行われています.
  非金属の垂直フレネル反射率 f0_color = 0.08 * 指定したスペキュラの値
  スペキュラカラー                    = f0_color と ベースカラーをメタリックで補間したカラー