A good heightmap LOD technique (no VTF please)

Started by
27 comments, last by skytiger 12 years, 2 months ago
Hi, I'm kinda confused now. I'm trying to make an island with a heightmap of size 1025*1025. It can't be possible without LOD in my PC (p4 2.26 GHZ, GF7300GT, 1GB ram). I've been hearing the geoclipmapping methot mentioned, but when I read the paper it said that it used VTF (vertex texture fetching). That's just inaffordable for me (I downloaded a simple demo consisting of a 128*128 grid with VTF and it just as slow as hell). So I don't think I will use that. Can you suggest any other good methods that use no VTF but still can achieve a huge framerate? (kinda sick when my PC is just too old :( )

basically I need a LOD scheme with these constraints:
- no VTF
- support at least 1025*1025 (2049*2049 is highly appreciated)
- support terrain editing (my game would be a business simulation game)
- quite simple

currently I'm looking at an article presented by the maker of SoulRide[sup]tm[/sup], but I need as much reading as I could get, and I run out of keywords here, hehe
the hardest part is the beginning...
Advertisement
Yes I'd like to know too, I've been looking for a while and still don't have a good solution. Its one major feature missing in my engine grrr.

Cheers

Lee

Code is Life
C/C++, ObjC Programmer, 3D Artist, Media Production

Website : www.leestripp.com
Skype : lee.stripp@bigpond.com
Gmail : leestripp@gmail.com


basically I need a LOD scheme with these constraints:
- no VTF
- support at least 1025*1025 (2049*2049 is highly appreciated)
- support terrain editing (my game would be a business simulation game)
- quite simple

1st step: consider brute force it (albeit the hardware limit for your video card could be around 1 Mega points, I don't remember).
I'm not familiar with 7300 but GeForce4 could render 256k vertices with ease in a single batch. 6600 could do 2-4 vertices per pixel and still run interactive!
Anyway, look into geo-mipmapping. It is simple. It has basically no limit on point count. It runs on everything (CPU-based, preprocessing).
It does not natively support terrain modification but it's fairly close. Hopefully it will allow an incremental operation on data structures.

As a side note VTF is very viable on midrange GeForce since generation 6xxx (albeit initial drivers were a bit slow).
When it comes to 7300 I'm afraid it either does not support the feature or it is extremely bandwidth-constrained (if memory serves VTF required 32bit float channels).

Previously "Krohm"

Geomipmapping should work fairly well... 1025 is not a large terrain.
SlimDX | Ventspace Blog | Twitter | Diverse teams make better games. I am currently hiring capable C++ engine developers in Baltimore, MD.
You may use same vertex buffer but with different index buffer for LoD > 0.

For example, If your terrain is split into 16x16 sectors.

LOD0 IB = 16x16 cells
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16
17,18,19,20,21,22,23,24,25,26,27,28,29,30,31
32,33,34,...

LOD1 IB = 8x8 cells
0,2,4,6,8,10,12,14,16
17,19,21,23,...

LOD2 IB = 4x4 cells..

Geomipmapping should work fairly well... 1025 is not a large terrain.


I've got a [s]geomipmapping[/s] geoclipmapping (doh) implementation that can render 128km square terrain with 1m the highest resolution on weaker cards at 10ms/frame (100fps). And thats with a terribly inefficient, unoptimized implementation. As long as the card supports SM3.0 you geomipmapping should work great.
The original geometry clipmaps paper didn't use VTF.
It's more work on the CPU though - so it still might not be usable.

The original geometry clipmaps paper didn't use VTF.
It's more work on the CPU though - so it still might not be usable.

There's a footnote on that page with a link to here and an explanation that they were able to move pretty much all the work to the GPU.
[size=2][ I was ninja'd 71 times before I stopped counting a long time ago ] [ f.k.a. MikeTacular ] [ My Blog ] [ SWFer: Gaplessly looped MP3s in your Flash games ]
Great paper, has anyone thought of using disc shapes instead of grids and just scale with view height?

Cheers

Lee

Code is Life
C/C++, ObjC Programmer, 3D Artist, Media Production

Website : www.leestripp.com
Skype : lee.stripp@bigpond.com
Gmail : leestripp@gmail.com


Great paper, has anyone thought of using disc shapes instead of grids and just scale with view height?

Hi Lee smile.png , the point of using a grid is its simplicity... How would you implement something similar to the L-Shaped strip that is used to reduce flickering of vertices?

There is also CDLOD.

This topic is closed to new replies.

Advertisement