Shader "Hidden/CopyShadowParams" { SubShader { Pass { CGPROGRAM #pragma target 5.0 //#pragma only_renderers d3d11 #pragma vertex vert #pragma fragment frag #include "UnityCG.cginc" struct ShadowParams { float4x4 worldToShadow[4]; float4 shadowSplitSpheres[4]; float4 shadowSplitSqRadii; }; // Hmm, we can't be sure u2 doesn't conflict with other effects. RWStructuredBuffer _ShadowParams : register(u2); float4 vert () : SV_POSITION { for (int i = 0; i < 4; i++) { _ShadowParams[0].worldToShadow[i] = unity_WorldToShadow[i]; _ShadowParams[0].shadowSplitSpheres[i] = unity_ShadowSplitSpheres[i]; } _ShadowParams[0].shadowSplitSqRadii = unity_ShadowSplitSqRadii; return float4(0, 0, 0, 1); } fixed4 frag () : SV_Target { return 0; } ENDCG } } }