/seascape

An implementation of Jerry Tessendorf's real-time ocean simulation techniques in WebGL.

Primary LanguageJavaScript

seascape

An implementation of Jerry Tessendorf's real-time ocean simulation techniques in WebGL.

See the currently-running version

Here.
(use the arrow keys to move forward/backward/left/right; click and drag to look in a different direction; scroll up or down to rise or fall)

To do next

  • Add procedural ocean sound generator in JS
  • Implement underwater lighting effects (caustics, godrays, etc.)

References used

For the ocean water simulation

  • Jerry Tessendorf's SIGGRAPH notes on simulating ocean water (pdf)
  • Mark Finch's piece in GPU Gems 1 on effective water simulation from physical models (html)

For the sky simulation

  • Sean O'Neil's piece in GPU Gems 2 on accurate atmospheric scattering (html)
  • Conor Dickinson on generating procedural skies in WebGL for Cloud Party (html)

On generating normally-distributed random numbers

  • Marsaglia and Tsang's Ziggurat method (pdf)

On shader implementation details

  • Emil Persson's GDC 2013 slides on low-level thinking in high-level shading languages (pdf)

On OpenGL/WebGL/graphics APIs in general