1

I have an idea I need to get out of my head but am not sure where to start. I want to figure out a good way to learn about real-time water simulation. I’m looking at either OpenGL, or Openframeworks, or Cinder. I have basic experience with c++ and a bit less with OpenGL but am not worried about learning. Could someone point me in the right direction? Andy good resources to learn or just general advice would be greatly appreciated.

Comments
  • 1
    Water simulation is not so much a graphical problem (for which you would need OpenGL) but rather a physics simulation, for which you need a physics engine.

    There are 3 places worth looking at:
    1. nVidia PhysX. Only works with CUDA on nVidia cards (unless I'm old and I get my information from the precambrian era), but is super easy to use, fast and rich in features.
    2. Havok. Works with OpenCL which also works with AMD GPUs. It's huge, and last time I checked, documentation and examples weren't its strongest suites. But it's the most powerful library out there (again, unless I'm already a living fossil and don't know it yet).
    3. Bullet Physics (damn I'm old, it's probably renamed a couple of times). It's used in Blender simulations. It's FOSS. Reasonably easy to use, but last time I worked with it, you had to stick functionality to it, unlike the other 2.

    The Physics engine simulates it, and the graphics engine renders the result. That's how it works.
  • 0
    @AndSoWeCode thanks so much. This is already a huge help. I had not put it together that I should be looking more at physics engines. It’s actually a touch embarrassing since I was thinking of all the physics of particles colliding and so forth, but I guess I got lost in the concept and forgot to take a few steps back. I will definitely look into the items you mentioned. All the names ring all the bells, but I am definitely not as knowledgeable on the topic as I would like to be. At least now I have a solid starting point for research.

    You mentioned a lack of documentation or well defined documentation and I think that has been my biggest hurdle so far. Maybe that should be a side project an developer initiative to help create good documentation for all the things.
  • 1
    @twosliced that was the state of things years ago...
    Within a few months I can say "decades ago", the plural being for the number 1.01 or something :).

    Things have definitely changed, but I have no idea to which direction since I don't do that any more.

    But back then, the easiest to work with, with the best documentation, was PhysX. Then came Bullet, at least in my opinion. For Havok there was a 600 page book, which qualifies as a thorough documentation, but also as a tl;dr.
  • 0
    @AndSoWeCode I will have to look around some more, but you definitely helped with those pointers. I was sort of flailing around for general information with no real direction before.
Add Comment