Advertisement Jump to content
  • Advertisement
Sign in to follow this  
  • entries
  • comments
  • views

TLM : The project marches on

Sign in to follow this  


So, on tuesday I have to give a presentation which is a practise for my final year one, with this in mind I figured it would be a good idea to get my project ya know, working...

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.
Sign in to follow this  

1 Comment

Recommended Comments

We finally get to see it!

Looks neat. If it doesn't work out you could always make a music visualizer.

Share this comment

Link to comment

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Advertisement

Important Information

By using, you agree to our community Guidelines, Terms of Use, and Privacy Policy. is your game development community. Create an account for your GameDev Portfolio and participate in the largest developer community in the games industry.

Sign me up!