Not logged in, Join Here! or Log In Below:  
News Articles Search    

Submitted by Francis Woodhouse, posted on April 05, 2002

Image Description, by Francis Woodhouse

The two images show some screenshots from the early stages of my terrain engine (yes, another one!) that I've been working on since Christmas Eve of 2001. I've rewritten the LOD system 3 times, first using a 9x9 vertex tile system, then an adaptive quadtree algorithm, then back to the tile system but with each tile having 17x17 vertices. The tiles can be rendered at 8 different levels of detail, using the vertex error as the factor to decide which LOD to use for that particular tile. Frustum culling is done on each tile's bounding sphere, but a quadtree is yet to be implemeneted. It gets around 130 FPS at the moment, and goes down to 100 FPS with a particle system being used (not shown in these screenshots - that's what I'm working on at the moment).

There are lots of things that are still to do - finishing the particle engine, quadtrees, level editor, models, moving sky, lighting, and more. However, I am designing the engine with dynamically alterable terrain in mind, so you'll be able to have rockets dig holes in the ground.

Cheers, and I look forward to your feedback!

Image of the Day Gallery


Message Center / Reader Comments: ( To Participate in the Discussion, Join the Community )
Archive Notice: This thread is old and no longer active. It is here for reference purposes. This thread was created on an older version of the flipcode forums, before the site closed in 2005. Please keep that in mind as you view this thread, as many of the topics and opinions may be outdated.
Francis Woodhouse

April 06, 2002, 08:17 AM

Thanks for the comments guys, even if they were complaints about the lack of variety amongst terrain engines. To be honest, I wouldn't have started one if I knew just how popular they were at the time, but that's the way life goes! :)

People say that the scenery is very bland; this is a fairly early stage, and it's just to show you what I've accomplished in 3 months. I shall, eventually, post a much nicer screenshot.

defor: You've sparked an idea in my head about grass. Grass can easily be represented with only 10 polygons for a lot of detail, and only 1 or 2 at lowest detail - distance-dependent rendering of "natural features" such as grass is an idea. It'd be even cooler with wind...

With regards to terrains with overhangs and suchlike, I may research that and attempt to implement it in a polygonal form. I have another idea up my sleeve as well to detail things up a bit more at closer distances.... :)

Sorry, forgot to say, it's OpenGL.

Cheers for the feedback, and keep it coming! :)


April 06, 2002, 08:57 AM

Terrain with overhangs and caves can be accomplished by using a tiling system for models created in 3dsmax etc. with various levels of lod - put these tiles in a quad tree, and hey presto. Terrain alogorithms, like the adaptive quadtree stuff, are only useful if you want huge terrains, with procedural detail.


April 06, 2002, 09:56 AM

Anyone seen Gothic? As far as I remember, the engine in this game is able to generate terrain with caves.


April 06, 2002, 10:03 AM

Yeah, terrain algorithms ( as indoor, animation, particules, etc ) strongly depend on what you wish to do with it. Restricted camera movement ( among other settings ) can simplify implementation. For a Warcraft3-kind a simple quad tree should be a better ( sufficient and thus easier to do ) approach than ROAM or the like.

Just IMHO.



April 06, 2002, 02:57 PM

Yay! Great terrains! Time to do a Delta Force clone ?-)))

I love that game, in spite of it's flaws.

See ya!


April 06, 2002, 03:59 PM

I always felt you cant call something an engine till its used for something other then the original product.


April 06, 2002, 10:35 PM

Yeah, Gothic handles caves... Very polygonal but nice engine (game) anyway.


April 08, 2002, 01:14 AM

My God.... sounds VERY much like my terrain. I also tried a number of ways of doing things before settling on a very similar 17x17 tile LOD switching approach, also culling with bounding spheres. Each tile is pre-VIPMed though, and morph for the transition between levels. You didn't mention how your tiles join or otherwise at the edges?

Francis Woodhouse

April 08, 2002, 03:05 AM

I basically have arrays of vertex indices for each possible level->level joining scenario, but I keep it a bit simpler by only having higher level tiles attempt to join to lower level ones. It took me a day and a half to code the indices, but it works :)


April 08, 2002, 10:31 PM

I see. Because my tile LODs are VIPMs there is no guarantee that any levels will match at the seams at all, so at the moment I render a vertical 'fillet' between tiles to hide the cracks. This is very expensive and needs to be changed - I will make sure that every LOD is first split down to the smallest tris at the edges and will always meet up. Because this causes many forced-splits I might move to 33x33 tiles.

How about transitions between levels as you move closer... ?

Francis Woodhouse

April 09, 2002, 03:03 AM

I just immediately change LOD, it's too hard to implement geomorphing with this setup. However, it isn't extremely noticeable due to the fact that there are 8 levels of detail which gradually increment in detail.

This thread contains 41 messages.
First Previous ( To view more messages, select a page: 0 1 ... out of 1) Next Last
Hosting by Solid Eight Studios, maker of PhotoTangler Collage Maker.