diff options
author | tylermurphy534 <tylermurphy534@gmail.com> | 2022-11-06 15:12:42 -0500 |
---|---|---|
committer | tylermurphy534 <tylermurphy534@gmail.com> | 2022-11-06 15:12:42 -0500 |
commit | eb84bb298d2b95aec7b2ae12cbf25ac64f25379a (patch) | |
tree | efd616a157df06ab661c6d56651853431ac6b08b /VRCSDK3Worlds/Assets/VRCSDK/Sample Assets/Shaders/Mirror.shader | |
download | unityprojects-eb84bb298d2b95aec7b2ae12cbf25ac64f25379a.tar.gz unityprojects-eb84bb298d2b95aec7b2ae12cbf25ac64f25379a.tar.bz2 unityprojects-eb84bb298d2b95aec7b2ae12cbf25ac64f25379a.zip |
move to self host
Diffstat (limited to 'VRCSDK3Worlds/Assets/VRCSDK/Sample Assets/Shaders/Mirror.shader')
-rw-r--r-- | VRCSDK3Worlds/Assets/VRCSDK/Sample Assets/Shaders/Mirror.shader | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/VRCSDK3Worlds/Assets/VRCSDK/Sample Assets/Shaders/Mirror.shader b/VRCSDK3Worlds/Assets/VRCSDK/Sample Assets/Shaders/Mirror.shader new file mode 100644 index 00000000..4597169c --- /dev/null +++ b/VRCSDK3Worlds/Assets/VRCSDK/Sample Assets/Shaders/Mirror.shader @@ -0,0 +1,73 @@ +// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)' + +Shader "FX/MirrorReflection" +{ + Properties + { + _MainTex("Base (RGB)", 2D) = "white" {} + [HideInInspector] _ReflectionTex0("", 2D) = "white" {} + [HideInInspector] _ReflectionTex1("", 2D) = "white" {} + } + SubShader + { + Tags{ "RenderType" = "Opaque" } + LOD 100 + + Pass + { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + #include "UnityCG.cginc" + #include "UnityInstancing.cginc" + + sampler2D _MainTex; + float4 _MainTex_ST; + + sampler2D _ReflectionTex0; + sampler2D _ReflectionTex1; + + struct appdata + { + float4 vertex : POSITION; + float2 uv : TEXCOORD0; + + UNITY_VERTEX_INPUT_INSTANCE_ID + }; + + struct v2f + { + float2 uv : TEXCOORD0; + float4 refl : TEXCOORD1; + float4 pos : SV_POSITION; + + UNITY_VERTEX_OUTPUT_STEREO + }; + + v2f vert(appdata v) + { + v2f o; + + UNITY_SETUP_INSTANCE_ID(v); + UNITY_INITIALIZE_OUTPUT(v2f, o); + UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); + + o.pos = UnityObjectToClipPos(v.vertex); + o.uv = TRANSFORM_TEX(v.uv, _MainTex); + o.refl = ComputeNonStereoScreenPos(o.pos); + + return o; + } + + half4 frag(v2f i) : SV_Target + { + UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i); + + half4 tex = tex2D(_MainTex, i.uv); + half4 refl = unity_StereoEyeIndex == 0 ? tex2Dproj(_ReflectionTex0, UNITY_PROJ_COORD(i.refl)) : tex2Dproj(_ReflectionTex1, UNITY_PROJ_COORD(i.refl)); + return tex * refl; + } + ENDCG + } + } +} |