Author Topic:   My Terraformer3D terrain demo
New Member
posted February 19, 2000 05:57 PM            
I recently put up a webpage to show my terrain engine at:

There is no LOD whatsoever.It's juat a brute force demo.I'll be working on that as time goes by.Please download the demo (approx. 1.8MB) and tell me what you think.

note: I'm not sure how well it will work with 3DFX based cards yet but I'm curious to know what you guys get.Thanx all!
Oh and don't forget to read the "readme.txt" file included in the zip.And do remember that this is an EXTREMELY early demo! (V0.0.1)


Klaus Hartmann
posted February 20, 2000 03:29 PM            

Of course... I try every terrain demo I can get my hands on :-)

It's difficult to offer any feedback, because the engine is, as you said, at a very early stage. Also, we need more information, like:
(a) Do you do view-frustum culling
(b) How large is the height field
(c) What's the frame rate
(d) How many triangles are currently displayed
(e) most important... what does the wireframe look like
(f) how large is the texture?
(g) is there mip-mapping?
(h) do you use OpenGL's lighting pipeline, or is the light burnt into the texture map?

So all I can offer at the moment are some general hints.

(a) Try to use a LOD algorithm, like Lindstrom, ROAM, TopoVista, Röttger. At the moment you might think, that this is not too important, but you'll change your mind as soon as the terrain becomes bigger. Personally, I would recommend Röttger's algorithm for now, because it is efficient and easy to implement (except for the geomorphing).

(b) Care about the surface, before you add things like a sky dome (hint: a truncated cone centered at the camera). With "surface" I mean the appearance of the terrain. This includes lighting, texture, and color. Don't take this personal, but the texture you are using destroys the visual quality. For the beginning I would synthesize one large texture and pre-burn the light into it. It's really not too difficult to do this. Here's what you'll need to be able to do:
(b.1) directional light computations (dot-product between a vertex normal and the light's direction vector).
(b.2) bilinear interpolation of elevations, because your texture should have more texels, than your height field has data points.
(b.3) computing the slope at a given location in the height field (you can simply use the y-component of the surface normals to do this. The y-component of the vertex normal will also work).
(b.4) the ability to create a realistic-looking color ramp for landscapes (or use texels from other textures like grass, rock, etc.).

Otherwise you've done a good job, because the real important thing is that it works without any problems.


New Member
posted February 20, 2000 09:26 PM            
Klaus....it looks like me and you are going to be good friends

I'll be looking into your tips of coarse,but there is one question I want to ask you.Why do you need information about points (a) to (h)? well besides fps,why do you care what texture size I'm using etc? I'm just curious.

but to answer your questions anyway:
(a) not in the current version but in the next.
(b)300x300 bitmap (total of 178,802 triangles)
(c)variable...depends on what angle you look at the terrain with.I'll be adding a little text that shows how many fps you're getting in the next version.
(d)see part (b)
(e)I've added a "w" key to switch between wireframe and texturemap in the upcoming version.You'll see for yourself
(f)1024x1024x24bit (I suck I know,but this is just an alpha)
(g)nope.(not yet anyhow)
(h) I haven't used lighting at all.(not yet but I will once I get the basis of the engine working)

Hope that answers all your questions.I know you still have more but wait till the next version is out.
Now I have a question that has been bothering me.I draw my triangles (remember,this is a non-optimised engine) using OpenGL's triangle strips.Is that wrong? I mean I keep reading about triangle fans in all these LOD white papers and I was just wondering if I'm on the wrong track.

As for optimisation,the reason why it's not my immediate priority is because I have 4 white papers on terrain optimisation and LOD techniques that I'm reading and experimenting on.But they are difficult to understand so it may take a little time for me to get the hang of it.
You mentioned Röttger algorithem.Can you point me to the papers or a website with the description of this algorithm please?

Thanx for your feedback Klaus.And if you have anymore ideas,hints,tips etc please post them by all means.This goes to anyone else on this board too.I can use all the help I can get! Terrain programming is a new frontier for me and it rocks!


Klaus Hartmann
posted February 20, 2000 10:28 PM            
As for the questions I asked... The point is simply this. We need a common frame of reference to judge about the quality of a program. I'm not talking about the visual quality, but about performance and the like.
What I wanted to say is that you should provide a feature list in your README.TXT. Things like FPS, and triangles/fans/strips per second should be displayed on the screen while I'm flying over the terrain.

As for triangle strips. Strips are sometimes better than fans, especially when you have a 3D accelerator like the GeForce. The only reason why other algorithms use fans is, that it is a whole lot easier for this specific algorithm. LOD algorithms that are based on quadtrees (like Lindstrom) usually use fans, because quadtrees can be split into fans very easily, whereas it is a pain to create strips from this data.


New Member
posted February 20, 2000 10:39 PM            
oooohhhh.Ok I'll keep that in mind Klaus.Thanx for the info