Advanced terrain, how to? Chunks, LOD or GMM?

Started by
4 comments, last by turch 11 years, 10 months ago
Hello
My problem is pretty basic. Im fairly new to 3D stuff, and Im using c++ + D3D11.
Im trying to create a (pretty) large terrain, lets say 4096x4096, may larger.
I got the basics of Terraincreation, and already split it up into chunks. I can do FC.

But, when Im rendering them (every chunk has its own V and I buffer, as well as its own heightmap), there are still little pieces missing between them. Im searching since days now, and I read alot about LOD and GMM, but I cant really implement the theorie I read.
At the moment, it looks like this:

terrainfail.png


I could really use some help, everything is welcome.
If you got some good tutorials on any of this, please share them.
Thanks a lot!
Advertisement
I've never used directx but what about if the chunks overlapped a little bit?
Is the triangle winding order correct?

Is it a float precision problem?

o3o

I had the same problem. It is caused by the transition between 2 LOD levels. This presentation shows how Battlefield 3 got around the problem

http://developer.amd.com/documentation/presentations/legacy/Chapter5-Andersson-Terrain_Rendering_in_Frostbite.pdf
Okey, i managed to fix it.
I was not using LOD so far, just simple chunks.
I made ever chunk which is not at a corner connect to the others by setting its outer rows of vertices on exactly the same values of the one next to him.
Works fine, now i have to read how to implement the LOD stuff.

Okey, i managed to fix it.
I was not using LOD so far, just simple chunks.
I made ever chunk which is not at a corner connect to the others by setting its outer rows of vertices on exactly the same values of the one next to him.
Works fine, now i have to read how to implement the LOD stuff.


When you do implement LOD, that method will not work any more. The simple fix is adding a "skirt" to each chunk. Just add a row of vertices to each side that has the same normal and x and z coords, and reduce the y coordinate by a couple of units. This will fill any pixel holes and will look correct.

This topic is closed to new replies.

Advertisement