VR4RoboticArm2/VR4RoboticArm/Library/PackageCache/com.meta.xr.sdk.core/Shaders/OVRVignette.shader
IonutMocanu d7aba243a2 Main
2025-09-08 11:04:02 +03:00

84 lines
2.3 KiB
GLSL

Shader "Oculus/OVRVignette"
{
Properties
{
_Color("Color", Color) = (0,0,0,0)
[Enum(UnityEngine.Rendering.BlendMode)]_BlendSrc ("Blend Source", Int) = 1
[Enum(UnityEngine.Rendering.BlendMode)]_BlendDst ("Blend Destination", Int) = 0
[Toggle]_ZWrite ("Z Write", Int) = 0
_StencilRef ("Stencil Ref", Int) = 0
[Enum(UnityEngine.Rendering.StencilOp)]_StencilOp ("Stencil Op", Int) = 0
_ColorMask ("Color Mask", Int) = 15
}
SubShader
{
Tags { "IgnoreProjector" = "True" }
Pass
{
Blend [_BlendSrc] [_BlendDst]
ZTest Always
ZWrite [_ZWrite]
Cull Off
ColorMask [_ColorMask]
Stencil
{
Ref [_StencilRef]
Pass [_StencilOp]
}
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma multi_compile _ QUADRATIC_FALLOFF
#pragma multi_compile_instancing
#include "UnityCG.cginc"
struct appdata
{
float4 vertex : POSITION;
float2 uv : TEXCOORD0;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct v2f
{
float4 vertex : SV_POSITION;
half4 color : COLOR;
UNITY_VERTEX_OUTPUT_STEREO
};
float4 _ScaleAndOffset0[2];
float4 _ScaleAndOffset1[2];
float4 _Color;
v2f vert (appdata v)
{
v2f o;
UNITY_SETUP_INSTANCE_ID(v);
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
float4 scaleAndOffset = lerp(_ScaleAndOffset0[unity_StereoEyeIndex], _ScaleAndOffset1[unity_StereoEyeIndex], v.uv.x);
o.vertex = float4(scaleAndOffset.zw + v.vertex.xy * scaleAndOffset.xy, UNITY_NEAR_CLIP_VALUE, 1);
o.color.rgb = _Color.rgb;
o.color.a = v.uv.y;
return o;
}
fixed4 frag (v2f i) : SV_Target
{
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);
#if QUADRATIC_FALLOFF
i.color.a *= i.color.a;
#endif
return i.color;
}
ENDCG
}
}
}