DepthMap.scrapeh 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. //////////////////////////////////////////////////////////////////////////////
  2. // ©2008 Electronic Arts Inc
  3. //
  4. // Scrape script for depth map pass
  5. //////////////////////////////////////////////////////////////////////////////
  6. #ifndef SCRAPE_SCRIPT_DEPTH_MAP_SCRAPEH
  7. #define SCRAPE_SCRIPT_DEPTH_MAP_SCRAPEH
  8. //
  9. // Depth map
  10. //
  11. // This buffer holds the depth information in linear format
  12. var texture DepthTexture $PostEffect.FrameBufferSize.x $PostEffect.FrameBufferSize.y R32F
  13. #if defined(EA_PLATFORM_WINDOWS)
  14. #define DepthRenderTarget DepthTexture
  15. var texture DepthTextureLinear $PostEffect.FrameBufferSize.x $PostEffect.FrameBufferSize.y R32F
  16. #define DepthTextureLinearTarget DepthTextureLinear
  17. #elif defined(EA_PLATFORM_XENON)
  18. var texture ZBufferTexture $PostEffect.FrameBufferSize.x $PostEffect.FrameBufferSize.y D24FS8
  19. var surface DepthRenderTarget edram $PostEffect.FrameBufferSize.x $PostEffect.FrameBufferSize.y R32F
  20. var surfacegroup DepthGroup DepthRenderTarget DepthBuffer
  21. #endif
  22. var shader PostEffectLinearDepthShader PostFX_LinearDepth.fx
  23. // Moved from common because the shadow pass and depth pass render different things.
  24. proc renderDepthCasters
  25. renderTerrain
  26. renderbin TerrainLikeGroundObject
  27. renderbin Bridge
  28. renderProps
  29. beginevent RenderCasters_Units
  30. callproc renderBinsUnit
  31. callproc renderBinsUnitOutline
  32. endevent RenderCasters_Units
  33. renderbin Solid
  34. beginevent RenderCasters_Structures
  35. renderbin Structure
  36. callproc renderBinsStructureOutline
  37. endevent RenderCasters_Structures
  38. renderbin StaticSort5 // Underwater Sorting
  39. callproc renderBinsStaticSort
  40. renderbin Transparent
  41. renderTransparentOutlineObjects
  42. endproc
  43. proc updateDepthMapReally
  44. beginevent UpdateDepthMap
  45. #if defined(EA_PLATFORM_XENON)
  46. settarget 0 NULL
  47. #else
  48. settarget 0 DepthRenderTarget
  49. #endif
  50. setdepth DepthBuffer
  51. beginDepthOverrideTechnique
  52. setclearcolor 1 1 1 1
  53. setcleardepth 1.0
  54. #if defined(EA_PLATFORM_XENON)
  55. clearz
  56. #else
  57. clear
  58. #endif
  59. setcamera Viewer
  60. visibleobjects DepthMap
  61. callproc renderDepthCasters
  62. endDepthOverrideTechnique
  63. setshader PostEffectLinearDepthShader LinearDepth
  64. #if defined(EA_PLATFORM_XENON)
  65. resolve ZBufferTexture depthstencil
  66. settarget 0 DepthRenderTarget
  67. settexture PostEffect DepthBufferTexture ZBufferTexture
  68. renderquad
  69. resolve DepthTexture
  70. settexture WW3D DepthTexture DepthTexture
  71. #else
  72. settarget 0 DepthTextureLinearTarget
  73. settexture PostEffect DepthBufferTexture DepthTexture
  74. renderquad
  75. settexture WW3D DepthTexture DepthTextureLinear
  76. #endif
  77. endevent UpdateDepthMap
  78. endproc
  79. proc updateDepthMap
  80. // Note(s): Depth texture is needed for deferred water shading and soft particles.
  81. if Water IsReflectionVisible
  82. callproc updateDepthMapReally
  83. elif Particle IsSoftParticlesEnabled
  84. callproc updateDepthMapReally
  85. endif
  86. endproc
  87. #endif // SCRAPE_SCRIPT_DEPTH_MAP_SCRAPEH