summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoryum <yum.food.vr@gmail.com>2026-02-23 22:18:48 -0800
committeryum <yum.food.vr@gmail.com>2026-02-23 22:18:48 -0800
commit87e0f98e6d4e2774c08763c94aa21ad68b0b13f9 (patch)
tree059935f359c09e9f52dfb32aba6c906bca7b301c
parent5fa1c0ec5b2b59db3858a7dfe9f4001eeeff8cc9 (diff)
Plumb bent normals
-rwxr-xr-x3ner.shader46
-rwxr-xr-xfeatures.cginc4
-rwxr-xr-xglobals.cginc6
-rwxr-xr-xlighting.cginc3
-rwxr-xr-xpbr.cginc2
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;
diff --git a/pbr.cginc b/pbr.cginc
index 8ec69cb..25d6ece 100755
--- a/pbr.cginc
+++ b/pbr.cginc
@@ -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) {