It was almost in a state of working when I left it a couple of weeks back infact, the major thing it was lacking was a driving input, however that was just a matter of writing a value to a texture and uploading it for the routine to use it, so that was pretty easy.
However, at this point a problem became apprent; it wasn't working.
This was midly annoying as I was sure I hooked everything up right, so a few hours of debugging followed where I discovered a few things;
1; It wasn't hooked up correctly [grin] I had the wrong output of one pass being fed into the next.. opps...
2; I'm sure I'd checked this before, but it seems that, for whatever reason, GLSL Program Objects have stopped tracking uniform values. I'm pretty sure it's not something I've done so I suspect a driver bug, but I don't have time to check, this was a real show stopper for a while.
3; turns out I'd forgotten to set a couple of 'step' uniforms which are used to sample from neightbouring texels, this was causing a massive feedback which was preventing the routine from working... opps [grin]
4; and finally, I didn't have my quads texture coords setup right with regards to the perspective matrix's settings. This meant that while I had information proigating it was only doing so along the X axis, the Y axis was hardly doing anything.
With these bugs squished the project finally worked :D
So, in order to use the output on tuesday I've caputured some videos and I'm going to make them available to you lucky people first of all [grin]
They can all be found here in OGM or Flash Video format. The OGM files are higher quality as the Flash is transcoded from them for another site; however in fullscreen the flash versions aren't that bad.
Single Point Scaled is the output I was aimming for. The images at the top show, in order, the information being used to build the height map, the two energy distrubtion textures I'm ping-ponging between and, finally, the height map it's self.
Dual Points No Scale was me wondering what would happen if I added another point. This comes at no performance cost, which is nice, as it's just a matter of setting 4 floats more in memory before uploading the texture. This one is cool as it shows what happens when the waves collide :D
Both of those videos are running on a 512*512 sized TLM, which is significantly bigger than the two previously tested amounts done in previous projects which I'm building upon.
This is where the last two videos come in;
Single Point scaled 40 by 40 is the size the orignal TLM was done at all on a CPU many years back.
Single Point scaled 100 by 100 matches the size of the TLM which was done by the person who did a project like this previously; he used it to build a normal map and then apply it to a mesh.
Oh, and all of these are running purely on the GPU, a X1900XT, with the CPU only doing the driving value updates [grin]
Final version should have real lighting, atm it's just fake coloured based on the height of the point from the Y = 0 plane.