meta data for this page
  •  

This is an old revision of the document!


Importing into Unity

SpeedTrees are supported in the Unity game engine. The .ST files exported by SpeedTree 9 can be imported with Unity 2018.3 or later.

SpeedTrees work in the standard rendering pipeline, and shaders can be switched to work in the High Definition Render Pipeline (HDRP) and Universal Render Pipeline (URP).

Exporting for Unity

Before exporting a tree for Unity, be sure that your tree is set up for real-time use by using LOD. Also ensure that wind is correctly set for Unity by setting the fan to Legacy UE4/Unity mode and tuning the wind effects, if necessary.

If this is the first time exporting to Unity, be sure to pick one of the Unity presets in the export mesh dialog, to ensure all the export settings are correct for Unity. Export an .ST file directly into the Assets directory of your Unity project. Be sure to wait until the export process is complete before switching back to Unity for the import. You can also export it to another directory and copy it into your Unity assets, but be sure to copy the mesh and all of the textures at the same time before switching back into Unity. Otherwise, the importer will not be able to find the textures. You may be prompted to fix normal maps after import, so select “Fix now” and the import process will continue.

Unity will create a SpeedTree prefab you can use as a GameObject, on the terrain, or in other places inside Unity.

Note: Do not simply choose import and pick the .st file from a different location. Unity will not be able to find the needed texture files.

Placement

Manual

Adding models to the scene manually To add models one at a time, simply drag the SpeedTree object from the “Asset browser” in Unity and drop it in the scene. The model can then be transformed like any other object in Unity.

It is important to note that rotating an instance of the asset is fine. The billboard shader will take the rotation into account when selecting the appropriate angle from the 360-degree billboard atlas.

Painting models

SpeedTrees can be painted on terrains similar to other mesh objects. Go to the tree tab on the terrain and click “Edit Trees”. Add the tree asset you wish to paint in the resulting add tree dialog, and it will then show up in the “Trees” section. Grass assets are also painted in the “tree” tab, not with the Unity grass system.

After selecting the tree you wish to paint, you can adjust the painting tools with the parameters below it. “Tree height” lets you control the scaling of the tree when painted. With SpeedTrees, you most likely want to enable “Lock width to height” and “random tree rotation” for the best results (these are enabled by default).

You can adjust the switch from 3D tree to a billboard with the “billboard start” and “fade length” parameters on the settings tab of the terrain.

Wind Zone:

Wind behavior is tuned inside of the SpeedTree Modeler. To see the animation in Unity, you must add a Wind Zone to the scene to provide the wind source. You can add a Wind Zone as an individual object, or as a component on another object. The wind zone allows you to edit the strength and direction of the wind effect.

Note: You'll probably want to turn down the strength since the default is 1.0 (high wind).

Changing the LOD

Your LOD behavior is set in the SpeedTree Modeler, but you can adjust when the LOD changes occur inside of Unity. The SpeedTree prefab includes a LOD Group with which you can adjust the LOD distances.

HDRP and URP

After import, the SpeedTree meshes will have materials attached to them for the standard rendering pipeline. They will appear pink (ie shader error) when using the HDRP or URP.

Starting in Unity 2021, new shaders are available for SpeedTrees. Using the GUI on the SpeedTree prefab, extract the materials, and switch them to the new shaders: SpeedTree/HDRPLit and SpeedTree/HDRPLit_Billboard for HDRP or SpeedTree/PBRLit and SpeedTree/PBRLitBillboard for URP.

These new shaders are created in Unity's Shader Graph, so they will work in all aspects of those pipeline, even in areas that were troublesome before like subsurface. Being written in shader graph, they are also very easy to edit. If you wish to change the SpeedTree shaders, you can change the base shader graph to apply to all trees, or duplicate it for a new shader with your own modifications.