🔒 Locked
Help with terrain-algorithm
Advertisement
Original Post
Hi all! Help me plz to make choice. I'm going to rewrite my terrain-engine, because of its weakness. It's a RTS terrain-engine, thats why it needs to render huge lanscapes in a little time with good Level of detail. What good articles do u know on this subject? ROAM, SOAR, GeoMipMapping and others are too old. I need something fresh. I want to combine QuadTree, LODs, Splat-mapping and something else. Shaders maybe. But i haven't information. The biggest problem is LOD. Can anybody help me?
well, LOD and quad-trees are essentially parallel processes or can be made so pretty easily. So i'd implement quad-trees first then throw some LOD into the mix if you find you need it. why do you say ROAM is "too old"? have you tried it with your game and found it to be slow? boolean logic is pretty old too (mid 1800s), but dammed if it ain't still useful in CS. :)
-me
-me
-even with a free camera (ground control 2 like) it would be better to use a "volumetric" quadtree (each node has three dimentions as compared to a regular grid)
-use CLOD based on the patch center distance from the camera eye, that way u can render the entire patch in one tri strip
-splatting would be easier to do with shaders, cuz u can then render up to 4 details in one render pass. the prob is that not many people have vs and ps 2.0
-use CLOD based on the patch center distance from the camera eye, that way u can render the entire patch in one tri strip
-splatting would be easier to do with shaders, cuz u can then render up to 4 details in one render pass. the prob is that not many people have vs and ps 2.0
Well, CLOD can be one of two things, Continuous level of detail (a general term, and the most common use) or chunked level of detail, a specific algorithm (which is a type of discreet level of detail (DLOD), just to confuse things). As far as a quadtree goes, my quad tree is actually a n-tuple tree, it has a variable number of children, so the majority of the tree will be interpreted as an oct tree... but then the terrain is actually a class derived from a generic tree node... and then the terrain, has its children, which are really just quad tree nodes, and have 4 children each rather than 8 (but they still cull with AABB's)
as far as i can tell, a "volumetric" quad tree, is just a quad tree that uses 3d axis aligned bounding boxes rather than just 2d ones...
hope that wasnt too confusing/not well thought out/whatever, and hope it helps
-Dan
as far as i can tell, a "volumetric" quad tree, is just a quad tree that uses 3d axis aligned bounding boxes rather than just 2d ones...
hope that wasnt too confusing/not well thought out/whatever, and hope it helps
-Dan
Quote:
Original post by fallex
This is the main problem - i've spent not one hour, trying to find something usefull...
not sure if this means you spent less than an hour or more than an hour. anyway this article is linked directly from the articles section of this site:
http://www.gamasutra.com/features/20000228/ulrich_01.htm
seems to be pretty much exactly what you're looking for. gotta learn how to navigate the articles section, most of the stuff you'll need can be found there very quickly.
-me
there is one more way to do the splatting as im experimenting right now, but requires the use of dx9
u can use vertex declarations, keep the vertices and one set of detail texture coordinates in one vertex buffer, and have another vb with ONLY colors. that way instead of using 5 textures, u use 4 (a r g b controling each detail channel)without touching the main vertex buff.
the other plus is the argb colors are interpolated between triangle vertices, so the transitions can be smoother and it takes less memory than a 4x4 alpha pixels per cell
u can use vertex declarations, keep the vertices and one set of detail texture coordinates in one vertex buffer, and have another vb with ONLY colors. that way instead of using 5 textures, u use 4 (a r g b controling each detail channel)without touching the main vertex buff.
the other plus is the argb colors are interpolated between triangle vertices, so the transitions can be smoother and it takes less memory than a 4x4 alpha pixels per cell
Quote:
there is one more way to do the splatting as im experimenting right now, but requires the use of dx9
u can use vertex declarations, keep the vertices and one set of detail texture coordinates in one vertex buffer, and have another vb with ONLY colors. that way instead of using 5 textures, u use 4 (a r g b controling each detail channel)without touching the main vertex buff.
the other plus is the argb colors are interpolated between triangle vertices, so the transitions can be smoother and it takes less memory than a 4x4 alpha pixels per cell
Does this method eat many resources?
i think it eats less resources, because one color buffer, COMBINED with shaders can significantly reduce memory usage by eliminating the need for 16bit alpha textures, and can provide some speed improvement, because ure doing up to 4 detail layers at once
(D3DFMT_A8 is rarely supported, so for EACH alpha texture u must use a 16 bit format like D3DFMT_A4R4G4B4)
(D3DFMT_A8 is rarely supported, so for EACH alpha texture u must use a 16 bit format like D3DFMT_A4R4G4B4)
If any of you guys are seriously thinking about terrain rendering, geometry clipmaps are the way to go for sure right now. One word: VBOs. If anyone has any information related to geometry clipmaps, I would be interested in exchanging ideas.
I am currently using geo-mipmapping for my terrain rendering and am working on implementing geo-clipmapping shortly.
cheers,
N
yahooIM: nealo_dealo_2000
I am currently using geo-mipmapping for my terrain rendering and am working on implementing geo-clipmapping shortly.
cheers,
N
yahooIM: nealo_dealo_2000
Topic Locked
This topic has been locked by a moderator. New replies are not allowed.
Sign in to reply to this topic.
Advertisement