Today I'm going to switch gears and write something a little more fun. This is the first article in a series dedicated to developing a QuadTree based terrain for XNA 4. Terrain generation is a hot topic amongst XNA developers and a question that arises often.
There are several different approaches to developing terrain. The simplest method is the “brute force” approach where all terrain data is rendered every frame. With the power of today’s hardware, this is definitely a viable solution for games with simple, low geometry terrains that target the PC, but it’s an approach that doesn’t scale well when terrain becomes more complex.
Another approach to terrain is to implement a Level of Detail (LOD) algorithm that sets out to reduce the complexity of the terrain as it gets further away from the user. This step alone can increase efficiency and produce phenomenal gains in performance while raising the complexity and detail of the terrain. There are several different approaches to LOD, and even more ways to improve performance beyond simply subdividing the terrain.
This series focuses on implementing something very similar to a ROAM algorithm. Aside from simply subdividing the terrain, it also implements further improvements by performing view frustrum culling. View frustrum culling put most simply is the process of culling away, or removing geometry that is not visible to the user. More...