Automatic Level of Detail (LOD) generator and mesh simplifier for Unity.
Transform complex 3D meshes into optimized LOD groups with just a few clicks. Perfect for game developers who want to improve performance without manually creating multiple mesh versions.
- One-Click LOD Generation - Automatically create LOD groups with configurable quality levels
- Batch Processing - Process multiple objects at once for efficient workflow
- 6 Built-in Presets - Pre-configured settings for different platforms and use cases
- Customizable LOD Levels - Configure 2-6 LOD levels with individual quality settings
- Real-time Preview - See estimated vertex/triangle counts before generation
- Static Meshes - Full support for MeshFilter + MeshRenderer objects
- Skinned Meshes - Full support for SkinnedMeshRenderer (animated characters)
- Save to Assets - Export generated meshes as reusable .asset files
- Drag & Drop Support - Simply drag objects from hierarchy or project window
- Context Menu Integration - Right-click on objects for quick access
- Keyboard Shortcuts - Speed up your workflow with hotkeys (Ctrl+Alt+L)
- Undo Support - Full integration with Unity's undo system
- Custom Presets - Save and load your own preset configurations
This plugin requires UnityMeshSimplifier.
- Open Window > Package Manager
- Click + > Add package from git URL
- Enter:
https://github.com/Whinarn/UnityMeshSimplifier.git - Click Add
Option A: Import Unity Package
- Download
Auto-LOD-Generator.unitypackagefrom this repository - In Unity, go to Assets > Import Package > Custom Package
- Select the downloaded file and import
Option B: Clone Repository
- Clone this repository into your project's
Assets/Pluginsfolder
- Open Tools > Auto LOD Generator > Open Window
- Select a GameObject with a mesh in your scene
- Choose a preset or customize settings
- Click Generate LOD Group
- Right-click on any mesh object in the Hierarchy
- Select Auto LOD > Generate LOD Group
- Ctrl+Alt+L (Windows) / Cmd+Alt+L (Mac) - Quick Generate LOD Group
| Preset | LOD Levels | Best For |
|---|---|---|
| Performance | 3 | Maximum FPS, aggressive simplification |
| Balanced | 4 | General use, good quality/performance balance |
| Quality | 5 | Visual fidelity, gradual transitions |
| Mobile (Low-end) | 2 | Budget mobile devices |
| Mobile (High-end) | 3 | Modern mobile devices |
| VR | 4 | VR applications, avoids LOD popping |
You can save your own custom presets:
- Open the main window
- Go to the Presets tab
- Configure your settings
- Enter a name and click Save
Custom presets are stored in Assets/Plugins/Auto-LOD-Generator/Editor/Presets/.
Tools > Auto LOD Generator > Open Window- Main interfaceTools > Auto LOD Generator > Quick Generate LOD Group- Generate with Balanced presetTools > Auto LOD Generator > Quick Simplify (50%)- Create 50% simplified meshTools > Auto LOD Generator > Generate with Preset > ...- Generate with specific preset
Auto LOD > Generate LOD Group- Generate LOD groupAuto LOD > Simplify Mesh (50%)- Create 50% simplified versionAuto LOD > Simplify Mesh (25%)- Create 25% simplified versionAuto LOD > Open Generator Window...- Open main window
Enable Save Meshes to Assets in the Save Options section to:
- Export generated LOD meshes as .asset files
- Reuse meshes across multiple prefabs
- Reduce scene file size
- Default save location:
Assets/GeneratedLODs/
The plugin automatically detects and handles:
- Static meshes (MeshFilter + MeshRenderer)
- Skinned meshes (SkinnedMeshRenderer)
For skinned meshes, the plugin preserves:
- Bone references
- Root bone assignment
- Blend shapes (if applicable)
- Animation quality settings
In the main window, expand Advanced Settings to customize:
- Quality Factors - Mesh quality for each LOD level (0.0 - 1.0)
- Screen Transition Heights - When each LOD level activates based on screen coverage
- Culled Level - Optional level that completely hides the object at distance
- Open the main window and go to the Batch Process tab
- Drag multiple objects or click Add from Selection
- Configure settings
- Enable Save Meshes to Assets if needed
- Click Process X Objects
For programmatic access, use the LODGeneratorCore class:
using Plugins.AutoLODGenerator.Editor;
// Generate LOD group with default settings
var settings = new LODGeneratorSettings();
settings.ApplyPreset(LODPreset.Balanced);
var result = LODGeneratorCore.GenerateLODGroup(myGameObject, settings);
if (result.Success)
{
Debug.Log($"Generated LOD group: {result.GeneratedLODGroup.name}");
Debug.Log($"Original vertices: {result.OriginalVertexCount}");
}
// Generate with mesh saving
var resultWithSave = LODGeneratorCore.GenerateLODGroup(
myGameObject,
settings,
saveMeshesToAssets: true,
meshSavePath: "Assets/MyLODs");
// Simplify a single mesh
var simplifyResult = LODGeneratorCore.GenerateSimplifiedMesh(
myGameObject,
quality: 0.5f,
saveMeshToAssets: true);
// Batch processing
var batchResult = LODGeneratorCore.ProcessBatch(
gameObjectArray,
settings,
progressCallback: (progress, status) => Debug.Log($"{progress:P0} - {status}"),
saveMeshesToAssets: true
);
// Save/Load custom presets
settings.SaveAsPreset("MyCustomPreset");
settings.LoadPreset("MyCustomPreset");
// Get available custom presets
string[] presets = LODGeneratorSettings.GetCustomPresetNames();
// Check mesh renderer type
var type = LODGeneratorCore.GetMeshRendererType(gameObject);
if (type == MeshRendererType.SkinnedMeshRenderer)
{
Debug.Log("This is a skinned mesh!");
}- Unity 2021.3 LTS or newer
- UnityMeshSimplifier package
"Object does not have a valid mesh"
- Ensure the selected object has either:
MeshFilter+MeshRenderercomponents, ORSkinnedMeshRenderercomponent
LOD transitions are too aggressive/subtle
- Adjust Screen Transition Heights in Advanced Settings
- Try a different preset
Simplified mesh looks bad
- Increase the quality factor
- Some mesh topologies don't simplify well - try a higher quality setting
Skinned mesh animations break after LOD generation
- Ensure the original skeleton hierarchy is preserved
- Check that bone references are correctly assigned
Contributions are welcome! Please read our Contributing Guidelines before submitting issues or pull requests.
- Clone the repository
- Open the
Project Filesfolder in Unity 2021.3+ - Install the UnityMeshSimplifier package
- Make your changes
- Submit a pull request
See CHANGELOG.md for version history and release notes.
This project is licensed under the GNU General Public License v3.0 - see the LICENSE file for details.
- Based on UnityMeshSimplifier by Mattias Edlund
- Icon Source
