Lumberyard
User Guide (Version 1.21)

Using Actor LODs to Optimize Game Performance

You can use levels of detail (LODs) to optimize the rendering performance of games. This is especially true for large in-game worlds, which are constrained by hardware, frame rate, and the real-time rendering limits. LODs increase performance and reduce draw calls by displaying progressively less detail in objects that are farther from the camera. To further reduce draw calls, lower LODs have multiple textures combined into one texture.

Using Actor LODs in Lumberyard

In Lumberyard, you can use up to six actor LODs. An LOD of 0 has the highest level of detail, and an LOD of 5 the least. Each successive LOD typically has its vertices reduced by 50 percent from the previous level and reduces the number of materials used.

Features

In Lumberyard, you can use actor LODs on skinned meshes, skeletons, and materials or textures. Lumberyard performs the following actions:

  • Provides a Simple LOD Distance component that supports rendering of different LODs.

  • Reads and imports skinned mesh LODs from a single FBX file.

  • Auto populates skinned mesh LODs that use a soft naming convention.

Requirements and Limitations

Note the following requirements:

Skinned Meshes

  • Each LOD mesh must skin to the same skeleton. However, you can choose which bones to skin to.

Skeletons

  • To skin each LOD mesh to a different skeleton, create a separate skeletal hierarchy.

  • For each LOD, the skeleton hierarchy must remain the same. Remove leaf bones first and work up the chain.

  • In lower LODs, you cannot remove in-between bones. For instance, if you have Spine1, Spine2 and Spine3 for an LOD of 0, you cannot delete Spine2 and leave Spine1 and Spine3.

Materials or Textures

  • Each actor requires a separate material group.

  • Create a material LOD in the same way that you create a material for static meshes.

Using Digital Content Creation Tools to Create LODs

To author actor LODs in a DCC tool like Autodesk Maya or Autodesk 3ds Max, you can use one of the following two methods:

  • Soft naming conventions

  • LOD groups

    Important

    Currently, Lumberyard supports skeletons created with LOD groups only.

To use the soft naming convention to create LODs

  1. Create an actor with multiple LOD meshes by adding a suffix at the end of the name of each LOD mesh. See the following table for examples.

    Suffix Example
    _lod0 Rin_lod0
    _lod1 Rin_lod1
    _lod2 Rin_lod2
    _lod3 Rin_lod3
    _lod4 Rin_lod4
    _lod5 Rin_lod5

    For more information, see FBX Soft Naming Conventions.

  2. Follow the instructions in Best Practices for Creating and Exporting Meshes to export the meshes to FBX format so that you can use them in Lumberyard.

To use LOD groups to create actor LODs

  • To create an actor with multiple LOD meshes, use an empty LOD group as the parent of the skeleton and the LOD meshes. The following example shows a skeleton created with an LOD group and imported into Lumberyard.

    
                        Skeleton created as an LOD group

Using the FBX Settings Tool to Check LODs

After you export your .fbx file to Lumberyard, do the following:

To use the FBX Settings to check LODs

  1. In Lumberyard Editor, choose Tools, Asset Browser.

  2. Right click the .fbx file and choose Edit Settings. The FBX Settings tool shows a Level of Detail modifier that lists the additional LOD meshes.


                LOD entries in the FBX Settings tool

You can use the FBX Settings tool to verify that your LODs were imported correctly. Currently, you can also unselect a mesh or skeleton for each LOD, but you can't move a mesh or skeleton across a level or add a new mesh or skeleton to a level.

Adding Actor LOD to a Level in Lumberyard

After you import your LODs into Lumberyard Editor, you can add an actor LOD to a level.

To add an actor LOD to a level in Lumberyard

  1. In Lumberyard Editor, choose Tools, Asset Browser.

  2. Select and drag the exported .fbx file to the viewport. In the Actor component that appears in the Entity Inspector, a shared material file with multiple materials contains the LOD asset.

  3. To preview the LODs, change the number for LOD Level in the Actor component.


                    LOD material file in the Actor component in the
                            Entity Inspector.

Notes

  • Lumberyard supports only one material group for each actor.

  • Author the material definition (.mtl) file with all the actor LOD submaterials inside the same .mtl file.

  • If you author in Maya, you can assign a different shader for each LOD mesh or use the same shader for all the meshes.

Adding the Simple LOD Distance Component

To enable rendering of levels of detail in Lumberyard, you must add the Simple LOD Distance component to your level. The Simple LOD Distance component performs a simple LOD distance check. The LOD distance is the distance that the current level of detail must reach before it changes to the next LOD. Each distance must be greater than the previous distance.

To add the Simple LOD Distance component to your level

  1. In Lumberyard Editor, choose Tools, Entity Inspector.

  2. In Entity Inspector, click Add Component.

  3. In the Animation section, select the Simple LOD Distance component.

  4. Specify an LOD distance or use the default.

  5. In the viewport, zoom out. Notice that the actor mesh changes for each level of detail when the specified LOD distance is reached.