[!NOTE] Requires Godot 4.2+
An early work in progress ocean addon for Godot 4 base on Jerry Tessendorf's FFT method for generating the waves, using compute shaders to generate the displacement map, and a quad tree based continuous distant dependant level of detail (CDLOD) system to dynamically manage the polygon density without popping or snapping between LOD levels.
The GLSL shaders that generates the displacement map were ported into Godot 4 from this project. The underlying math is identical, but some things like binding points and how uniforms were accessed had to be changed to work in Godots compute shader API.
Button | Action |
---|---|
`/~ | Toggle menu/free cam modes |
Mouse Motion | Free cam look |
Right Click | Free cam zoom |
W | Free cam forwards (locked to horizontal plane) |
S | Free cam backwards (locked to horizontal plane) |
A | Free cam strafe left (locked to horizontal plane) |
D | Free cam strafe right (locked to horizontal plane) |
Space | Free cam up (locked to vertical axis) |
Ctrl | Free cam down (locked to vertical axis) |
Shift | Free cam sprint/move faster |
These are not exclusively limited to ocean wave implementations, and may include other types of water simulations if they include visual rendering techniques that are of value to reference.
These generally don't give much in the way of code examples, but do give a higher level overview of how the whole thing comes together.