After several months of work, I’m launching the greatest version of Mirage today. In case you’re not familiar with it, Mirage is a landscaping addon for Blender covering everything from terrain generation to vegetation/object distribution. The big news of this release is that it now comes with default materials. Finally! And it only took a couple of years to happen 🙂 This new hotness includes a new Material modifier for terrains, a material option for rocks and material toggles for the new modifiers.
Materials come in two flavors: with procedural textures or with empty image nodes. The image nodes option gives you a full setup ready to open and use your favorite textures, while procedural textures give you a good material for far-away shots. In either one you also get masks, node groups and an organized nodetree. Note that materials are Cycles-only for now, since Mirage doesn’t support Blender 2.8 yet, however they should also work in Eevee if you open the blend file in 2.8.
Now with modifiers
Noticed something peculiar in the last paragraph? “Modifiers”? Yes, the old features list has now been renamed as Modifiers to fit in better with Blender. Also, modifier is more self-explanatory. But that’s not the only change.
The old Edge Settings now live in separate modifiers. The Smooth edge option is now part of the Smooth Falloff modifier (formerly know as Slopes) as the Radial option. The Island option is now the Island modifier and comes with a default material for the ocean object as well as settings to control turbulence, foam and water color.
Finally the Straight Edges option has been reborn as the Diorama modifier. This is uses a different method from before, the old setting simply took the edge vertices of the terrain mesh and pulled them down. This resulted in distortions, UV problems, issues with vertex weight calculations (eg. height) and having to manually merge vertices to create a the box. Yup, it sucked.
The new modifier creates a new object for the diorama box and parents it to the terrain. Not only you don’t have to worry about fixing verts but it also includes a cap at the bottom and is UV unwrapped by default. The box’s transformations are locked to prevent accidental changes and the height can now be changed from the modifier (of course, you can also just edit the mesh).
The new modifier also includes (you guessed it) a default modifier with a procedural textures option. One small caveat is that now we have to update the diorama object when the terrain is modified (by sculping for example). However Blender doesn’t have a way to do this automatically so there’s a new Update Diorama button in the tools panel that you can use to update the selected diorama.
On the performance front I’ve decided to remove the code that ran the terrain generation in a separate thread. This allowed Mirage to run the generation code without blocking the UI while it worked and while this was usually quite nice, the code underneath was a pretty ugly hack that abused Blender’s modal operators. It caused plenty of bugs, made development harder (any small exception would make Blender freeze) and actually never worked on Windows at all.
Now Mirage’s terrain generation works like any other Blender operator and I’ve finally learned that compromising code quality for fancy features is a bad idea™. Note that if you are using Windows you won’t notice any difference in the terrain generation process. Well, except the fact that it’s now faster.
To compensate for UI blocking, I’ve also worked on making terrain generation faster by improving the code to write heights to vertices, generating vertex groups only when needed and disabling the conversion of vertex groups to vertex colors by default. Now vertex groups for Plateau and Below sea are now only calculated if you actually change those settings. Vertex color groups are not generated by default but can be enabled in the Material modifier. This changes have yielded quite a speedup and generating a terrain with a normal level of detail is now instantaneous. I’m considering other options to improve performance further, although right now I’m much more interested in finding ways to improve terrain generation and make it more interactive.
Up next: Blender 2.8 and more!
Here is a tentative list of feature targets for the next version:
- Support Blender 2.8
- Weather simulations (using the particles system)
- Faster/better ways to create rocks and terrains
- Better materials
This version ended up having way more changes that I anticipated but it was a blast. Mirage is finally starting to come together as a more complete package and 2.8 will bring lots of new possibilites. If you haven’t gotten Mirage yet you can buy 3.2 at the Blender Market now, just hit the button below.