ShadowMap_win32.fxh 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. //////////////////////////////////////////////////////////////////////////////
  2. // ©2008 Electronic Arts Inc
  3. //
  4. // Shadowmap header for pc specific implementation
  5. //////////////////////////////////////////////////////////////////////////////
  6. #ifndef _SHADOWMAP_WIN32_FXH_
  7. #define _SHADOWMAP_WIN32_FXH_
  8. // ----------------------------------------------------------------------------
  9. // Shadow mapping variables
  10. // ----------------------------------------------------------------------------
  11. float4 Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize
  12. <
  13. string UIWidget = "None";
  14. string SasBindAddress = "Sas.Shadow[0].Zero_Zero_OneOverMapSize_OneOverMapSize";
  15. >;
  16. //
  17. // Shadow mapping look-up function. Similar to DXSAS prototype.
  18. //
  19. float shadow(sampler2D shadowSampler, float4 shadowTexCoord)
  20. {
  21. float2 t = shadowTexCoord.xy;
  22. float depth = shadowTexCoord.z;
  23. float4 samples = float4(
  24. tex2D(shadowSampler, t).x,
  25. tex2D(shadowSampler, t + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.zx).x,
  26. tex2D(shadowSampler, t + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.yz).x,
  27. tex2D(shadowSampler, t + Shadowmap_Zero_Zero_OneOverMapSize_OneOverMapSize.wz).x);
  28. bool4 bits = (samples - depth >= 0);
  29. return dot(1.0, bits) / 4.0;
  30. }
  31. #endif // #define _SHADOWMAP_WIN32_FXH_