An implementation of Jerry Tessendorf's real-time ocean simulation techniques in WebGL.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
libs
README.md
camera.js
common.js
index.html
main.js
normalVariate.js
ocean.js
simulator.js
sky.js

README.md

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