HydrOCL, an OpenCL accelerated Hydrax module.

SanguinarioJoe

22-04-2012 19:08:30

I developed a module (with Perlin noise) accelerated by OpenCL. So you can use Several CPUs or GPUs simultaneosuly in order to compute the free surface state, i hope, improving dramatically the frame rate.

Features:

- OpenCL accelerated projected grid generation and update process.
- OpenCL accelerated Perlin noise heights computation. Perlin noise is not accelerated, but is not too much effort.

Pending:

- Allow using several devices. Now you can use CPU platform (with several cores), or a GPU device, but not a combiantion or several GPUs.
- Implement waves.
- Implement perssure points.

You can get it from git:


git clone git@github.com:sanguinariojoe/hydrocl.git
git clone git://gitorious.org/sonsilentsea/hydrocl.git hydrocl

---

It's so quite similar to existing module (& noise), simply change the module and noise name into the options file, and add the devide identifier that you want to use (see examples).

---

New version uploaded, that improve a little bit module performance (retreiving data at the start of frame, in order to do OpenCL computational efforts since wait for a new frame), and add waves capabilities.

Enjoy it!
Jose Luis Cercós Pita

SanguinarioJoe

27-04-2012 14:04:02

New version developed!

SniperBinaire

28-04-2012 13:38:16

I'll try this in a few weeks, but that's good news !
Just a little question, have you got some statistics on the improvement you've recorded with that new version ?


EDIT : here is : http://www.ogre3d.org/forums/viewtopic.php?f=11&t=69924

th3flyboy

27-09-2012 23:32:28

It looks nice, but I would like to make a small request. Could you please change the license to the same license as Hydrax itself (LGPL 2 or later), I'm working on an open source project that uses hydrax, and would love to use this, however GPL is incompatible with the license of the project I'm working on (Apache 2.0), and in my opinion, it makes more sense to make it the same license so that anyone using hydrax can also use this.