That’s right! The next version of Mirage if finally out in the wild. It’s been a little while since 2.1.
Ok, it’s been well over a year, but it was worth it! Version 3.0 piles on a lot of new features, including improvements to object distribution, rock generation, heightmaps, and more.
The Tree Distribution panel is old news now, and has been replaced by Object Distribution Layers. The new system lets you have multiple layers of objects spread over the terrain.
These objects can be any group of meshes you want, but Mirage sets four types to organize your scene more easily: Trees, Grass, Rocks and Props. While the first three are self-explanatory, “props” can refer to any other kind of object (fences, posts, etc). The types aren’t only for decoration though, they also enable different settings related to them. For instance, a rocks layer has an option to clump rocks at the bottom of the mesh (to simulate rocks rolling down). Trees and grass can be grouped in clusters the same way it happens in nature.
There are new features for all types too. The “Optimize for Camera” option lets you pick a camera and limit objects only to the areas that are visible to that camera, and “Use coordinates” lets you limit objects to a specific rectangular area. Speaking of limits, you can now set minimum height/slope values too. If you find the limits of distribution too harsh, it’s now possible to soften them using the “feather” option (kind of like applying a blur filter to distribution). The old “Autoscale” option has been replaced with “Relative scale” that lets you set the object’s scale relative to the size of the terrain (tip: the slider goes to 100%, but you can type values up to 500%!).
Finally, there’s a new random setting that adds and substracts from the object density randomly. The objects’ rotation can be changed and randomized as well. You can find these settings in the “Variation” tab (did I mention the UI got a lot better too?):
Distribution layers can also be exported as Splat maps, Python lists or CSV files. These files contain the locations of each object on the terrain.
This release also brings a whole new feature: Rock Generation. You can generate rock meshes, both low and high poly. Low poly rocks are automatically stylized when their polycount is lower than 100 faces. You can generate multiple rocks with randomized scale, and optionally have them added to a new distribution layer automatically. All for the price of one click.
Like terrains, rocks also have their own features. You can tweak the shape, ratio, general deformation and both coarse and detail roughness. Optionally the rock can also have cracks and crystals on top.
Rocks can also be baked automatically into a low poly mesh. Mirage will create the original high poly rock, the decimated mesh version, the texture image and the cycles material. It will put them in position, set all the settings and bake them. If you’re not totally happy with the result, you can also tell Mirage to only set up the bake so you can then tweak things to your liking before hitting the bake button. Supports textures up to 8K, as well as automatically triangulating the final mesh.
And there’s always more…
You can now generate terrains as heightmaps instead of meshes. You can export heightmaps up to 4K, optionally splitting them in several images (up to 64). The splitting option is also available when using the export heightmap button from the tools panel. Heightmap input has also received new features, you can now generate terrains from STRM (.hgt) and Gridded ASCII (.asc) files. These files are converted to PNG internally, so they can be used with the displace modifier, so you can also use Mirage to convert those files to PNG heightmaps.
A lot of work has gone into refactoring as well. The code is now more modular and a lot more mantainable, which is important as Mirage has already grown to +5,000 lines of code (and will continue to grow further).
There’s also a convenient button in the addon preferences to open the documentation.
I’ve been thinking of doing smaller, but more frequent releases instead of doing bombastic releases every blue moon. That would prevent the release from dragging on too much, and it’d be better for everyone. That’s why the next version will be 3.1 (and not 4). Targets for that version will be Hydraulic Erosion (which I’ve already started working on) and a couple other new Terrain Features.