Sunday, July 5, 2009

GPU Geometry Clipmaps DX9 1.5 WIP

Here is a new DX9 version of GPU geometry clipmaps.

It uses the new coordinate system from the DX10 version. Terrain is generated on CPU using Perlin's simplex noise & you can stream your own terrain. You can stream anything you need ( normals, textures, etc... ) the same way terrain is streamed.

Unfortunaltly, normal generation on GPU doesn't work yet so i removed it from this version. It is almost finished but i don't have much free time. I hope that i will release a full version before October 2009.

It also contains a few bug fixes.

GPU Geometry Clipmaps DX9 1.5 WIP


J.P said...

Very nice. I'm glad you cleaned up the code from your last DX9 implementation. This is a much more elegant and clean solution.

MW said...


Very nice progress with the clipmaps!
I´m porting your clipmaps to XNA and that´s going okay!
I´ve got them working but the updating of the textures creates a massive overhead, because there is no such thing as lockrect in XNA.

The only option i think is doing the update on the GPU, but i cant figure it out! I keep getting wrong updates...

I hope you will in your next update do the updates on the GPU again so I can finish the XNA clipmapping code. OR maybe you could help me a little with it? Of course my code will be downloadable!

FilouGK said...

You may contact me at, explaining how you solve the lack of LockRect function in XNA and / or sending the piece of code.

ADT7 said...

The easiest way to solve the lack of LockRect is to replace the Texture2D objects that are part of the Clipmap struct with RenderTarget2Ds with PreserveContents set.

Although unfortunately this doesn't go down so well on the 360.