InGame.scrape 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238
  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 PartiallyTransparentWall
  69. renderbin StaticSort5 // Underwater Sorting
  70. if DebugToggle RenderUnderwater.IsEnabled
  71. beginevent RenderUnderwater
  72. // Apply underwater deferred shading, based on screen-depth texture
  73. callproc renderUnderwaterDeferred
  74. // Render transparent objects and particles that should be under water and apply non-deferred underwater-like shading themselves
  75. renderbin Underwater
  76. renderbin Underwater BinCommand_RenderParticles
  77. endevent RenderUnderwater
  78. endif
  79. callproc updateWaterRefraction
  80. renderWater
  81. renderDecals
  82. renderbin Transparent
  83. renderTransparentOutlineObjects
  84. if DebugToggle RenderOutlines.IsEnabled
  85. callproc renderOutlines // render outlines onto the screen
  86. endif
  87. renderBehindBuildingMarkers
  88. callproc renderBinsStaticSort
  89. setbool Particle ReallyRenderSoftParticles true
  90. if DebugToggle RenderParticles.IsEnabled
  91. renderParticles
  92. endif
  93. renderTerrainUI
  94. renderTracers
  95. renderLasers
  96. renderStreams
  97. renderConnectionLines
  98. renderRain
  99. // Fill debug pattern
  100. //setshader PostEffectBloomShader DebugPattern
  101. //renderfullquad
  102. callproc renderPostEffects // PostEffects will change current render target to be FrameBuffer
  103. renderDebugSystems
  104. renderTileFeedback
  105. renderIconLayers
  106. renderUI
  107. renderDebugDisplays
  108. //setshader OceanDisplacementShader DebugDisplayDisplacement
  109. //renderfullquad
  110. endevent UpdateFrameBuffer
  111. endproc
  112. //
  113. // Main entry point for WorldBuilder rendering
  114. //
  115. proc Editor
  116. callproc initCustomTextures
  117. callproc updateFrameRenderTargetToUse
  118. callproc updateShadowTexture
  119. callproc updateWaterReflection
  120. callproc updateDepthMap
  121. beginevent UpdateFrameBuffer
  122. callproc setFrameRenderTarget
  123. callproc setFrameDepthBuffer
  124. setcamera Viewer
  125. visibleobjects Frame
  126. setclearcolor 1 1 1 1
  127. setcleardepth 1.0
  128. clear
  129. // Enable shadow mapping
  130. if Sas ShadowMappingEnabled
  131. settexture Sas Shadow[0].ShadowMap ShadowMapTexture
  132. endif
  133. renderTerrain
  134. renderRoads
  135. // Render cliffs, sea walls, road segments over terrain but below scorch marks
  136. renderbin TerrainLikeGroundObject
  137. renderScorchMarks
  138. // Bridges go above terrain, but below decals
  139. renderbin Bridge
  140. renderProps
  141. renderUnits // includes "renderbin UnitPlayer0" - "renderbin UnitPlayer19"
  142. // Regular unassigned objects
  143. renderbin Solid
  144. renderStructures // includes "renderbin Structure"
  145. renderbin PartiallyTransparentWall
  146. renderbin StaticSort5 // Underwater Sorting
  147. // Apply underwater deferred shading, based on screen-depth texture
  148. callproc renderUnderwaterDeferred
  149. // Render transparent objects that should be under water and apply non-deferred underwater-like shading themselves
  150. renderbin Underwater
  151. callproc updateWaterRefraction
  152. renderWater
  153. renderDecals
  154. renderbin Transparent
  155. callproc renderOutlines // render outlines onto the screen
  156. callproc renderBinsStaticSort
  157. renderTileFeedback
  158. renderEditorObjects
  159. callproc PostEffectBloom
  160. callproc PostEffectLookupTable
  161. endevent UpdateFrameBuffer
  162. endproc