原因:Unity UrpにはMaterial Roughnessに関する部分が存在しない
どうすればいいのか?
基本的な設定にはBase Map、Metallic Map、Normal Map、Height Map、Occlusion Mapが存在します
理由:URPの基本Lit ShaderはRoughnessではなくSmoothnessを使用するからです!
👉 Smoothness = 1 - Roughness であるため、Roughness の値をそのまま使用することはできません。
👉Metallic MapのAチャンネルがSmoothness値で使用されるので、Roughnessを変換して入れれば解決可能!
1.PhotoshopでMetallicテクスチャーのAチャンネルにRoughnessを入れる方法
URP Lit ShaderでRoughnessを適用するには、Roughnessを反転(1-Roughness)してMetallic MapのAチャンネルに入れなければなりません。
2.Shader Graphを利用する
簡単なので、簡単なlit shader graphを作って適用しました。
適用前
適用後
ライトが夜なのでよく見えませんが、正常にroughness mapが適用されました!
URPのLit ShaderはRoughnessスロットがなく、代わりにSmoothness(Aチャンネル)を使うので、Roughnessを変換してMetallic MapのAチャンネルに入れるものです!
UnityでRoughness MapのsRGB(Color Texture)オプションをオフにすべきでしょうか?
はい!
Roughness Mapはリニアデータだからです!
sRGB(Texture Color)オプションがオンになっているとガンマ補正が適用されます
Roughness値は物理的に正確な数値データを使用する必要があるためリニア処理する必要があります
sRGBを解除するとユニティがテクスチャをガンマ → リニア変換するのを防ぐことができる