InGame.scrape 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233
  1. //////////////////////////////////////////////////////////////////////////////
  2. // ©2007 Electronic Arts Inc
  3. //
  4. // Main scene scrape script
  5. //////////////////////////////////////////////////////////////////////////////
  6. var camera Viewer
  7. #include "Common.scrapeh"
  8. #include "Shadow.scrapeh"
  9. #include "PostFX.scrapeh"
  10. #include "DepthMap.scrapeh"
  11. #include "WaterReflection.scrapeh"
  12. #include "OceanDisplacement.scrapeh"
  13. #include "UnderwaterDeferred.scrapeh"
  14. #include "Outlines.scrapeh"
  15. #include "RotateEnvironmentMap.scrapeh"
  16. #if defined(EA_PLATFORM_XENON)
  17. #include "MSAA.scrapeh"
  18. #endif
  19. //
  20. // InGame
  21. //
  22. proc InGame
  23. callproc initCustomTextures
  24. callproc updateFrameRenderTargetToUse
  25. #if defined(EA_PLATFORM_XENON)
  26. // As 99% of our shaders are pixel heavy give 'pixel shaders the most GPR's.
  27. // 3-4ms GPU time saving.
  28. setgpr 48 80
  29. #endif
  30. callproc updateShadowTexture
  31. GPUFLUSH
  32. callproc doRotateEnvironmentMaps
  33. callproc updateWaterReflection
  34. GPUFLUSH
  35. callproc updateOceanDisplacement
  36. GPUFLUSH
  37. callproc updateDepthMap
  38. GPUFLUSH
  39. beginevent UpdateFrameBuffer
  40. callproc setFrameRenderTarget
  41. callproc setFrameDepthBuffer
  42. setcamera Viewer
  43. visibleobjects Frame
  44. setclearcolor 0 0 0 1
  45. setcleardepth 1.0
  46. #if defined(EA_PLATFORM_XENON)
  47. callproc beginMSAATiling
  48. #else
  49. clear
  50. #endif
  51. // Enable shadow mapping
  52. if Sas ShadowMappingEnabled
  53. settexture Sas Shadow[0].ShadowMap ShadowMapTexture
  54. endif
  55. renderTerrain
  56. renderRoads
  57. // Render cliffs, sea walls, road segments over terrain but below scorch marks
  58. renderbin TerrainLikeGroundObject
  59. renderScorchMarks
  60. renderTerrainTracks
  61. // Bridges go above terrain, but below decals
  62. renderbin Bridge
  63. renderProps
  64. renderUnits // includes "renderbin UnitPlayer0" - "renderbin UnitPlayer19"
  65. // Regular unassigned objects
  66. renderbin Solid
  67. renderStructures // includes "renderbin Structure"
  68. renderbin StaticSort5 // Underwater Sorting
  69. if DebugToggle RenderUnderwater.IsEnabled
  70. beginevent RenderUnderwater
  71. // Apply underwater deferred shading, based on screen-depth texture
  72. callproc renderUnderwaterDeferred
  73. // Render transparent objects and particles that should be under water and apply non-deferred underwater-like shading themselves
  74. renderbin Underwater
  75. renderbin Underwater BinCommand_RenderParticles
  76. endevent RenderUnderwater
  77. endif
  78. callproc updateWaterRefraction
  79. renderWater
  80. renderDecals
  81. renderbin Transparent
  82. renderTransparentOutlineObjects
  83. if DebugToggle RenderOutlines.IsEnabled
  84. callproc renderOutlines // render outlines onto the screen
  85. endif
  86. renderBehindBuildingMarkers
  87. callproc renderBinsStaticSort
  88. setbool Particle ReallyRenderSoftParticles true
  89. if DebugToggle RenderParticles.IsEnabled
  90. renderParticles
  91. endif
  92. renderTerrainUI
  93. renderTracers
  94. renderLasers
  95. renderConnectionLines
  96. renderRain
  97. // Fill debug pattern
  98. //setshader PostEffectBloomShader DebugPattern
  99. //renderfullquad
  100. callproc renderPostEffects // PostEffects will change current render target to be FrameBuffer
  101. renderDebugSystems
  102. renderTileFeedback
  103. renderIconLayers
  104. renderUI
  105. renderDebugDisplays
  106. //setshader OceanDisplacementShader DebugDisplayDisplacement
  107. //renderfullquad
  108. endevent UpdateFrameBuffer
  109. endproc
  110. //
  111. // Main entry point for WorldBuilder rendering
  112. //
  113. proc Editor
  114. callproc initCustomTextures
  115. callproc updateFrameRenderTargetToUse
  116. callproc updateShadowTexture
  117. callproc updateWaterReflection
  118. callproc updateDepthMap
  119. beginevent UpdateFrameBuffer
  120. callproc setFrameRenderTarget
  121. callproc setFrameDepthBuffer
  122. setcamera Viewer
  123. visibleobjects Frame
  124. setclearcolor 1 1 1 1
  125. setcleardepth 1.0
  126. clear
  127. // Enable shadow mapping
  128. if Sas ShadowMappingEnabled
  129. settexture Sas Shadow[0].ShadowMap ShadowMapTexture
  130. endif
  131. renderTerrain
  132. renderRoads
  133. // Render cliffs, sea walls, road segments over terrain but below scorch marks
  134. renderbin TerrainLikeGroundObject
  135. renderScorchMarks
  136. // Bridges go above terrain, but below decals
  137. renderbin Bridge
  138. renderProps
  139. renderUnits // includes "renderbin UnitPlayer0" - "renderbin UnitPlayer19"
  140. // Regular unassigned objects
  141. renderbin Solid
  142. renderStructures // includes "renderbin Structure"
  143. renderbin StaticSort5 // Underwater Sorting
  144. // Apply underwater deferred shading, based on screen-depth texture
  145. callproc renderUnderwaterDeferred
  146. // Render transparent objects that should be under water and apply non-deferred underwater-like shading themselves
  147. renderbin Underwater
  148. callproc updateWaterRefraction
  149. renderWater
  150. renderDecals
  151. renderbin Transparent
  152. callproc renderOutlines // render outlines onto the screen
  153. callproc renderBinsStaticSort
  154. renderTileFeedback
  155. renderEditorObjects
  156. callproc PostEffectBloom
  157. callproc PostEffectLookupTable
  158. endevent UpdateFrameBuffer
  159. endproc