diff options
| -rwxr-xr-x | 3ner.shader | 16 | ||||
| -rw-r--r-- | decal.cginc | 6 | ||||
| -rwxr-xr-x | globals.cginc | 2 | ||||
| -rwxr-xr-x | pbr.cginc | 8 |
4 files changed, 24 insertions, 8 deletions
diff --git a/3ner.shader b/3ner.shader index 52bf73e..183dec1 100755 --- a/3ner.shader +++ b/3ner.shader @@ -90,6 +90,8 @@ Shader "yum_food/3ner" [HideInInspector] m_start_Decal0_Metallic_Gloss("Metallic Gloss", Float) = 0 [ThryToggle(_DECAL0_METALLIC_GLOSS)] _Decal0_Metallic_Gloss_Enabled("Enable", Float) = 0 _Decal0_Metallic_Gloss("Metallic Gloss", 2D) = "white" {} + _Decal0_Metallic("Metallic", Range(0, 1)) = 1 + _Decal0_Gloss("Gloss", Range(0, 1)) = 1 [HideInInspector] m_end_Decal0_Metallic_Gloss("Metallic Gloss", Float) = 0 //endex @@ -142,6 +144,8 @@ Shader "yum_food/3ner" [HideInInspector] m_start_Decal1_Metallic_Gloss("Metallic Gloss", Float) = 0 [ThryToggle(_DECAL1_METALLIC_GLOSS)] _Decal1_Metallic_Gloss_Enabled("Enable", Float) = 0 _Decal1_Metallic_Gloss("Metallic Gloss", 2D) = "white" {} + _Decal1_Metallic("Metallic", Range(0, 1)) = 1 + _Decal1_Gloss("Gloss", Range(0, 1)) = 1 [HideInInspector] m_end_Decal1_Metallic_Gloss("Metallic Gloss", Float) = 0 //endex @@ -194,6 +198,8 @@ Shader "yum_food/3ner" [HideInInspector] m_start_Decal2_Metallic_Gloss("Metallic Gloss", Float) = 0 [ThryToggle(_DECAL2_METALLIC_GLOSS)] _Decal2_Metallic_Gloss_Enabled("Enable", Float) = 0 _Decal2_Metallic_Gloss("Metallic Gloss", 2D) = "white" {} + _Decal2_Metallic("Metallic", Range(0, 1)) = 1 + _Decal2_Gloss("Gloss", Range(0, 1)) = 1 [HideInInspector] m_end_Decal2_Metallic_Gloss("Metallic Gloss", Float) = 0 //endex @@ -246,6 +252,8 @@ Shader "yum_food/3ner" [HideInInspector] m_start_Decal3_Metallic_Gloss("Metallic Gloss", Float) = 0 [ThryToggle(_DECAL3_METALLIC_GLOSS)] _Decal3_Metallic_Gloss_Enabled("Enable", Float) = 0 _Decal3_Metallic_Gloss("Metallic Gloss", 2D) = "white" {} + _Decal3_Metallic("Metallic", Range(0, 1)) = 1 + _Decal3_Gloss("Gloss", Range(0, 1)) = 1 [HideInInspector] m_end_Decal3_Metallic_Gloss("Metallic Gloss", Float) = 0 //endex @@ -298,6 +306,8 @@ Shader "yum_food/3ner" [HideInInspector] m_start_Decal4_Metallic_Gloss("Metallic Gloss", Float) = 0 [ThryToggle(_DECAL4_METALLIC_GLOSS)] _Decal4_Metallic_Gloss_Enabled("Enable", Float) = 0 _Decal4_Metallic_Gloss("Metallic Gloss", 2D) = "white" {} + _Decal4_Metallic("Metallic", Range(0, 1)) = 1 + _Decal4_Gloss("Gloss", Range(0, 1)) = 1 [HideInInspector] m_end_Decal4_Metallic_Gloss("Metallic Gloss", Float) = 0 //endex @@ -350,6 +360,8 @@ Shader "yum_food/3ner" [HideInInspector] m_start_Decal5_Metallic_Gloss("Metallic Gloss", Float) = 0 [ThryToggle(_DECAL5_METALLIC_GLOSS)] _Decal5_Metallic_Gloss_Enabled("Enable", Float) = 0 _Decal5_Metallic_Gloss("Metallic Gloss", 2D) = "white" {} + _Decal5_Metallic("Metallic", Range(0, 1)) = 1 + _Decal5_Gloss("Gloss", Range(0, 1)) = 1 [HideInInspector] m_end_Decal5_Metallic_Gloss("Metallic Gloss", Float) = 0 //endex @@ -402,6 +414,8 @@ Shader "yum_food/3ner" [HideInInspector] m_start_Decal6_Metallic_Gloss("Metallic Gloss", Float) = 0 [ThryToggle(_DECAL6_METALLIC_GLOSS)] _Decal6_Metallic_Gloss_Enabled("Enable", Float) = 0 _Decal6_Metallic_Gloss("Metallic Gloss", 2D) = "white" {} + _Decal6_Metallic("Metallic", Range(0, 1)) = 1 + _Decal6_Gloss("Gloss", Range(0, 1)) = 1 [HideInInspector] m_end_Decal6_Metallic_Gloss("Metallic Gloss", Float) = 0 //endex @@ -454,6 +468,8 @@ Shader "yum_food/3ner" [HideInInspector] m_start_Decal7_Metallic_Gloss("Metallic Gloss", Float) = 0 [ThryToggle(_DECAL7_METALLIC_GLOSS)] _Decal7_Metallic_Gloss_Enabled("Enable", Float) = 0 _Decal7_Metallic_Gloss("Metallic Gloss", 2D) = "white" {} + _Decal7_Metallic("Metallic", Range(0, 1)) = 1 + _Decal7_Gloss("Gloss", Range(0, 1)) = 1 [HideInInspector] m_end_Decal7_Metallic_Gloss("Metallic Gloss", Float) = 0 //endex diff --git a/decal.cginc b/decal.cginc index bfd4bf5..9203d5f 100644 --- a/decal.cginc +++ b/decal.cginc @@ -66,10 +66,8 @@ float2 decal_rotate(float2 uv, float rotation) { } \ if (_Decal##N##_Metallic_Gloss_Enabled) { \ float4 mg = decal_sample(_Decal##N##_Metallic_Gloss, uv, _Decal##N##_UV_Mode); \ - pbr.metallic = lerp(pbr.metallic, mg.r, albedo.a); \ - pbr.smoothness = lerp(pbr.smoothness, mg.a, albedo.a); \ - pbr.roughness_perceptual = clamp(1 - pbr.smoothness, MIN_PERCEPTUAL_ROUGHNESS, 1); \ - pbr.roughness = clamp(pbr.roughness_perceptual * pbr.roughness_perceptual, MIN_ROUGHNESS, 1); \ + pbr.metallic = lerp(pbr.metallic, mg.r * _Decal##N##_Metallic, albedo.a); \ + pbr.smoothness = lerp(pbr.smoothness, mg.a * _Decal##N##_Gloss, albedo.a); \ } \ if (_Decal##N##_Normal_Enabled) { \ float3 dn = UnpackNormal(decal_sample(_Decal##N##_Normal, uv, _Decal##N##_UV_Mode)); \ diff --git a/globals.cginc b/globals.cginc index f07e27f..0de9812 100755 --- a/globals.cginc +++ b/globals.cginc @@ -271,6 +271,8 @@ float _Parallax_Heightmap_Ray_Marching_Steps; float _Decal##N##_Metallic_Gloss_Enabled; \ texture2D _Decal##N##_Metallic_Gloss; \ float4 _Decal##N##_Metallic_Gloss_ST; \ + float _Decal##N##_Metallic; \ + float _Decal##N##_Gloss; \ float _Decal##N##_Normal_Enabled; \ texture2D _Decal##N##_Normal; \ float _Decal##N##_Normal_Scale; @@ -176,6 +176,10 @@ Pbr getPbr(v2f i) { normal_tangent = blendNormalsHill12(normal_tangent, detail_normal); #endif + float4 metallic_gloss = _MetallicGlossMap.Sample(aniso4_trilinear_repeat_s, uv_parallax * _MetallicGlossMap_ST.xy); + pbr.smoothness = metallic_gloss.a * _Glossiness; + pbr.metallic = metallic_gloss.r * _Metallic; + applyDecals(i, pbr, normal_tangent); pbr.normal = normalize(mul(normal_tangent, pbr.tbn)); @@ -187,10 +191,6 @@ Pbr getPbr(v2f i) { pbr.bent_normal = normalize(mul(bent_ts, pbr.tbn)); #endif - float4 metallic_gloss = _MetallicGlossMap.Sample(aniso4_trilinear_repeat_s, uv_parallax * _MetallicGlossMap_ST.xy); - pbr.smoothness = metallic_gloss.a * _Glossiness; - pbr.metallic = metallic_gloss.r * _Metallic; - #if defined(_CLEARCOAT) pbr.cc_roughness = _Clearcoat_Roughness; pbr.cc_roughness_perceptual = sqrt(pbr.cc_roughness); |
