Skip to content

Devinci297/MSFS-LOD-Maker

Repository files navigation

MSFS LOD Maker Addon

Overview

MSFS LOD system for collections in Blender 3.6 & above, with LOD generation and automatic MSFS LOD value calculation. It allows for easy management and generation of LODs, with features for decimation, material conversion, texture baking, and automatic optimization of LOD values for the MSFS Multi-Export addon.

Installation

  1. Download the addon ZIP file.
  2. In Blender, go to Edit > Preferences > Add-ons.
  3. Click "Install" and select the downloaded ZIP file.
  4. Enable the addon by checking the box next to "Scene: MSFS LOD Maker".

Features

  • Automatic LOD setup for collections
  • Flexible LOD generation methods: Choose between Mixed/All Decimate (recommended), Decimate Only, or Shrinkwrap Only
  • Selective LOD generation: Choose which LOD levels to generate (LOD01, LOD02, LOD03) via checkboxes
  • Multiple LOD00 collection support: Processes all active _LOD00 collections in the scene simultaneously
  • Customizable vertex color handling: Automatic, White Only, Bake All, or Transfer All modes
  • Automatic MSFS LOD value calculation based on object size and MSFS 2024 documentation
  • Quick default LOD values: One-click button to set standard values (4, 3, 2, 1)
  • Integration with MSFS Multi-Export addon - automatically sets optimal LOD values and enables proper settings
  • Conversion between MSFS and Blender materials
  • Enhanced vertex color handling:
    • LOD00-01: Pure white vertex colors (no texture baking)
    • LOD02: Bakes vertex colors from LOD00 albedo textures
    • LOD03: Inherits vertex colors from LOD02 (copied during LOD03 generation)
    • Automatically sets "Color" as default attribute for LOD00-03
  • Small object culling for higher LODs
  • Manual LOD value override option
  • User-adjustable modifiers: Decimate modifiers are left unapplied for manual fine-tuning
  • Auto base collection creation: Automatically offers to create a _LOD00 base collection from scene objects if none exists

LOD Generation Methods

The addon offers three generation methods via dropdown selection:

Mixed / All Decimate (Recommended)

  • All LODs (LOD01-03): Uses Decimate method for consistent mesh simplification
  • LOD03: Copied from LOD02 with an additional decimate pass for further simplification
  • Best balance between quality and performance

Decimate Only

  • All LODs: Uses Decimate method for consistent mesh reduction
  • Good for objects where shape preservation is critical
  • Maintains original topology structure

Shrinkwrap Only

  • All LODs: Uses Shrinkwrap method for aggressive optimization
  • Creates cube-based proxy geometry for all LODs
  • Maximum performance focus for distant objects

Vertex Color Modes

Choose how vertex colors are handled across LODs (found under Advanced Settings):

Automatic (Default)

  • LOD00-01: Pure white vertex colors
  • LOD02: Baked from LOD00 albedo textures
  • LOD03: Inherits vertex colors from LOD02

White Only

  • All LODs: Pure white vertex colors
  • Fastest generation, no texture baking

Bake All

  • LOD00-01: Pure white vertex colors
  • LOD02: Baked from LOD00 albedo textures
  • LOD03: Inherits vertex colors from LOD02

Transfer All

  • LOD00-01: Pure white vertex colors
  • LOD02-03: Gray vertex colors

Usage

  1. In the Scene Properties panel, find the "MSFS LOD Maker" section.
  2. Enable the LOD system by clicking the checkbox in the panel header.
  3. Important: Make sure your LOD00 collection(s) are active (checked) in the Scene Collections panel - only active LOD00 collections will be processed for LOD generation.
  4. Open the Generation Settings sub-panel to configure:
    • LOD Generation Method: Choose between Mixed (All Decimate), Decimate Only, or Shrinkwrap Only
    • LOD Selection: Check/uncheck which LOD levels to generate (LOD01, LOD02, LOD03)
    • Basic Settings: Adjust "Small Object Threshold" and "Decimate Angle" as needed
    • Advanced Settings: Configure vertex color mode (Automatic, White Only, Bake All, Transfer All)
  5. Open the MSFS Optimization sub-panel to configure:
    • Enable "Automatic Calculation" (default) for smart LOD values based on object size
    • Or disable it and provide manual values (comma-separated, e.g., "12,3,2,1")
    • Use "Set Default (4,3,2,1)" for quick standard LOD values
    • Use "Calculate & Apply" to calculate and set values based on object size
  6. Click the Generate LODs button in the Generate LODs sub-panel to create LOD versions:
    • Uses the selected generation method for all LODs
    • LOD03 is generated by copying from LOD02 and adding an additional decimate pass
    • Automatically sets MSFS LOD values based on object size
    • Activates MSFS Multi-Export settings: Enables "Grouped by Collections" and the first LOD group
    • Sets "Color" as default vertex color attribute for LOD00-03
    • LOD00 gets pure white vertex colors (no texture baking)
  7. Modifier Tools: After LOD generation, use the Modifier Tools sub-panel to apply modifiers on a per-collection basis when satisfied
  8. Use the material conversion tools if working with MSFS materials.

Collection Management

  • Active Collections Only: The addon only processes LOD00 collections that are active (checked) in the Scene Collections panel
  • Multiple LOD00 Collections: All active _LOD00 collections are processed in a single operation
  • This gives you full control over which collections get LOD generation
  • Inactive (unchecked) LOD00 collections will be ignored during LOD generation
  • The console will show which collections are being processed or skipped
  • Auto Base Collection: If no _LOD00 collection exists, the addon will offer to create one by moving all top-level scene objects into a new LOD00 collection

MSFS LOD Value Calculation

The addon automatically calculates optimal LOD values based on:

  • Object size (bounding box dimensions in meters)
  • MSFS 2024 documentation and real-world testing:
    • Very small objects (< 0.5m): Quick disappearance (scaling factor 0.3)
    • Small objects (0.5-1m): Early culling (scaling factor 0.5)
    • Small-medium objects (1-2m): Moderate culling (scaling factor 0.7)
    • Medium objects (2-5m): Balanced approach (scaling factor 0.85)
    • Medium-large objects (5-10m): Base values (scaling factor 1.0)
    • Large objects (10-20m): Conservative culling (scaling factor 1.2)
    • Very large objects (20-50m): Extended visibility (scaling factor 1.5)
    • Massive objects (>50m): Maximum visibility (scaling factor 2.0)

The calculated values follow the correct MSFS pattern:

  • LOD0: Highest value (most visible from distance)
  • LOD1-3: Progressively decreasing values
  • Pattern: LOD0 > LOD1 > LOD2 > LOD3 (e.g., 12.0, 3.0, 2.0, 1.0)
  • Important: Higher values mean objects are visible from greater distances
  • Values are based on screen percentage when LOD switches occur

LOD03 Generation

LOD03 is generated by copying objects from the LOD02 collection and applying an additional decimate modifier for further mesh simplification. This approach:

  • Preserves LOD02's vertex colors: LOD03 inherits vertex colors from LOD02 for consistent appearance
  • Additional simplification: Applies a decimate modifier with an increased angle (4× the base decimate angle increment) for aggressive yet controlled simplification
  • Requires LOD02: LOD03 depends on LOD02 being generated first; if LOD02 is unavailable it falls back to processing from the base collection

Tips

  • Ensure your base model is in a collection named with the suffix "_LOD00".
  • Important: Make sure your LOD00 collection is active (checked) in the Scene Collections panel before running LOD generation.
  • Use descriptive names for your LOD collections (e.g., "MyModel_LOD00", "MyModel_LOD01", etc.).
  • Important: LOD collections must follow the exact naming pattern: [BaseName]_LOD00, [BaseName]_LOD01, [BaseName]_LOD02, [BaseName]_LOD03
  • If you have a collection ending with an underscore (e.g., "Antenna_"), the addon will automatically handle it correctly
  • Adjust the decimate angle increment to control the level of simplification between LODs.
  • The small object threshold helps remove tiny details in higher LODs for better performance.
  • Control which collections are processed: Use the checkboxes in the Scene Collections panel to activate/deactivate LOD00 collections for processing.
  • Make sure the MSFS Multi-Export addon is enabled for automatic LOD value setting to work.
  • Check the Blender Console (Window > Toggle System Console) for detailed debugging information during LOD generation.
  • Modifier Tools: After LOD generation, review and apply modifiers on a per-collection basis using the Modifier Tools sub-panel.

MSFS 2024 Workaround (Invisible Cubes)

To prevent LOD culling issues in MSFS 2024:

  1. Go to the MSFS Optimization panel.
  2. Find the MSFS 2024 Workaround box.
  3. Adjust the Size Multiplier (default 20.0).
  4. Click Generate Invisible Cubes.
    • This creates a large invisible cube around your objects in each LOD collection.
    • The material is named [CollectionName]_InvisibleMat.
    • It uses the standard msfs_invisible material type.

Troubleshooting

LOD Collections Not Showing in MSFS Multi-Export

If your LOD collections are not appearing correctly in the MSFS Multi-Export addon:

  1. Check Collection Naming: Ensure collections follow the exact pattern: [BaseName]_LOD00, [BaseName]_LOD01, etc.
  2. Enable Console Logging: Open Blender Console (Window > Toggle System Console) to see detailed debug information
  3. Verify Base Collection: Make sure you have a collection ending with _LOD00 as your base
  4. Check MSFS Multi-Export: Verify the MSFS Multi-Export addon is enabled in Blender preferences
  5. Manual Setup: Use the "+" button to manually add LOD collections to the list

Collections with Trailing Underscores

If your original collection name ends with an underscore (e.g., "Antenna_LOD00"), the addon will automatically clean this up to avoid double underscores in generated names.

Debug Information

The addon provides detailed console output showing:

  • Base collection name and extracted base name
  • LOD collection names being created/found
  • Generation method used for each LOD level
  • Vertex color mode and handling applied
  • MSFS Multi-Export integration status
  • LOD values being set

Author

Devinci

License

MIT License

Copyright (c) 2025 Devinci

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Support

For issues and feature requests, please open an issue on GitHub.

About

MSFS LOD system for collections in Blender 3.6 & above, with LOD generation

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors