DepthMap.scrapeh 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  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 PartiallyTransparentWall
  39. renderbin StaticSort5 // Underwater Sorting
  40. callproc renderBinsStaticSort
  41. renderbin Transparent
  42. renderTransparentOutlineObjects
  43. endproc
  44. proc updateDepthMapReally
  45. beginevent UpdateDepthMap
  46. #if defined(EA_PLATFORM_XENON)
  47. settarget 0 NULL
  48. #else
  49. settarget 0 DepthRenderTarget
  50. #endif
  51. setdepth DepthBuffer
  52. beginDepthOverrideTechnique
  53. setclearcolor 1 1 1 1
  54. setcleardepth 1.0
  55. #if defined(EA_PLATFORM_XENON)
  56. clearz
  57. #else
  58. clear
  59. #endif
  60. setcamera Viewer
  61. visibleobjects DepthMap
  62. callproc renderDepthCasters
  63. endDepthOverrideTechnique
  64. setshader PostEffectLinearDepthShader LinearDepth
  65. #if defined(EA_PLATFORM_XENON)
  66. resolve ZBufferTexture depthstencil
  67. settarget 0 DepthRenderTarget
  68. settexture PostEffect DepthBufferTexture ZBufferTexture
  69. renderquad
  70. resolve DepthTexture
  71. settexture WW3D DepthTexture DepthTexture
  72. #else
  73. settarget 0 DepthTextureLinearTarget
  74. settexture PostEffect DepthBufferTexture DepthTexture
  75. renderquad
  76. settexture WW3D DepthTexture DepthTextureLinear
  77. #endif
  78. endevent UpdateDepthMap
  79. endproc
  80. proc updateDepthMap
  81. // Note(s): Depth texture is needed for deferred water shading and soft particles.
  82. if Water IsReflectionVisible
  83. callproc updateDepthMapReally
  84. elif Particle IsSoftParticlesEnabled
  85. callproc updateDepthMapReally
  86. endif
  87. endproc
  88. #endif // SCRAPE_SCRIPT_DEPTH_MAP_SCRAPEH