OceanDisplacement.scrapeh 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. //////////////////////////////////////////////////////////////////////////////
  2. // ©2007 Electronic Arts Inc
  3. //
  4. // Ocean wave displacement scrape script
  5. //////////////////////////////////////////////////////////////////////////////
  6. #ifndef SCRAPE_SCRIPT_OCEAN_DISPLACEMENT_SCRAPEH
  7. #define SCRAPE_SCRIPT_OCEAN_DISPLACEMENT_SCRAPEH
  8. //
  9. // Ocean displacement, ie wave simulation code
  10. //
  11. //#define DISABLE_OCEAN_DISPLACEMENT
  12. #if !defined(DISABLE_OCEAN_DISPLACEMENT)
  13. #if defined(EA_PLATFORM_WINDOWS)
  14. #define OceanDisplacementSize 1024
  15. #define OceanDisplacementFormat A16B16G16R16F
  16. #elif defined(EA_PLATFORM_XENON)
  17. #define OceanDisplacementSize 512
  18. #define OceanDisplacementFormat A8R8G8B8
  19. #endif
  20. var texture OceanDisplacementTexture OceanDisplacementSize OceanDisplacementSize OceanDisplacementFormat
  21. #if defined(EA_PLATFORM_WINDOWS)
  22. #define OceanDisplacementRenderTarget OceanDisplacementTexture
  23. // On Windows we need to render target textures to do a ping pong post effects update
  24. var texture OceanDisplacementTexture2 OceanDisplacementSize OceanDisplacementSize OceanDisplacementFormat
  25. #define OceanDisplacementRenderTarget2 OceanDisplacementTexture2
  26. #elif defined(EA_PLATFORM_XENON)
  27. // On Xenon we just use one render target and a texture to ping pong between
  28. var surface OceanDisplacementRenderTarget edram OceanDisplacementSize OceanDisplacementSize OceanDisplacementFormat
  29. #endif
  30. var shader OceanDisplacementShader OceanDisplacement.fx
  31. var camera OceanDisplacement
  32. #endif//!defined(DISABLE_OCEAN_DISPLACEMENT)
  33. var texture StaticOceanDisplacementTexture Octave3_NRM
  34. proc updateOceanDisplacement
  35. settexture Water StaticDisplacementTexture StaticOceanDisplacementTexture
  36. #if !defined(DISABLE_OCEAN_DISPLACEMENT)
  37. if Water IsReflectionVisible
  38. beginevent UpdateWaterDisplacement
  39. setfloat Water DisplacementTextureSize OceanDisplacementSize
  40. settarget 0 OceanDisplacementRenderTarget
  41. setdepth NULL
  42. #if defined(EA_PLATFORM_XENON) // scale range on xenon
  43. setclearcolor 0.5 0.5 0 0
  44. #else
  45. setclearcolor 0 0 0 0
  46. #endif
  47. clearcolor
  48. setcamera OceanDisplacement
  49. renderWaterDisplacement
  50. renderbin OceanDisplacement
  51. renderbin OceanDisplacement BinCommand_RenderParticles
  52. setshader OceanDisplacementShader StaticDisplacement
  53. renderquad
  54. settexture Water DisplacementTexture OceanDisplacementTexture
  55. #if defined(EA_PLATFORM_XENON)
  56. resolve OceanDisplacementTexture
  57. #elif defined(EA_PLATFORM_WINDOWS)
  58. settarget 0 OceanDisplacementRenderTarget2
  59. #endif
  60. setshader OceanDisplacementShader BlurU
  61. renderquad
  62. #if defined(EA_PLATFORM_XENON)
  63. resolve OceanDisplacementTexture
  64. #elif defined(EA_PLATFORM_WINDOWS)
  65. settexture Water DisplacementTexture OceanDisplacementTexture2
  66. settarget 0 OceanDisplacementRenderTarget
  67. #endif
  68. setshader OceanDisplacementShader BlurV
  69. renderquad
  70. #if defined(EA_PLATFORM_XENON)
  71. resolve OceanDisplacementTexture
  72. #elif defined(EA_PLATFORM_WINDOWS)
  73. settexture Water DisplacementTexture OceanDisplacementTexture
  74. #endif
  75. endevent UpdateWaterDisplacement
  76. endif
  77. #endif//!defined(DISABLE_OCEAN_DISPLACEMENT)
  78. endproc
  79. #endif // SCRAPE_SCRIPT_OCEAN_DISPLACEMENT_SCRAPEH