[Algorithms] Terrain Organization
Brought to you by:
vexxed72
From: Pai-Hung C. <pa...@ac...> - 2000-07-29 23:55:08
|
Hi, I have a terrain of 5000~6000 triangles (I would like to make it higher) in my upcoming 3D RPG game (my master thesis). (I am using an ELSA Erazor X^2 GeForce card with Direct3D IM.) I am always wondering what is the best terrain orgnization algorithm to organize and render my terrain. Meanwhile I am planning to split the terrain up to several _hierarchical_ chunks (with bounding boxes) and, for each frame, I test each chunk against the current viewing frustum (VF) to _recursively_ determine if it has to be submitted to the transformation and rendering pipeline. If an _upper-level_ chunk is rejected, there is no need to go down to the _lower-level_ chunks inside it, which can quickly reject a huge amount of geometry. This technique sounds extremely crude, but, with its relatively low geometry management overhead, I think it is very efficient, despite its "obviousness." (Please correct me if I am wrong.) I know there are lots of other more sophisticated/advanced techniques such as BSP and ROAM, but I doubt if they are really worth their extra huge geometry management cost in real-time 3D applications. Here are my opinions about the BSP and ROAM: (Please correct me if I am wrong.) (1) BSP: I think a basic BSP can only tell you what is _in front of_ you. But most of the time you don't really want to draw everything that is in front of you, but only those that are inside the current VF, which still requires the VF testing. Also, since BSP is in triangle level, there will potentially be more texture stage changes when rendered. (2) ROAM: This is way too complicated for my poor brain... Tjhe idea of LOD is great but I really doubt if ROAM is really worth its extra management cost since you have to re-construct everything in each frame. This leads me to the thinking of whether ROAM has other better targeted applications than real-time 3D games running on PCs. Apart from the three techniques mentioned above, are there other universally agreed better ways to handle richly-textured terrain in 3D game? Any comments are highly appreciated! (Relating to D3D would be great!) Thank you, Pai-Hung Chen |