What is new
The new stuff!
The main change in Vegetation Studio Professional is the core technology used. It is based on the new Job system and Burst compiler technology Unity is adding to Unity 2018.2 +
This enabled better multithreading and use of the math optimized burst compiler. Using data oriented data structures gives faster data processing and results.
One of the bigger changes is that a single VegetationSystem component now can handle multiple terrains, multiple cameras and biomes.
Each biome has its own VegetationPackage.
Biomes are implemented as a BiomeMaskArea system where you define areas and assign a biome to them. These areas have their own splat map rules as well as vegetation, and there is an extensive set of blend rules to blend between biomes. You can also stack multiple biomes on top of each other.
You can have a desert with an oasis on top with a lake. That lake can again have a underwater biome…
The BillboardSystem component is now integrated with the VegetationSystemPro component.
Here is a quick overview of the components.
Vegetation System Pro component
The settings tab holds the basic settings for the area.
- Sea level
This sets the sea level for the entire vegetation system. The height is relative to the lower bounds of the combined terrains.
- Exclude sea level cells
When excluding sea level cells entire cells that is bellow sea level will be excluded from the system.
- Cell Size
This is the cell size in meters for the internal vegetation culling. With all spawning using the Job system and burst compiler the default size is bigger than in Vegetation Studio Standard.
- Billboard size
This is the cell size of the billboards in meters. Used for culling and spawning billboards.
You can add multiple cameras to one Vegetation System Pro object. When multiple cameras are used select the render direct to camera option. During editor mode you will also see a SceneCamera listed here. That is used for showing vegetation based on the active sceneview selection.
You can now add multiple terrains to the VegetationSystemPro component.
There are now 3 terrain types available. Unity terrains, MeshTerrains and Raycast terrains. These will all be explained below in the document.
Use the add all Unity terrains button or drag and drop terrains manually to add them. To add unity terrains manually you first need to add the UnityTerrain component to the same GameObject as the unity terrain. This implements an interface needed and all communication with the terrain.
For now use automatic calculation. The manual area definition is not ready yet and is planned for loading terrain run-time. This way you can define your world area and add in terrains run-time.
Floating origin is also not ready yet.
These settings are similar to the settings in the current Vegetation System version. They affect all added biomes(vegetation packages)
It is now possible to add multiple biomes/vegetation packages to a single VegetationSystem Pro object. You select what biome you want as a default biome. This is the biome default used on the terrain.
The additional biomes each gets assigned a biome type and a sort order. The biome type will also be selected on the BiomeMaskAreas you define in the terrains.
Sort order is for stacked biomes.
Edit biomes tab
The edit biomes tab is where you can edit the biomes/vegetation packages. Select what added biome you want to edit the vegetation items for and add plants and grass as normal below.
There are some new rule types that will be described below.
The environment tab holds settings for snow, rain and wind. New in this version is ShaderControler classes that are loaded with reflection. These allow for 3rd party shaders to add UI and serialize settings that are saved with the Vegetation package. (see more info below)
A similar system allows for 3rd party wind settings to be exposed and saved. In this example the new HD wind from NatureManufacture and the wind of Fantasy Adventure Environment is installed.
The global snow and rain amount is passed to the shader controlers that can adjust settings for compatible shaders.
The render tab holds setting similar to the current Vegetation Studio version. These affect all biomes.
New Vegetation Item spawning rules.
Noise rules have now been extended. In addition to normal cutoff rules there are options to use the noise values for both density and scale.
Biome area rules
Biome area rules are used for biomes not set to default biome.
- Biome Edge scale rule
The edge scale rule will allow you do scale the vegetation based on the distance to the biome edge. This can give you smaller trees in edge areas that transition to bigger and denser inside.
- Biome Edge include rule
The edge include rule will allow you to have Vegetation Items that just appear in the defined edge zone.
Shader controler classes
There is now a system for 3rd party shaders to define both UI and save settings.
The class is called with the vegetation items materials when any refresh is needed. This way the class can manage its own custom settings and the materials.
Speedtree and the Vegetation Studio grass shader are both implemented like this. In addition some shaders from NatureManufacture and Advanced Adventure Environment are included. Others will be added during the beta and in 3rd party packages.
The shader controller class detects the shader type on the vegetation item and the correct settings are created. This is done using reflection and new can be added without changing Vegetation Studio code.
There are now 3 types of terrain that can be added to Vegetation Studio. You can have any combination of these.
This component is used for the standard unity terrain. Add it to the same GameObject as the terrain and then drag/drop on the VegetationStudioPro component.
The mesh terrain allows you to add any mesh in the scene with a MeshRenderer. it will build an internal BVH tree used for sampling the height and normal of the terrain when spawning vegetation. Terrain Texture rules will be ignored.
This also allows for multi level spawning.
You can add a mesh terrain source to each of the meshes. This will be exposed later as spawning rules. Grass that only grows on rooftops etc.
Add the raycast terrain to any gameobject and define a bounds relative to the object position.
It will then raycast the layers selected for colliders to find terrain position/normal during spawning.
Raycasting is done usin the new RaycastCommand jobs.
Biome Mask Area
The biome mask area is a polygon area component used to define biome areas. It works in the editor much like the VegetationMask area.
When the area is defined you can adjust the blend settings for the overlap area between the biomes.
The ground layer setting is for use with mesh and raycast terrains when adding nodes.
Add the component to any GameObject. Select your biome and add nodes.
Terrain System Pro
The terrain system component is used for generating splatmaps for the biomes.
Each biome can have its own set of splatmap rules. Each biome can use any combination of the terrain textures on the terrain.
Select what biome to configure and press the Generate Biome Splatmaps button to generate the splatmap.
There is also a new heatmap mode that shows each textures cover on all unity terrains.