In the past two weeks Flavien Brebion (also known as infinityAdmin) has been working intensively on a new terrain engine for Infinity. The previous terrain engine had one big disadvantage: wherever you go on the planet, you see the same kind of terrain features, the same sort of hills, the same shape of mountains, etc... Basically, it makes anything under the global heightmap level extremely repetitive and boring.
In the new terrain engine, InfinityAdmin has been experimenting with Ridged Perlin noise. The main interest with Ridged Perlin noise is that it generates mountains and shapes that don’t look the same everywhere on the planet, and mountains that look ridged. Erosion cannot be implemented on procedural planets, but ridged noise gives a pretty realistic aspect to the mountains, so while it's not perfect it's definitely a major step towards a more realistic terrain.
Another function is the infamous "terrace" effect. It acts by splitting the altitudes in "steps" and changing the shape of the terrain (sharper or smoother) between those altitude steps. This gives a canyoning / terrace effect that is pretty nice to see. Of course, this effect is also affected by the global parameter, so that you don't find terraces on all mountains on the planet.
Enough talk, here are some screenshots showing off the new terrain engine:
The terrain you see on the screenshots are not hand sculptured by a level artists, they are procedurally generated by the engine. Keep in mind that this is still work-in-progress and that we only use one texture for the terrain at the moment.
Future work on the terrain engine:
- Real terrain texturing (at the moment, only one texture is used).
- Experimenting with craters.
- Terrain morphing in real-time, mostly for debugging.
- Horizontal displacements, might form cliffs and overhangs.
- Use diamond square for the very high frequencies .
For more information about this subject check out the Development Journal on the Infinity forums.