Surfing Simulation

I'm waiting hopefully for future developments in 3D Rad to enable production of dynamic fluids!
DATE (7/1/10) : I've decided that if I do the above, I'll be here forever ! So I'm going to attempt to make do with what I have alresdy. (Hopefully, the new custom shaders will add a touch of realism)
For years I've been obsessed with making a surfing simulation........I've got a little along the way, then stopped. This has been partly due to the fact that a realistic breaking wave is one hell of a thing to produce realtime. Without a PhD in mathematics and a very fast processor, one cannot get very far! However, in recent years things have improved a little. Scouring the Net, I've picked up a number of articles on open ocean waves, but very few on the surfer's type wave.......those that break on the shoreline. However, one such article, with some promise, is the Surf's Up Course at Siggraph Although this article is aimed at producing movie animation (not realtime game animation) it does have some useful pointers for me to try.

So, the first thing I've done is to extract their set of wave profiles (Thank you, Siggraph!) as follows:
Picture
I used a 3d modelling app to loft these 2D profiles into a 3D shape, and imported the result into 3DRad. So now I have one big untextured wave and little surfboardless me waiting for some action!
Picture
 (4/7/10) : Using 3Impact and its mesh vertex manipulation functions, Ive been able to use my 2D profiles to get realtime wave movement on a plane grid. However, 3DRad does not allow mesh vertex manipulation, so I've had to go through a whole lot of trial-and-error to get a decent wave animation.


Picture
Using my basic set of 2D profiles, I put together a bit of software to  interpolate between them and produce a set of 500 profiles from which I ended up with 250 "wavestrips", similar to the illustration opposite.

I thought that I would be able to use a 3DRad Script to iterate through all these "wavestrips" as Imposters, but it was just too much for a scripting language to handle, and every thing just ground to a halt.
Even using a DLL to remove some of the load was unsuccessful.
At the present time I'm having some success using 3DRad's FBF (frame-by_frame) animation. I now have a FBF Skinmesh containing 250 frames which animates at a decent rate. The challenge for me now, is to use this in the best manner to make a believable surfing simulation, using 3DRad.
LATEST (13/7/10) : By using 15 "wavestrips" arranged side-by-side, with each seperated by one animation frame, a fairly convincing breaking wave was achieved. See video here.
To get a fairly good speed in 3Drad, I had to resort to a bit of trickery. I used the 15 "wavestrips" like in a scrolling platformer game........taking a strip from one side of the screen and placing it on the other side as the surfer moved forward, all the time keeping the actual breaking wave animation going. A video of my first attempt can be found here.
Back to My Projects