Version: 2020.1
Trees
Wind Zones

SpeedTree

SpeedTree is a third-party product by IDV Inc, which provides prebuilt tree Assets and modeling software focused specifically on trees.

Unity recognizes and imports SpeedTree Assets in the same way that it handles other Assets. If you’re using SpeedTree Modeler 7, make sure to resave your .spm files using the Unity version of the Modeler. If you’re using SpeedTree Modeler 8, save your .st files directly into the Unity Project folder.

Make sure that Textures are reachable in the Project folder, and that Unity automatically generates Materials for each Level of Detail (LOD). When you select an Asset, there are import settings to tweak the generated GameObjectThe fundamental object in Unity scenes, which can represent characters, props, scenery, cameras, waypoints, and more. A GameObject’s functionality is defined by the Components attached to it. More info
See in Glossary
and attached Materials. Unity does not re-generate Materials when you re-import them, unless you click the Generate Materials or Apply & Generate Materials button. Therefore, it is possible to preserve any customizations to the Materials.

The SpeedTree importer generates a PrefabAn asset type that allows you to store a GameObject complete with components and properties. The prefab acts as a template from which you can create new object instances in the scene. More info
See in Glossary
with the LODGroup component configured. You can instantiate the Prefab in a SceneA Scene contains the environments and menus of your game. Think of each unique Scene file as a unique level. In each Scene, you place your environments, obstacles, and decorations, essentially designing and building your game in pieces. More info
See in Glossary
as a common Prefab instance, or select the Prefab as a tree prototype and paint it across the TerrainThe landscape in your scene. A Terrain GameObject adds a large flat plane to your scene and you can use the Terrain’s Inspector window to create a detailed landscape. More info
See in Glossary
.

Additionally, the Terrain accepts any GameObject with an LODGroup component as a tree prototype, and does not place limitations on the MeshThe main graphics primitive of Unity. Meshes make up a large part of your 3D worlds. Unity supports triangulated or Quadrangulated polygon meshes. Nurbs, Nurms, Subdiv surfaces must be converted to polygons. More info
See in Glossary
size, or number of Materials used. This is different from Tree Editor trees. However, be aware that SpeedTree trees usually use three to four different Materials, which as a result, issues a number of draw calls every frame. Thus, we recommend that you avoid heavy use of LODThe Level Of Detail (LOD) technique is an optimization that reduces the number of triangles that Unity has to render for a GameObject when its distance from the Camera increases. Each LOD level has either a Mesh with a Mesh Renderer component (Mesh LOD level) or a Billboard asset with a Billboard Renderer component (Billboard LOD level). Typically a single GameObject has three or four Mesh LOD levels and one optional Billboard LOD level to represent the same GameObject with decreasing detail in the geometry. More info
See in Glossary
trees on platforms, such as the mobile platforms, where additional draw calls are relatively costly in terms of renderingThe process of drawing graphics to the screen (or to a render texture). By default, the main camera in Unity renders its view to the screen. More info
See in Glossary
performance.

Materials

The SpeedTree Model Importer has a MaterialsAn asset that defines how a surface should be rendered, by including references to the Textures it uses, tiling information, Color tints and more. The available options for a Material depend on which Shader the Material is using. More info
See in Glossary
tab to improve the workflow for handling SpeedTree Material Assets. See documentation on the SpeedTree Model Importer’s Material tab page for more information.

Casting and receiving real-time shadows

To make billboards cast shadows correctly, Unity rotates billboards during the shadow caster pass to make them face the light direction (or light position in the case of point light) instead of facing the cameraA component which creates an image of a particular viewpoint in your scene. The output is either drawn to the screen or captured as a texture. More info
See in Glossary
.

To enable these options, select the BillboardA textured 2D object that rotates as it, or the Camera, moves so that it always faces the Camera. More info
See in Glossary
LOD level in the InspectorA Unity window that displays information about the currently selected GameObject, asset or project settings, allowing you to inspect and edit the values. More info
See in Glossary
of a SpeedTree Asset, check Cast Shadows or Receive Shadows in Billboard Options, and click Apply Prefab.

SpeedTree import settings
SpeedTree import settings

To change the billboard shadow options of instantiated SpeedTree GameObjects, select the billboard GameObject in the Hierarchy window and tweak these options in the Inspector of the Billboard RendererRenders Billboard assets, either from a pre-made asset (exported from SpeedTree) or from a custom-created file that you create using a script at runtime or from a custom editor, for example. More info
See in Glossary
.

The trees you paint on a Terrain inherit billboard shadow options from the Prefab. Use BillboardRenderer.shadowCastingMode and BillboardRenderer.receiveShadows to alter these options at runtime.

Known issues: As with any other renderer, the Receive Shadows option has no effect while using deferred rendering. Billboards always receive shadows in deferred path.


  • 2019–01–29 Page amended

  • Added information about SpeedTree 8 and related links

Trees
Wind Zones