static-method-regression.azsl 645 B

12345678910111213141516171819202122
  1. class DirectionalLightShadow
  2. {
  3. static void GetShadowCoords(
  4. uint lightIndex,
  5. float3 worldPosition,
  6. out float3 shadowCoords[4]);
  7. };
  8. void DirectionalLightShadow::GetShadowCoords(
  9. uint lightIndex,
  10. float3 worldPosition,
  11. out float3 shadowCoords[4])
  12. {
  13. const float4x4 depthBiasMatrices[4];
  14. for (uint index = 0; index < 4; ++index)
  15. {
  16. const float4x4 depthBiasMatrix = depthBiasMatrices[index];
  17. const float4 shadowCoordHomogeneous = mul(depthBiasMatrix,
  18. float4(worldPosition, 1.));
  19. shadowCoords[index] = shadowCoordHomogeneous.xyz / shadowCoordHomogeneous.w;
  20. }
  21. }