Triangulation for Terrains (link)

Hi folks,

this link might be usefull for people in need of terrains.

http://astronomy.swin.edu.au/~pbourke/terrain/triangulate/

There is a link to a java version of the code.

What this is good for:

When you need a terrain you will most often start with some sort
of heightfield defined by a 2d matrix of height values.
This works fine for most of the time. But if you want a terrain that is quite large but want to keep poly count low your terrain will become rather ugly because the triangle/quad structure is clearly visible. But if you go for a finer mesh by your 2d heightfield matrix you poly count grows by the square.

The link above provides the algorithm (source) to use the Delauney triangulation of an arbitrary 2d point set. That means that you can use points in arbitrary positions (I think you need to project them to (x,y) to get the algorithm point format). The triangulation method will return a mesh of triangles defined by the points you give it. This is very nice as you can have both sections in your terrain having a very fine mesh while in other locations the mesh can be more chunky (e.g. regions the player can see but not reach). Another advantage is that the terrain can have any type shape (in terms of boundary) in contrast to being constrained by some rectangular matrix type shape.

I got it working but have yet no experience about it’s performance or robustness.

Update: haha, the java port omitted the completely unimportant fact that the points supplied have to be sorted by their x coords.

Will this be the last surprise ?

Ca$