Whoa, how long has it been? Wasn’t I supposed to do this every week? These last few weeks have been crazy with work, life, the release of Blender 2.80, Mirage 3.2 and Render+ 2. But that’s all done now. Time to get back on the horse! The good news is that I still managed to put some work on the new terrain engine.
I implemented a new
Map2D type to hold the terrain and erosion maps. This new type lets me reduce a lot of complexity, add some more unit tests and in general, make everything more pleasant. The only missing bit is improving the code to find neighbor cells. Once I’m done I will share
Map2D here since I’m sure it will be useful to anyone working on heightmaps.
Water erosion got some more polish. Now it has better defaults, so you can see an effect right away. I’ve mostly fixed the code for springs. Mostly. There are still situations when it will create spikes, but you have to crank erosion or water amount to see them.
I’ve also reverted one of the last changes in the rain code. I had it using the same code as springs to drop water on the terrain. This was great for me (less code), but not so much for performance.
Terrain types are a cool new feature that replaces almost all the previous settings. After a lot of try and error, I found that one-size-fits-all settings don’t work well with terrains. Not if you want an intuitive UI. So instead of having a group of settings to generate any kind of terrain we now have different types of terrains, each with their own algorithm and options. I’m including 2 terrain types for this version:
Smooth hills which creates smooth rolling hills and valleys, and Mountainous which creates different kinds of mountain ranges. An example of how the types system works is ridgedness. This is only an option for mountains, since it wouldn’t make sense for hills to be “peaky”.
In the future terrain types could also extend to other areas. Materials, tree/grass distribution (according to biomes) and more. I plan on adding more types going forward, like dunes, desert canyons and more. Island could become a terrain type too (instead of a modifier). Let me know in the comments if there’s a kind of terrain you would like to see.
We are coming around in terms of features, so now it’s time to start stabilizing and polishing.
- Work on seamless terrains again. I have an idea on how to do this now.
- Improving neighbors on
Map2Dand use it in more places
- Start planning new materials
If you want a seat in the first row when the next version of Mirage comes out you can check it out on the BlenderMarket.