SpeedTree
    Show / Hide Table of Contents

    Importing into Unity

    SpeedTrees are supported in the Unity game engine. The .st files exported by SpeedTree 9 or later 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).

    Version compatibility

    Unity version SpeedTree Modeler version SpeedTree model file type
    Unity 2018.3 and later (see note) 8.x, 9.x, 10.x .st, .st9
    Unity 5.0 to Unity 2018.2.21 7.x .spm

    Note

    Shader functionality improves substantially in Unity 2021.2.0a17 and later. See HDRP and URP.

    Pipeline to Unity

    The Assets directory with a list of assets.

    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 location outside your assets. Unity will not be able to find the needed texture files.

    Placement

    The prefab created after import can be dragged into the scene and transformed like any other GameObject. While you probably want to keep the scaling uniform, it should be noted that rotating the object is allowed. Wind, LOD, and billboard facing will still work correctly on a rotated SpeedTree.

    SpeedTrees can also be painted on terrains similar to other mesh objects. On the tree tab of the terrain and click “Edit Trees”. Add the SpeedTree asset you wish to paint in the resulting dialog, and it will then show up in the “Trees” section. See Unity's documentation on terrain SpeedTrees for more information.

    Note

    Grass SpeedTree assets are also painted using the "tree" tab, not with the Unity grass system.

    Wind

    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).

    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

    When using the Universal Render Pipeline (URP), there is a built-in shader for SpeedTrees that should work automatically as in the standard pipeline, though it is missing features like subsurface. With the High Definition Render Pipeline (HDRP), the SpeedTree meshes will have materials attached to them for the standard rendering pipeline. They will appear pink (ie shader error). You can switch to the standard Lit shader, or make your own in Shader Graph, though wind will no longer work.

    Starting in Unity 2021.2.0a17, 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.

    Copyright © 2023 Unity Technologies
    • Legal
    • Privacy Policy
    • Cookies
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)
    "Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
    Generated by DocFX.