Unity Roughness Texture設定

Yumin·2025년 3월 14일
0

Unity

목록 보기
8/18

原因:Unity UrpにはMaterial Roughnessに関する部分が存在しない

どうすればいいのか?

基本的な設定にはBase Map、Metallic Map、Normal Map、Height Map、Occlusion Mapが存在します


えっ、じゃあRoughness 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を解除するとユニティがテクスチャをガンマ → リニア変換するのを防ぐことができる

profile
クリエイティブを楽しむ開発者

0개의 댓글