Optimize mesh rendering using level of detail (LOD)
Mesh LOD

Introduction to level of detail

Level of detail (LOD) is a technique that improves performance by reducing the rendering workload.

Without a 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. More info
See in Glossary
solution, Unity renders an object with the same complexity no matter the size of the object on the screen. For example, in one frame, a 3D model of a building might occupy the whole game view. Then a player moves away from the building and it might be only a few pixelsThe smallest unit in a computer image. Pixel size depends on your screen resolution. Pixel lighting is calculated at every screen pixel. More info
See in Glossary
high on the screen, but Unity has to render the same 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
.

With a LOD solution, as a 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
becomes smaller on the screen, Unity can reduce the rendering workload using one or a combination of the following approaches:

  • Reduce the number of polygons to render.

  • Reduce the complexity or the number of materials to render.

  • Reduce the number of Mesh RendererA mesh component that takes the geometry from the Mesh Filter and renders it at the position defined by the object’s Transform component. More info
    See in Glossary
    components.

Unity refers to objects representing levels of detail using indices, where a LOD with index 0 (LOD0) represents the most detailed LOD, and LODs with higher indices have progressively lower amounts of detail (LOD1, LOD2, and so on).

Left: at LOD0, meshes have a large number of small triangles. Right: at LOD1, the meshes have far fewer triangles, which are much larger in size.
Left: at LOD0, meshes have a large number of small triangles. Right: at LOD1, the meshes have far fewer triangles, which are much larger in size.

LOD features in Unity

Unity implements two different LOD features:

Each feature has its advantages and uses a different format for LOD objects. The following table provides a comparison of key characteristics of the features.

Mesh LOD LOD Group
The feature focuses on reducing the number of polygons to draw with minimum memory footprint and computational overhead. Does not optimize materials or number of draw calls. A flexible solution with a larger memory footprint and computational overhead. When authoring LOD objects, you have the following optimization options for each LOD:
  • Create a less detailed mesh.
  • Reduce the number of materials or submeshes, which reduces the number of draw calls.
  • Optimize settings on materials.
  • Optimize Mesh Renderer settings.
Provides the option to create LODs automatically on model import. Requires manual authoring of each LOD mesh in an external tool.
Unity stores each LOD in the index buffer of the original mesh. Each LOD is one or a set of Mesh Renderer components. Users can access and configure each LOD using the Editor interface.
Provides a smaller memory footprint compared with LOD Group. Has a smaller rendering workload overhead compared to LOD Group because Mesh LOD does not use any extra GameObjects, components, or meshes. Has a larger memory footprint and computational overhead compared with Mesh LOD.
Provides parameters that control LOD transitions implicitly. Lets users explicitly specify object size on screen at which a LOD transition occurs per LOD index.

Additional resources


Did you find this page useful? Please give it a rating:

Optimize mesh rendering using level of detail (LOD)
Mesh LOD