Shader "SpatialFramework/Textured Fresnel/Standard" { Properties { _EdgeColor("Edge Color", COLOR) = (1,1,1,1) _Color("Color", COLOR) = (.25,.25,.25,.25) _EdgeData("Edge min, max, S-strength, S-Blend", VECTOR) = (0, 0.85, 0.5, 1) _MainTex("Texture", 2D) = "white" {} } SubShader { // First, we do a stencil like technique of writing depth of the model, // so we don't have any transparent overdraw in subsequent steps Tags{ "RenderType" = "Transparent" "Queue" = "Transparent" } Pass { Tags { "RenderType" = "Transparent" "Queue" = "Transparent" "LightMode" = "UniversalForward" "RenderPipeline" = "UniversalPipeline" } LOD 100 Name "Depth Fill" Blend One One Lighting Off ZTest Less Offset -1, 0 ColorMask 0 CGPROGRAM #pragma vertex vert #pragma fragment fragEmpty #include "UnityCG.cginc" #include "TexturedStableFresnelCommon.cginc" ENDCG } Pass { Tags { "RenderType" = "Transparent" "Queue" = "Transparent" "LightMode" = "Always" } LOD 100 Name "Depth Fill" Blend One One Lighting Off ZWrite Off Offset -1, 0 ColorMask 0 CGPROGRAM #pragma vertex vert #pragma fragment fragEmpty #include "UnityCG.cginc" #include "TexturedStableFresnelCommon.cginc" ENDCG } // Next, fill in with the base and rim color Pass { Tags { "RenderType" = "Transparent" "Queue" = "Transparent" } Name "Fresnel Color" Blend SrcAlpha OneMinusSrcAlpha Lighting Off ZTest LEqual ZWrite Off Offset -1, 0 CGPROGRAM #pragma vertex vert #pragma fragment fragRimShader #include "UnityCG.cginc" #include "TexturedStableFresnelCommon.cginc" ENDCG } } FallBack "Diffuse" }