Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- uint numCascades = asuint(Lights[i].data1.x);
- [branch] if (numCascades > 0)
- {
- float4 positionProj = float4(0.0f, 0.0f, 0.0f, 0.0f);
- [flatten] if (posz < Lights[i].data4[0])
- {
- positionProj = ShadowMap_ProjectionCoord(ShadowAtlas[asuint(Lights[i].data2[0])].shadowMatrix, positionWS, dirLight.offset, ShadowAtlas[asuint(Lights[i].data2[0])].size, ShadowAtlas[asuint(Lights[i].data2[0])].offset, false, 1.0f, 0.0f);
- shadowMask *= ShadowMap_Naive(ShadowMap, PointSampler, positionProj.xyz);
- cascadeMul = float3(1.0f, 0.0f, 0.0f);
- }
- else if (numCascades > 1)
- {
- [flatten] if (posz < Lights[i].data4[1])
- {
- positionProj = ShadowMap_ProjectionCoord(ShadowAtlas[asuint(Lights[i].data2[1])].shadowMatrix, positionWS, dirLight.offset, ShadowAtlas[asuint(Lights[i].data2[1])].size, ShadowAtlas[asuint(Lights[i].data2[1])].offset, false, 1.0f, 0.0f);
- shadowMask *= ShadowMap_Naive(ShadowMap, PointSampler, positionProj.xyz);
- cascadeMul = float3(0.0f, 1.0f, 0.0f);
- }
- else if (numCascades > 2)
- {
- [flatten] if (posz < Lights[i].data4[2])
- {
- positionProj = ShadowMap_ProjectionCoord(ShadowAtlas[asuint(Lights[i].data2[2])].shadowMatrix, positionWS, dirLight.offset, ShadowAtlas[asuint(Lights[i].data2[2])].size, ShadowAtlas[asuint(Lights[i].data2[2])].offset, false, 1.0f, 0.0f);
- shadowMask *= ShadowMap_Naive(ShadowMap, PointSampler, positionProj.xyz);
- cascadeMul = float3(0.0f, 0.0f, 1.0f);
- }
- else if (numCascades > 3)
- {
- [flatten] if (posz < Lights[i].data4[3])
- {
- positionProj = ShadowMap_ProjectionCoord(ShadowAtlas[asuint(Lights[i].data2[3])].shadowMatrix, positionWS, dirLight.offset, ShadowAtlas[asuint(Lights[i].data2[3])].size, ShadowAtlas[asuint(Lights[i].data2[3])].offset, false, 1.0f, 0.0f);
- shadowMask *= ShadowMap_Naive(ShadowMap, PointSampler, positionProj.xyz);
- cascadeMul = float3(1.0f, 1.0f, 0.0f);
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement