Set Up LOD Groups in Unity 2022.3
An LOD Group selects different renderers as an object occupies less of the camera view. LOD0 is the nearest and most detailed level; later levels use progressively simpler meshes.
Place aligned mesh versions under one parent, assign each renderer to its level, then preview every transition.
- Add an LOD Group to the parent GameObject.
- Assign the detailed renderer to LOD0 and simpler renderers to later levels.
- Drag the camera preview control across the selection bar and test the object in Play Mode.
Configure the component in the Creator Companion world project, then test it from the viewpoints and platform builds used by that world. The Unity Scene view preview is useful, but it does not replace an in-world check.
Prepare the Mesh Levels
Each LOD level needs a renderer for a version of the same object. Keep the meshes aligned so switching levels does not move, rotate, or resize the visible asset.
A common hierarchy is:
Building_A
├── Building_A_LOD0
├── Building_A_LOD1
└── Building_A_LOD2
Check the following before configuring the component:
LOD0is the most detailed mesh.- Each later level contains less geometry.
- Pivots, positions, rotations, and scales match.
- Materials and UVs still produce the intended appearance.
- Every mesh has a Mesh Renderer.
- The parent represents the complete object that will receive the LOD Group.
If lower-detail meshes have not been created yet, use Reduce Meshes in Blender or Maya for Unity LODs.
Add the LOD Group Manually
- Create or select the parent GameObject.
- Make each LOD mesh GameObject a child of that parent.
- Select the parent.
- In the Inspector, choose Add Component.
- Add Rendering > LOD Group.
Unity supports up to eight LOD levels in one LOD Group. More levels are not automatically better; use the number supported by the available mesh versions and visible transition requirements.
Assign Renderers to Each Level
The colored boxes in the LOD Group selection bar represent the levels and the final culling region.
- Select the LOD0 box.
- In its Renderers list, add the Mesh Renderer belonging to the detailed mesh.
- Select LOD1.
- Add the renderer for the first lower-detail mesh.
- Repeat for every remaining level.
- Remove any renderer assigned to the wrong level.
- Click Recalculate Bounds after changing the levels or renderer set.
Unity normally uses child GameObjects for LOD renderers. If a selected renderer is not already a child of the LOD Group object, the editor can prompt to parent it.
Use this mapping as a final check:
| LOD box | Renderer | Expected detail |
|---|---|---|
| LOD0 | AssetName_LOD0 |
Highest detail; nearest view. |
| LOD1 | AssetName_LOD1 |
First reduced mesh. |
| LOD2 | AssetName_LOD2 |
Lower-detail distant mesh. |
| Culled | No renderer | Nothing from this LOD Group is rendered. |
Understand the Transition Percentages
LOD Group percentages are not fixed distances in metres. Unity calculates each threshold from:
the object's screen-space height divided by the total screen height
If a transition threshold is 50%, that level becomes active when the object's height occupies half of the camera view.
This means a transition can change when:
- The camera field of view changes.
- The object or its bounds changes size.
- The screen aspect or camera framing changes.
- Project-wide LOD Bias is not
1.
The Inspector displays a warning when LOD Bias affects the preview. Do not copy transition percentages between unrelated objects and assume they represent the same world distance.
Set the Transition Thresholds
The left edge of each LOD box controls where that level becomes active.
- Select the parent GameObject.
- Drag the boundary between
LOD0andLOD1. - Move the Scene view camera toward and away from the object.
- Adjust the threshold until the simpler mesh becomes active after its lost detail is no longer important.
- Repeat for each later level.
- Adjust the final boundary to control when the object becomes culled.
Keep the transition based on the visible difference between adjacent meshes. A lower-detail mesh that changes the silhouette significantly needs a later transition or a less aggressive reduction.
Preview Every Level
The camera icon above the LOD selection bar acts as a preview playhead.
- Drag the camera icon from the
LOD0side toward Culled. - Watch the Scene view overlay identify the active level.
- Stop on each boundary and compare both adjacent meshes.
- Rotate around the object and repeat the preview.
- Enter Play Mode and approach from normal scene routes.
Unity shows the preview label when a single LOD Group GameObject is selected. Selecting multiple objects can hide that label.
Choose a Fade Mode
Unity 2022.3 provides these LOD fade modes:
| Fade mode | Behavior |
|---|---|
| None | Switches levels without an LOD fade. |
| Cross Fade | Blends between neighboring LOD levels. |
| Speed Tree | Uses the SpeedTree transition method for imported SpeedTree models. |
With Cross Fade, both neighboring levels are rendered during the transition region. Unity calculates a blend factor and passes it to compatible shaders. A material or custom shader must support the relevant LOD fade behavior for the transition to appear as intended.
When Animate Cross-fading is enabled, Unity uses a time-based transition. Disable it to set Fade Transition Width for a position-based transition zone within the selected level.
Use Speed Tree only for the matching SpeedTree workflow documented by Unity.
Recalculate Bounds and Lightmap Scale
Two LOD Group buttons update derived settings:
| Button | Use |
|---|---|
| Recalculate Bounds | Rebuilds the LOD Group bounding volume after levels or renderer meshes change. |
| Recalculate Lightmap Scale | Updates each LOD Mesh Renderer's Scale in Lightmap from the changed LOD boundaries. |
Incorrect or stale bounds can affect the screen-space size Unity uses for level selection. Recalculate bounds after replacing meshes, adding a level, or changing the renderer hierarchy.
Use Recalculate Lightmap Scale when the LOD renderers participate in baked lightmapping and their level boundaries have changed.
Import a Pre-Named LOD Set
Unity can configure the component during model import when meshes in an FBX use _LODX suffixes:
AssetName_LOD0
AssetName_LOD1
AssetName_LOD2
- Create and name the meshes in the external 3D application.
- Export them together as an FBX.
- Import the FBX into Unity.
- Expand the imported model.
- Confirm Unity created an LOD Group with the matching renderers.
- Review its thresholds and bounds rather than assuming the imported defaults suit the scene.
LOD0 must be the most detailed imported mesh. The number after _LOD increases as detail decreases.
Verification Checklist
Before reusing the asset throughout a scene, confirm:
- Each level contains only its intended renderer.
- The mesh does not jump at a transition.
- Materials remain correct on every level.
- The silhouette stays recognizable at the assigned screen size.
- The final level does not disappear while the object is still important.
- Cross Fade is supported by the materials when enabled.
- Bounds cover every LOD mesh.
- Play Mode testing matches the Scene view preview.
For a repeated prefab, verify the source prefab first and then inspect several placed instances at different scales and distances.
Troubleshooting
The wrong mesh appears at an LOD level.
Select the affected LOD box and inspect its Renderers list. Remove the incorrect renderer, add the matching mesh renderer, and click Recalculate Bounds.
The object jumps or changes scale during a transition.
Compare the transforms and pivots of every LOD child. The meshes must occupy the same position, rotation, and scale before the LOD Group switches between them.
The object disappears too close to the camera.
Move the boundary before the Culled region farther to the right so the final renderer remains active at a smaller screen-space height. Retest from the camera views used in the scene.
The transition distance changes when the camera changes.
This is expected because Unity uses screen-space height rather than a fixed world distance. Field of view, framing, object bounds, and LOD Bias can all affect when a threshold is crossed.
Cross Fade does not blend correctly.
Confirm the LOD Group uses Cross Fade and that the materials or shaders support Unity's LOD fade behavior. Use None when the shader does not implement the required fade mode.
Unity did not create an LOD Group during FBX import.
Check that the meshes were exported together and use matching base names followed by _LOD0, _LOD1, and subsequent numbers. Correct the names or hierarchy, then reimport the model.
The Scene view does not show the active LOD label.
Select one GameObject containing the LOD Group. Unity documents that the LOD label appears only when a single object is selected.
Continue Learning
- Reduce Meshes in Blender or Maya for Unity LODs
- Import 3D Assets for VRChat Worlds
- Simple Occlusion Culling
- Unity Performance Basics for VRChat Worlds
Official References
- Unity 2022.3 Manual: Level of Detail for meshes
- Unity 2022.3 Manual: LOD Group
- Unity Manual: Import or create LOD levels
- Unity 2022.3 Scripting Reference: LODFadeMode
Next Step
Test the completed asset beside other visibility controls with Simple Occlusion Culling.