Lumi

Lumi

Mod

A full replacement of the Minecraft lighting engine with an extendable API

Client and server LibraryOptimization

310 downloads
3 followers
Follow Save
90% of ad revenue goes to creators. Go ad-free while supporting creators with Modrinth Plus. Subscribe today!

A full replacement of the Minecraft lighting engine with an extendable API, shipping with Phosphor as a reference implementation.

Dependencies

Performance

The main performance improvement comes from the fact that the lighting engine is evaluated "lazily", thus it is able to batch more lighting updates into a single pass.

Here are some simple to understand values, generated via profiling a pre-set test case:

Test Case
  • World Type: Default
  • World Seed: 123
  • Game Mode: Creative
  • Render Distance: 16

Profiler is started right before clicking Create New World, and stopped after 10 seconds of flying in a straight line in creative mode.

Without Lumi, the active server time spent in lighting engine is 34% of the total active server time (not counting when the server thread is sleeping).

With Lumi, this fraction goes down to 13%, or an approximately 2.5x performance increase over vanilla.

Flame Graphs

Horizontal axis is time, vertical axis is the call stack. The blue highlighted parts are calls to the lighting engine update method.

Flame Graph Without Lumi

Flame Graph With Lumi

Incompatibilities

  • ArchaicFix: Config Change Needed
    • As both mods replace the same parts of code, naturally you will need to set enablePhosphor to false in the ArchaicFix config.
  • CoreTweaks: Config Change Needed
    • The fix_heightmap_range feature is already implemented in Lumi's lighting engine. Set it to false in the CoreTweaks config.

Both of these configs will be automatically modified by Lumi automatically when you launch the game, so you shouldn't even need to edit the config files manually.

Authors

Credits


Project members

FalsePattern

Author

basdxz

Co-Author

Details

Published 3 months ago
Updated 3 months ago