diff options
| author | yum <yum.food.vr@gmail.com> | 2026-02-23 22:18:48 -0800 |
|---|---|---|
| committer | yum <yum.food.vr@gmail.com> | 2026-02-23 22:18:48 -0800 |
| commit | 87e0f98e6d4e2774c08763c94aa21ad68b0b13f9 (patch) | |
| tree | 059935f359c09e9f52dfb32aba6c906bca7b301c | |
| parent | 5fa1c0ec5b2b59db3858a7dfe9f4001eeeff8cc9 (diff) | |
Plumb bent normals
| -rwxr-xr-x | 3ner.shader | 46 | ||||
| -rwxr-xr-x | features.cginc | 4 | ||||
| -rwxr-xr-x | globals.cginc | 6 | ||||
| -rwxr-xr-x | lighting.cginc | 3 | ||||
| -rwxr-xr-x | pbr.cginc | 2 |
5 files changed, 39 insertions, 22 deletions
diff --git a/3ner.shader b/3ner.shader index 4c1ca2c..8550cf9 100755 --- a/3ner.shader +++ b/3ner.shader @@ -31,7 +31,7 @@ Shader "yum_food/3ner" _MainTex("Base color", 2D) = "white" {} _Color("Tint", Color) = (1, 1, 1, 1) - _BumpMap("Normal", 2D) = "bump" {} + [Normal] _BumpMap("Normal", 2D) = "bump" {} _BumpScale("Normal Scale", Float) = 1 _MetallicGlossMap("Metallic (r) smoothness (a)", 2D) = "white" {} @@ -41,7 +41,7 @@ Shader "yum_food/3ner" //ifex _Details_Enabled==0 [HideInInspector] m_start_Details("Details", Float) = 0 [ThryToggle(_DETAILS)] _Details_Enabled("Enable", Float) = 0 - _DetailNormalMap("Normal", 2D) = "bump" {} + [Normal] _DetailNormalMap("Normal", 2D) = "bump" {} _DetailNormalMapScale("Normal Scale", Float) = 1 _DetailMask("Mask", 2D) = "white" {} [IntRange] _Details_UV_Channel("UV Channel", Range(0, 3)) = 0 @@ -52,9 +52,32 @@ Shader "yum_food/3ner" [HideInInspector] m_start_Ambient_Occlusion("Ambient Occlusion", Float) = 0 [ThryToggle(_AMBIENT_OCCLUSION)] _Ambient_Occlusion_Enabled("Enable", Float) = 0 _OcclusionMap("Ambient Occlusion", 2D) = "white" {} - _OcclusionStrength("Occlusion Strength", Range(0, 1)) = 1 + _OcclusionStrength("Occlusion Strength", Range(0, 10)) = 1 [HideInInspector] m_end_Ambient_Occlusion("Ambient Occlusion", Float) = 0 //endex + + //ifex _Bent_Normals_Enabled==0 + [HideInInspector] m_start_Bent_Normals("Bent Normals", Float) = 0 + [ThryToggle(_BENT_NORMALS)] _Bent_Normals_Enabled("Enable", Float) = 0 + [Normal] _Bent_Normals_Map("Bent Normals", 2D) = "white" {} + _Bent_Normals_Strength("Bent Normals Strength", Range(0, 10)) = 1 + [HideInInspector] m_end_Bent_Normals("Bent Normals", Float) = 0 + //endex + + //ifex _Clearcoat_Enabled==0 + [HideInInspector] m_start_Clearcoat("Clearcoat", Float) = 0 + [ThryToggle(_CLEARCOAT)] _Clearcoat_Enabled("Enable", Float) = 0 + _Clearcoat_Strength("Strength", Range(0, 1)) = 0 + _Clearcoat_Roughness("Roughness", Range(0, 1)) = 0 + + //ifex _Clearcoat_Mask_Enabled==0 + [HideInInspector] m_start_Clearcoat_Mask("Clearcoat Mask", Float) = 0 + [ThryToggle(_CLEARCOAT_MASK)] _Clearcoat_Mask_Enabled("Enable", Float) = 0 + _Clearcoat_Mask("Mask", 2D) = "white" {} + [HideInInspector] m_end_Clearcoat_Mask("Clearcoat Mask", Float) = 0 + //endex + [HideInInspector] m_end_Clearcoat("Clearcoat", Float) = 0 + //endex [HideInInspector] m_end_Main("Main", Float) = 0 [HideInInspector] m_start_Gimmicks("Gimmicks", Float) = 0 @@ -70,7 +93,7 @@ Shader "yum_food/3ner" //endex [HideInInspector] m_end_Geometry_Shader("Geometry Shader", Float) = 0 //endex - + //ifex _Ray_Marching_Enabled==0 [HideInInspector] m_start_Ray_Marching("Ray Marching", Float) = 0 [ThryToggle(_RAY_MARCHING)] _Ray_Marching_Enabled("Enable", Float) = 0 @@ -483,21 +506,6 @@ Shader "yum_food/3ner" _BRDF_Specular_Min_Denom("Specular minimum denominator", Float) = 0.000001 _Specular_AA_Variance("Specular AA Variance", Float) = 0.15 _Specular_AA_Threshold("Specular AA Threshold", Float) = 0.25 - - //ifex _Clearcoat_Enabled==0 - [HideInInspector] m_start_Clearcoat("Clearcoat", Float) = 0 - [ThryToggle(_CLEARCOAT)] _Clearcoat_Enabled("Enable", Float) = 0 - _Clearcoat_Strength("Strength", Range(0, 1)) = 0 - _Clearcoat_Roughness("Roughness", Range(0, 1)) = 0 - - //ifex _Clearcoat_Mask_Enabled==0 - [HideInInspector] m_start_Clearcoat_Mask("Clearcoat Mask", Float) = 0 - [ThryToggle(_CLEARCOAT_MASK)] _Clearcoat_Mask_Enabled("Enable", Float) = 0 - _Clearcoat_Mask("Mask", 2D) = "white" {} - [HideInInspector] m_end_Clearcoat_Mask("Clearcoat Mask", Float) = 0 - //endex - [HideInInspector] m_end_Clearcoat("Clearcoat", Float) = 0 - //endex [HideInInspector] m_end_BRDF("BRDF", Float) = 0 [HideInInspector] m_start_blending ("Blending--{button_help:{text:Tutorial,action:{type:URL,data:https://www.poiyomi.com/rendering/blending},hover:Documentation}}", Float) = 0 diff --git a/features.cginc b/features.cginc index 9291f05..e2c6ccf 100755 --- a/features.cginc +++ b/features.cginc @@ -19,6 +19,10 @@ #pragma shader_feature_local _AMBIENT_OCCLUSION //endex +//ifex _Bent_Normals_Enabled==0 +#pragma shader_feature_local _BENT_NORMALS +//endex + //ifex _Clearcoat_Enabled==0 #pragma shader_feature_local _CLEARCOAT //endex diff --git a/globals.cginc b/globals.cginc index 6bfaace..0de8c5e 100755 --- a/globals.cginc +++ b/globals.cginc @@ -38,6 +38,12 @@ float4 _OcclusionMap_ST; float _OcclusionStrength; #endif // __AMBIENT_OCCLUSION +#if defined(_BENT_NORMALS) +texture2D _Bent_Normals_Map; +float4 _Bent_Normals_Map_ST; +float _Bent_Normals_Strength; +#endif // _BENT_NORMALS + #if defined(_MARBLE) texture2D _Marble_U_Ramp; texture2D _Marble_V_Ramp; diff --git a/lighting.cginc b/lighting.cginc index 28ac25b..d5e0be8 100755 --- a/lighting.cginc +++ b/lighting.cginc @@ -178,8 +178,7 @@ float4 getIndirectDiffuse(v2f i, Pbr pbr, inout LightIndirect light) { #endif #if defined(_AMBIENT_OCCLUSION) - diffuse.xyz *= lerp(1, _OcclusionMap.Sample(bilinear_repeat_s, i.uv01.xy), 1); - //diffuse.xyz = _OcclusionMap.Sample(bilinear_repeat_s, i.uv01.xy); + diffuse.xyz *= saturate(lerp(1, _OcclusionMap.Sample(bilinear_repeat_s, i.uv01.xy), _OcclusionStrength)); #endif return diffuse; @@ -133,7 +133,7 @@ float normalFiltering(float3 normal, float perceptual_roughness) { float kappa = 0.18; roughness = roughness + min(2 * Sigma, kappa); - return sqrt(roughness); + return saturate(sqrt(roughness)); } void propagateSmoothness(inout Pbr pbr) { |
