Vegetation Studio Features
We are happy to introduce Vegetation Studio, coming to Unity Asset Store this fall.
Vegetation Studio is a vegetation placement and rendering system designed to replace the standard tree and detail system in the Unity terrain component. Vegetation is spawned on the terrain based on a flexible set of rules, and controlled with both texture and polygon masks.
Use your existing trees (SpeedTree, Tree Creator etc.), rocks and grass textures. Rendering is done using Unitys new Instancing and Instancing Indirect system. This means no overhead on culling and handling GameObjects. Vegetation Studio should work with most vegetation shaders that support instancing.
You create a Vegetation Package that references your selected trees and plants. Configure the spawn rules and apply this to a terrain. The same package can be re-used on terrains in multiple scenes. Any changes done to the rule set will update the terrain directly.
With Vegetation Studio you can use denser vegetation on much larger terrains than before. Visible range, not terrain size, will limit your performance.
Rule based vegetation
Vegetation Studio uses a system for rule based vegetation. You add your grass, plants and trees to the system and they are placed according to your parameters. Configure the rules and the vegetation will spawn on the terrain accordingly. Parameters for vegetation growth are things like height above ocean level, steepness of the terrain, Perlin noise, rotation, scale and texture-based rules like “Do not grow grow grass on path texture”, “only spawn this plant on sand area”, etc. In addition to this, the run-time masking system controls the removal or spawning of any vegetation. Any changes are updated in the terrain directly.
See VegetationSystem component for more info.
Extensive run-time masking system
Vegetation masks are a set of Components designed to control vegetation. These can be used both during design and run-time. By adding areas with polygons or lines with a width you can remove, add or modify vegetation within the area. Common use cases are roads, houses, city areas etc. See VegetationMaskArea and VegetationMaskLine for more info.
Vegetation Studio uses Unitys new Instanced and InstancedIndirect system to render the vegetation. Combined with an internal cell structure and the Culling Group API we are able to render large numbers of grasses, plants, trees and rocks with fewer draw calls and better speed than with normal rendering. In addition to this we do not have the overhead of processing and culling individual GameObjects.
Rule based terrain splat map
Vegetation Studio includes an optional system for splat map generation of the terrain. You can set up a rule set based on any number of textures in your terrain. Based on height, steepness and other parameters it will generate your terrain splat map. In addition to this it allows for live editor updates and can update the splat map and vegetation as you edit your terrain in the terrain inspector.
The textures not used for automatic splat map generation can be used to paint the terrain normally and will be kept even if you change the rule set and generate the splat map again. This way the manual work you do painting roads or other features will not be affected.
See TerrainSystem for more details.
Touch bend grass
Grass patch editor
Grass Patch Generator is a tool to produce mesh grass and plant mesh patches with level of detail (LOD) from standard Texture2D images with alpha.
Size, resolution and a range of settings will be saved with the prefab. The resulting prefab can be used with Vegetation Studio as instanced indirect rendered grass with Touch Bend support. Or used as normal GameObject in Unity with a LOD Group.
See Grass Patch Generator for more info.
Universal billboard system
Vegetation Studio includes a billboard system that can create a billboard on any tree model added to the VegetationSystem Component. These are used for long range when displaying trees in the terrain. Billboard creation is automatic when adding a tree prefab in editor mode. See BillboardSystem for more details.
Vegetation Studio has a built in run-time collider system. When set up it will instantiate colliders for trees, rocks etc in proximity of the camera. These colliders are instantiated from a pool to increase performance. See ColliderSystem for more info.
There is an API with event calls for access to the run-time colliders.
Real-time editor updates
Any changes to the Vegetation Packages will be updated directly in the Terrain. In addition to this, changes you do with the Terrain Inspector will affect vegetation as you make them. The splat map can be updated from rules, and vegetation changes as you paint texture details. All based on the ruleset you have configured in the Vegetation Package.
Vegetation Studio has support for multiple cameras and terrains. To add multiple terrains to the scene just include a VegetationSystem object for each terrain. Assign the VegetationPackage and terrain, and it will work. Use the same approach for multiple cameras.
There is also floating origin support for large terrains.
Vegetation Studio supports VR rendering. The custom billboards system supports single pass VR and does not have the strange rotation and bend behavior of some other billboards.
Supports Speedtree, Tree Creator and others…
Vegetation Studio is designed to work with your existing vegetation assets. Except for those used in the demo scene, the asset does not include Vegetation meshes. You can use your normal vegetation meshes and textures. Most vegetation shaders that support instancing will work directly with Vegetation Studio.