bevy_water icon indicating copy to clipboard operation
bevy_water copied to clipboard

Implement Tessendorf waves

Open virtualritz opened this issue 2 years ago • 3 comments

A C++ source that could easily be ported is e.g. available as part of the Houdini Ocean Toolkit here:

https://github.com/eloop/hot

A nice property of this algorithm is that it outputs parameters that can be used to drive foam (shading) and spray (particles).

virtualritz avatar May 22 '23 13:05 virtualritz

Do you know if it can run real-time?

It looks like it will take some work to port it to a shader or even Rust code.

Neopallium avatar May 22 '23 14:05 Neopallium

Do you know if it can run real-time?

Absolutely. I ported it to a Maya plugin over a decade ago and it ran realtime, CPU-only, then.

virtualritz avatar May 22 '23 19:05 virtualritz

I did some looking into this. I don't have the time to work on it right now, but it is interesting and I will try working on it in the future.

Some more useful links:

  • https://github.com/blackencino/EncinoWaves - Seems to be based on/related to Tessendorf waves.
  • https://projects.blender.org/blender/blender/src/branch/main/source/blender/blenkernel/intern/ocean.c - C code version for Blender.

Neopallium avatar May 26 '23 18:05 Neopallium