the way i will do terrain rendering

Started by
5 comments, last by lancekt 17 years, 11 months ago
Let me start by saying i think 'chunked' terrain is ugly, it (usually) gives lots of popup. It is (usually) obvious where the chunks begin and where they end. Look at oblivion, it isnt nice. I turn off distance rendering even though it is playable with it on. 45 fps instead of 30 is worth it. Considering the distance rendering was one of its main graphical features this is bad. Battlefield 2 has much nicer terrain. Granted it takes ages to load. But i feel there are probably ways to speed that up. Does bf2 use a system similar to roam, i dont think it is chunked. All in all i feel that terrain engines just arnt pulling there wait. (Not that i could do any better). I am going to describe the way i will do my terrain (which im pretty sure has been done before) I quite like the tree implementation with this structure |\ |..\ |.....\ |------\ |...\...|..\ |......\|.....\ +------------ (darn, how do you guys do good ascii images?) (thats 4 small triangles inside 1 triangle). I think its better than the roam binary leaf system as this way you can have a 4, 3, 2 or 1 triangle split. (as appose to 2 or 1) If you wanted to split your triangle up but 1 of the adjancent triangles didnt then a 3 triangle split (over a 4) wouldn't be too much of a compromise, your still getting 3/4 of the detail you wanted. Vise versa, if you didnt want to split but the adjancent triangle did then 2 triangles (over 1) is not the end of the world. It doesnt appear much different to roam but if you draw out this sytem on paper you dont needlessly split triangles as much. The depth of the tree is also smaller which should save memory, thats right? To conclude i think using 4 triangles instead of 2 is simpler. Also, with this system i would be creating an index buffer on the fly (for most of it, i may render the close parts with static index buffers). What kind of numbers would we be talking about when creating index buffers on the fly, how many indices? I hope i was clear. Thanks.
--------------------------------Dr Cox: "People are ***tard coated ***tards with ***tard filling."
Advertisement
This idea exists
I ran into a paper describing this variation a long time ago
unfortunatly I dont remember the name or the author anymore.

your last question is not clear
but yeah, it probably works
How do you avoid T-junctions when you "split" a triangle. It looks to me like you can't split a triangle without having to split every adjacent triangle (and that means you end up splitting every triangle).

You can avoid popping in chunked lod by using "geomorphing".
John BoltonLocomotive Games (THQ)Current Project: Destroy All Humans (Wii). IN STORES NOW!
JB is right, do some reading into geoclipmapping, which is basically a high detail array of quads around the viewer, surrounded by other progressively lower LOD areas.

Use geomorphing to smooth between LODs, performed on the GPUusing a vertex shader.

Si
bf2 has geomorphing and there is nothing worse than seeing the world warp infront of you. I would much rather see a triangle quickly pop into place and be done with it, instead of morphing about like im on crack.

Geomorphing, pah, sounds nice. In reality its just as ugly as popping IMO.

Doesnt geoclipmapping use the vertex texture look up which is only supported by 6x00 series and after?

Split a triangle into 3 triangles. You will see that it is possible to keep 1 side intact.
--------------------------------Dr Cox: "People are ***tard coated ***tards with ***tard filling."
Quote:Original post by Riviera Kid
Battlefield 2 has much nicer terrain.
...
bf2 has geomorphing and there is nothing worse than seeing the world warp infront of you. I would much rather see a triangle quickly pop into place and be done with it, instead of morphing about like im on crack.


So are you trying to emulate BF2's terrain or not? You seemed to like it at first, but now you don't? I would check out the geoclipmapping. I know that I've read things about various LOD algorithms and such, just try Google (or Google Scholar; it's under some hidden area of the extras at Google).
You can do geoclipmapping without vertex textures but it's a lot slower (see the article in GPU Gems 2).

Generally any solution that involves splitting triangles on the fly (e.g. ROAM) is going to be suboptimal in terms of performance on modern graphics hardware. The reason chunked LOD is popular is because it stores the terrain data in a very GPU-friendly way (large batches of static geometry). Further, if you choose your error carefully you can avoid having any visible popping/morphing. Have you seen Ulrich's chunked LOD demo? It's very hard to see the geomorphing.

Incidentally, Oblivion isn't really a fair counterexample against chunked LOD. It only has two LOD levels, the high-detail local stuff and the low-poly distant stuff. And we didn't use geomorphing at all. :)
Orin Tresnjak | Graphics ProgrammerBethesda Game StudiosStandard Disclaimer: My posts represent my opinions and not those of Bethesda/Zenimax, etc.

This topic is closed to new replies.

Advertisement