The work on the terrain system continues. Each terrain “tile” (16×16 quads) is currently textured based on the climate derived from the climate map. Since the climate map is only 1000×500, each tile is actually only a small part of the pixel – which makes the climate and texturing very coarse right now. However I can travel throughout the whole world and the terrain textures and foliage change properly based on climate.
All the screenshots show the world map, with climates color coded. The white dot is the location of the player.
Below you can see 2 of these climates:
Note that some of the plans aren’t properly scaled yet, fixing that is on my to-do list.
In addition I’ve started incorporating the altitude information to generate varying heights. The base height is generated from a specially filtered version of the 1000×500 altitude map, where the individual vertex height is calculated from the neighboring large scale heights using bi-cubic interpolation. Heights tend to change slowly, for the most part, using this large scale map so I also add some noise to this base height. This noise is scaled based on the overall altitude generating larger perturbations at higher altitudes and smoother terrain near the coasts. Obviously this must be generated at run-time, whenever the terrain tiles in view are updated, so the noise uses the parametric tile interior as the fractional part and the tile location in the world as the integral part. This means that the noise is generated independently for each terrain tile but it still lines up without having to do any post processing. There are still a lot of work to do, such as making sure plants are on top of the terrain (instead of at height zero) and collision detection. In addition there are some seams due to the method of generating the normals but that will be fixed soon. Also note that the polygon density for this terrain is exactly the same as vanilla Daggerfall. However the noise is more coherent (multi-frequency Improved Perlin Noise), the view distance is further and gouraud shading is used instead of flat shading. I will implement a version that is more like the original terrain, with flat shading and simpler height changes later, for those that want a more authentic experience.
Here’s a sneak peek at the bumpy terrain:
Work continues but the terrain is coming along nicely. 🙂