diff options
author | pryazha <pryadeiniv@mail.ru> | 2025-07-02 08:46:23 -0700 |
---|---|---|
committer | pryazha <pryadeiniv@mail.ru> | 2025-07-02 08:46:23 -0700 |
commit | 8263edd59284aba390aca011d25b79efecef4c48 (patch) | |
tree | 6346e2afaaabd32156601cafaf20d4ee813befaf /Assets/Samples/XR Interaction Toolkit/3.1.2/Starter Assets/TunnelingVignette/TunnelingVignette.shader |
Diffstat (limited to 'Assets/Samples/XR Interaction Toolkit/3.1.2/Starter Assets/TunnelingVignette/TunnelingVignette.shader')
-rw-r--r-- | Assets/Samples/XR Interaction Toolkit/3.1.2/Starter Assets/TunnelingVignette/TunnelingVignette.shader | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/Assets/Samples/XR Interaction Toolkit/3.1.2/Starter Assets/TunnelingVignette/TunnelingVignette.shader b/Assets/Samples/XR Interaction Toolkit/3.1.2/Starter Assets/TunnelingVignette/TunnelingVignette.shader new file mode 100644 index 0000000..75cb88e --- /dev/null +++ b/Assets/Samples/XR Interaction Toolkit/3.1.2/Starter Assets/TunnelingVignette/TunnelingVignette.shader @@ -0,0 +1,78 @@ +Shader "VR/TunnelingVignette" +{ + Properties + { + _ApertureSize("Aperture Size", Range(0, 1)) = 0.7 + _FeatheringEffect("Feathering Effect", Range(0, 1)) = 0.2 + _VignetteColor("Vignette Color", Color) = (0, 0, 0, 1) + _VignetteColorBlend("Vignette Color Blend", Color) = (0, 0, 0, 1) + } + SubShader + { + Tags { "Queue" = "Transparent+5" "IgnoreProjector" = "True" "RenderType" = "Transparent" } + LOD 100 + + Pass + { + Blend SrcAlpha OneMinusSrcAlpha + ZTest Always + ZWrite Off + + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + + #include "UnityCG.cginc" + + struct appdata + { + float4 vertex : POSITION; + float2 uv : TEXCOORD0; + + UNITY_VERTEX_INPUT_INSTANCE_ID + }; + + struct v2f + { + float2 uv : TEXCOORD0; + float4 vertex : SV_POSITION; + + UNITY_VERTEX_OUTPUT_STEREO + }; + + float4 _VignetteColor; + float4 _VignetteColorBlend; + float _ApertureSize; + float _FeatheringEffect; + + v2f vert(appdata v) + { + v2f o; + + UNITY_SETUP_INSTANCE_ID(v); + UNITY_INITIALIZE_OUTPUT(v2f, o); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + + o.vertex = UnityObjectToClipPos(v.vertex); + o.uv = v.uv; + return o; + } + + UNITY_DECLARE_SCREENSPACE_TEXTURE(_MainTex); + + fixed4 frag(v2f i) : SV_Target + { + UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i); + + float uvY = i.uv.y; + float alphaMin = (0.5 - sqrt(0.25 - ((_ApertureSize * _ApertureSize) * 0.25))); + float alpha = saturate(((uvY - alphaMin) / (_FeatheringEffect * _FeatheringEffect + 0.0001))); + fixed4 color = lerp(_VignetteColor, _VignetteColorBlend, uvY * 2); + color.w *= alpha; + + return color; + } + ENDCG + } + } +} |