Shadow.scrapeh 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. //////////////////////////////////////////////////////////////////////////////
  2. // ©2007 Electronic Arts Inc
  3. //
  4. // Scrape script for Shadow Mapping
  5. //////////////////////////////////////////////////////////////////////////////
  6. #ifndef SCRAPE_SCRIPT_SHADOW_SCRAPEH
  7. #define SCRAPE_SCRIPT_SHADOW_SCRAPEH
  8. //
  9. // ShadowMapping
  10. //
  11. // Shadow mapping
  12. var texture ShadowMapTexture $Sas.Shadow[0].MapSize $Sas.Shadow[0].MapSize R32F
  13. #if defined(EA_PLATFORM_WINDOWS)
  14. #define ShadowMapRenderTarget ShadowMapTexture
  15. var surface ShadowMapDepthBuffer edramdepth $Sas.Shadow[0].MapSize $Sas.Shadow[0].MapSize D24S8
  16. #elif defined(EA_PLATFORM_XENON)
  17. var surface ShadowMapRenderTarget edram $Sas.Shadow[0].MapSize $Sas.Shadow[0].MapSize R32F
  18. var surface ShadowMapDepthBuffer edramdepth $Sas.Shadow[0].MapSize $Sas.Shadow[0].MapSize D24FS8
  19. var surfacegroup ShadowMapGroup ShadowMapRenderTarget ShadowMapDepthBuffer
  20. #endif
  21. var camera ShadowMap
  22. // Moved from common because the shadow pass and depth pass render different things.
  23. proc renderShadowCasters
  24. if DebugToggle BaselineRendering.IsEnabled
  25. if DebugToggle TerrainCaster.IsEnabled
  26. renderTerrain
  27. endif
  28. endif
  29. // Render cliffs, sea walls, road segments over terrain but below scorch marks
  30. renderbin TerrainLikeGroundObject
  31. renderbin Bridge
  32. if DebugToggle BaselineRendering.IsEnabled
  33. renderProps
  34. endif
  35. beginevent RenderCasters_Units
  36. callproc renderBinsUnit
  37. callproc renderBinsUnitOutline
  38. endevent RenderCasters_Units
  39. renderbin Solid
  40. if DebugToggle StructureCaster.IsEnabled
  41. beginevent RenderCasters_Structures
  42. renderbin Structure
  43. callproc renderBinsStructureOutline
  44. endevent RenderCasters_Structures
  45. endif
  46. renderbin StaticSort5 // Underwater Sorting
  47. callproc renderBinsStaticSort
  48. renderbin Transparent
  49. renderTransparentOutlineObjects
  50. endproc
  51. proc updateShadowTexture
  52. if Sas ShadowMappingEnabled
  53. beginevent UpdateShadowMap
  54. settarget 0 ShadowMapRenderTarget
  55. setdepth ShadowMapDepthBuffer
  56. shadowMap.beginUpdate
  57. beginShadowOverrideTechnique
  58. setclearcolor 1 1 1 1
  59. setcleardepth 1.0
  60. clear
  61. setcamera ShadowMap
  62. visibleobjects ShadowMap
  63. callproc renderShadowCasters
  64. endShadowOverrideTechnique
  65. shadowMap.endUpdate
  66. #if defined(EA_PLATFORM_XENON)
  67. resolve ShadowMapTexture
  68. #endif
  69. endevent UpdateShadowMap
  70. endif // Sas ShadowMappingEnabled
  71. endproc
  72. #endif // SCRAPE_SCRIPT_SHADOW_SCRAPEH