Search Unity

Cascades Unity 5.5

Discussion in 'Shaders' started by Avol, Jan 27, 2017.

  1. Avol

    Avol

    Joined:
    May 27, 2016
    Posts:
    95
    Hi there,
    So I've been using this code for cascade calculation in my compute shader:

    Code (CSharp):
    1. #if defined (SHADOWS_SPLIT_SPHERES)
    2. #define SHADOW_COLLECTOR_FRAGMENT(i) \
    3.     float3 fromCenter0 = i._WorldPosViewZ.xyz - unity_ShadowSplitSpheres[0].xyz; \
    4.     float3 fromCenter1 = i._WorldPosViewZ.xyz - unity_ShadowSplitSpheres[1].xyz; \
    5.     float3 fromCenter2 = i._WorldPosViewZ.xyz - unity_ShadowSplitSpheres[2].xyz; \
    6.     float3 fromCenter3 = i._WorldPosViewZ.xyz - unity_ShadowSplitSpheres[3].xyz; \
    7.     float4 distances2 = float4(dot(fromCenter0,fromCenter0), dot(fromCenter1,fromCenter1), dot(fromCenter2,fromCenter2), dot(fromCenter3,fromCenter3)); \
    8.     float4 cascadeWeights = float4(distances2 < unity_ShadowSplitSqRadii); \
    9.     cascadeWeights.yzw = saturate(cascadeWeights.yzw - cascadeWeights.xyz); \
    10.     float sphereDist = distance(i._WorldPosViewZ.xyz, unity_ShadowFadeCenterAndType.xyz); \
    11.     float shadowFade = saturate(sphereDist * _LightShadowData.z + _LightShadowData.w); \
    12.     COMPUTE_SHADOW_COLLECTOR_SHADOW(i, cascadeWeights, shadowFade)
    13. #else
    14. #define SHADOW_COLLECTOR_FRAGMENT(i) \
    15.     float4 viewZ = i._WorldPosViewZ.w; \
    16.     float4 zNear = float4( viewZ >= _LightSplitsNear ); \
    17.     float4 zFar = float4( viewZ < _LightSplitsFar ); \
    18.     float4 cascadeWeights = zNear * zFar; \
    19.     float shadowFade = saturate(i._WorldPosViewZ.w * _LightShadowData.z + _LightShadowData.w); \
    20.     COMPUTE_SHADOW_COLLECTOR_SHADOW(i, cascadeWeights, shadowFade)
    21. #endif
    It worked just fine in unity 5.4 even though it was stated that it's deprecated, but buggs out on 5.5. What has changed so this code doesn't do the trick anymore? Is there a non deprecated version of this somewhere? Cannot find it.
     
  2. Avol

    Avol

    Joined:
    May 27, 2016
    Posts:
    95
    Nvm, found the answer in Internal-ScreenSpaceShadows.shader