summaryrefslogtreecommitdiff
path: root/VRCSDK3AvatarsLegacy/Assets/_PoiyomiShaders/Shaders/Includes/CGI_PoiShadowFrag.cginc
diff options
context:
space:
mode:
authortylermurphy534 <tylermurphy534@gmail.com>2022-11-06 15:12:42 -0500
committertylermurphy534 <tylermurphy534@gmail.com>2022-11-06 15:12:42 -0500
commiteb84bb298d2b95aec7b2ae12cbf25ac64f25379a (patch)
treeefd616a157df06ab661c6d56651853431ac6b08b /VRCSDK3AvatarsLegacy/Assets/_PoiyomiShaders/Shaders/Includes/CGI_PoiShadowFrag.cginc
downloadunityprojects-eb84bb298d2b95aec7b2ae12cbf25ac64f25379a.tar.gz
unityprojects-eb84bb298d2b95aec7b2ae12cbf25ac64f25379a.tar.bz2
unityprojects-eb84bb298d2b95aec7b2ae12cbf25ac64f25379a.zip
move to self host
Diffstat (limited to 'VRCSDK3AvatarsLegacy/Assets/_PoiyomiShaders/Shaders/Includes/CGI_PoiShadowFrag.cginc')
-rw-r--r--VRCSDK3AvatarsLegacy/Assets/_PoiyomiShaders/Shaders/Includes/CGI_PoiShadowFrag.cginc95
1 files changed, 95 insertions, 0 deletions
diff --git a/VRCSDK3AvatarsLegacy/Assets/_PoiyomiShaders/Shaders/Includes/CGI_PoiShadowFrag.cginc b/VRCSDK3AvatarsLegacy/Assets/_PoiyomiShaders/Shaders/Includes/CGI_PoiShadowFrag.cginc
new file mode 100644
index 00000000..c4fcb1ed
--- /dev/null
+++ b/VRCSDK3AvatarsLegacy/Assets/_PoiyomiShaders/Shaders/Includes/CGI_PoiShadowFrag.cginc
@@ -0,0 +1,95 @@
+#ifndef SHADOW_FRAG
+ #define SHADOW_FRAG
+
+ float2 _MainDistanceFade;
+ float _ForceOpaque;
+ float _MainShadowClipMod;
+ float2 _AlphaMaskPan;
+ uint _AlphaMaskUV;
+ float _AlphaMod;
+
+ #ifdef TRANSPARENT
+ sampler3D _DitherMaskLOD;
+ #endif
+
+ half4 fragShadowCaster(
+ #if !defined(V2F_SHADOW_CASTER_NOPOS_IS_EMPTY) || defined(UNITY_STANDARD_USE_SHADOW_UVS)
+ V2FShadow i
+ #endif
+ ): SV_Target
+ {
+ _Clip = clamp(_Clip + _MainShadowClipMod, - .001, 1.001);
+ float2 uv[4] = {
+ i.uv, i.uv1, i.uv2, i.uv3,
+ };
+
+ #ifdef POI_MIRROR
+ applyMirrorRenderFrag();
+ #endif
+
+ #if defined(UNITY_STANDARD_USE_SHADOW_UVS)
+
+ half alpha = UNITY_SAMPLE_TEX2D(_MainTex, TRANSFORM_TEX(i.uv, _MainTex)).a;
+
+
+
+ UNITY_BRANCH
+ if (_EnableMirrorTexture)
+ {
+ if(IsInMirror())
+ {
+ alpha = UNITY_SAMPLE_TEX2D_SAMPLER(_MirrorTexture, _MainTex, TRANSFORM_TEX(i.uv, _MirrorTexture)).a;
+ }
+ }
+
+
+ alpha *= smoothstep(_MainDistanceFade.x, _MainDistanceFade.y, distance(i.modelPos, _WorldSpaceCameraPos));
+ half alphaMask = POI2D_PAN(_AlphaMask, uv[_AlphaMaskUV], _AlphaMaskPan);
+ alpha *= alphaMask;
+ alpha *= _Color.a;
+ alpha += _AlphaMod;
+ alpha = saturate(alpha);
+
+ #ifdef OPAQUE
+ alpha = 1;
+ #endif
+
+ clip(alpha - 0.01);
+
+ #if defined(CUTOUT)
+ applyShadowDithering(alpha, calcScreenUVs(i.grabPos).xy);
+ #endif
+
+ #ifdef POI_DISSOLVE
+ alpha *= calculateShadowDissolveAlpha(i.worldPos, i.localPos, i.uv);
+ #endif
+
+ #ifdef POI_RANDOM
+ alpha *= i.angleAlpha;
+ #endif
+
+ #if defined(CUTOUT) || defined(TRANSPARENT)
+ #ifndef SIMPLE
+ applySpawnInShadow(uv[0], i.localPos);
+ #endif
+ #if defined(POI_FLIPBOOK)
+ alpha *= applyFlipbookAlphaToShadow(uv[_FlipbookTexArrayUV]);
+ #endif
+ #endif
+
+ #if defined(CUTOUT)
+ #ifndef SIMPLE
+ clip(alpha - _Clip);
+ #endif
+ #endif
+
+ #if defined(TRANSPARENT)
+ float dither = tex3D(_DitherMaskLOD, float3(i.pos.xy * .25, alpha * 0.9375)).a;
+ clip(dither - 0.01);
+ #endif
+
+ #endif
+ SHADOW_CASTER_FRAGMENT(i)
+ }
+
+ #endif \ No newline at end of file