Highlights:
- MC 1.20.3, 1.20.4, 1.20.6 support
- No forge support for 1.20.6 due to Forge compiler issues
- Added NeoForge support for 1.20.6
- Massive memory decrease, especially at high render distances
- 1024 at medium can be loaded with 4 GB of memory
- Massive database file size decrease
- Note: This will only affect new worlds, old databases will be migrated to the new format, but have to be manually vacuumed to shrink their file size.
- Frustum culling
- Fixed rendering hollow structures
- Up the api version number 1.0.0 -> 2.0.0
- This means there were some breaking API changes
- World gen doesn't regenerate the same terrain twice
- World gen also starts faster after loading into the world.
- API methods needed for Iris 1.7.0 support
Core DH Changes
Additions:
- MC 1.20.3 / 1.20.4 support - coolGi, James
- Frustum culling - NULL
- New rendering option so grass fades to dirt - IMS, James
- Simple material IDs to rendering data for use with Iris - James
- corrupt data read handling - James
- JarUtil/SelfUpdater error handling - James
- Buffer count to the F3 menu - James
- IP only server folder mode - James
Improvements:
- Improve downsampling / low detail rendering - James
- IE hollow structures will no longer render incorrectly at lower detail levels
- Smaller database file sizes - James
- Added LZMA as the new default compression option
- LZMA provides roughly 3x the compression vs the previous compressor
- Add lossy world compression, defaults to "visually equal"
- Added LZMA as the new default compression option
- Massively reduce memory use and reduce GC pressure - James
- Speed up world gen queue initial loading - James
- Vertical LOD rendering improvements - Builderb0y
- RenderDataTransformer improvements - Cola
- Glass/transparent block improved color rendering - Cola, IMS
Changes:
- Overhaul data structure and file handling - James
- Fixes holes with world gen - James
- Overhaul the database format - James
- Add automatic DB migration - James
- Migration progress can be seen in the log and f3 menu
- Removed DhRenderData - James
- Change overdraw to a number input - James
- Improve transparent rendering (IE Glass) - IMS, Cola
- rename "Horizontal Quality" -> "LOD Dropoff Distance" - James
- Refactored logos into assets/distanthorizons - coolGi
- Change the SQLite journal mode DELETE -> WAL - James
- Improve initalization logic - s809
- Improve StepFeatures logging - James
- Add data source pooling to reduce GC pressure - James
- Mark Iris 1.6.0 and older as incompatible - James
- Iris already hid DH rendering anyway, so this just makes it clearer
- Make leaf colors match fancy graphics - Cola
- Move most async GL calls to the render thread - James
- Only log empty biomeWrapper strings once per session - James
- Remove unnecessary string concatenations in assertions - James
- Disable cave culling in the end - James
- Rename unused debug wireframe configs - James
Bug Fixes:
-
Fix holes in the world when using world gen - James
-
Fix world gen re-generating the same terrain - James
-
Fix world gen for extreme render distances - James
-
Fix ocean lighting grid issue - James
-
Fix C2ME support - James
- Changing C2ME's config should no longer be necessary to run it with DH.
-
Fix SSAO and Fog not applying when Optifine shaders are enabled - James
-
Fix BiomeWrapper warning about null level on startup - James
-
Fix missing indium crashing with a messy error when java.awt is headless - James
- The error message will now be much clearer and in most cases, should have a pop-up dialog explaining the problem.
-
Fix Z-fighting at very high heights - James
-
Fix red LODs rendering in random places
- IE Added a config which is disabled by default to render overlapping quad errors - James
-
Fix rendering holes (most of the time) - James
-
Fix F3 menu not removing levels after leaving when multiverse support is active - James
-
Fix LodRenderSections not stopping load futures when closed - James
-
Fix a rare concurrent lighting engine issue with ChunkWrapper.getBlockLightPosList() - James
-
Fix purple Chisels & Bits block rendering - Pierre Remacle
- IE make Chisels & Bits blocks transparent
-
Fix ThreadPool null pointer before world startup - James
-
Fix world gen lockup if the file system fails - James
-
Fix chunk break/place events not triggering fabric updates post MC 1.17 - James
-
Fix Optifine not running in the dev environment - James
-
Fix light engine out of bounds for MC 1.16 and 1.17 - James
-
Fix File handler repos not closing - James
-
Fix transparent ocean floors at low detail levels - James
-
Fix warning about BiomeWrapper null level on startup - James
-
Fix white grass/water if the biome is null - James
-
Fix optifine 1.16 support - James
-
Fixed mod auto-updating on quilt - coolGi
-
Fix thread pool error logging after shutdown - James
-
Fix corrupt data or moving data between MC versions causing monoliths - James
-
Fix #49 shaders render incorrectly - IMS
- This is specifically fixed for Iris 1.7.0+
-
Fix #94 Rendering issues with Immersive Portals
-
Fix #414 Added (nearly) unlimited vertical quality graphics option
-
Fix #449 LodNodeBufferBuilder crash due to index out of bounds
-
Fix #595 crash on save and exit - James
-
Fix #597 Show Create logo in DH's update menu
-
Fix #613 multiplayer failing due to folder not existing - James
-
Fix #615 lag when rapidly breaking/placing blocks - James
-
Fix #638 optifine not rendering on 1.16 + 1.17
-
Fix #640 world gen holes not filling in
-
Fix #641 seamless overdraw issues
-
Fix #650 Fix Indium missing messages not displaying correctly in some cases - James
-
Fix #663 Fix world gen holes - James
-
Fix #670 Remove outdated world gen options from tooltip - James
-
Fix #673 Chunks without a position are ignored - James
-
Fix #680 Massive Memory Usage by ColumnRenderSource#renderDataContainer - James
Removals
- Remove Seamless Overdraw Test - James
- The experiment was interesting, but ultimately failed. There were a number of issues rendering entities and it only ever worked on Fabric.
- Near and near/far fog options - James
- Near fog was originally added back in DH 1.0 in case we couldn't remove vanilla fog, which has since proven to not be an issue.
- Remove Unlimited horizontal quality (LOD Dropoff Distance) setting - James
- Unlimited quality is unnecessary and due to how the renderer is currently set up, unable to be run on any machine at higher render distances.
- Disable cave culling for any detail level above 0 - James
- Cave culling is currently bugged and to prevent holes in the ocean that show the void this is the temporary solution.
Additions:
- Add Indium error popup - coolgi
- Add chunk update queue limits - James
- Add an option to disable using MC's lighting engine - James
Changes:
- Improve multiverse similarity logic - James
- Replace the near clip plane with a fragment shader - null
Bug Fixes:
- Fixed updater crashing without internet - coolGi
- Fixed updater deleting the wrong jar - coolGi
- Fixed changelog not parsing line break HTML elements correctly
- Fixed null pointer when moving between multiverse levels - James
- Fix concurrent error on world shutdown - James
- Fix merging transparent LODs over the void - James
- Fix ChunkWrapper IndexOutOfBounds checking - James
- Fix lighting on some servers - James
- Fix lightmap textures not being pulled correctly - Fourmisain
- Fix block lighting being ignored in MC 1.20.2 - James
- Fix DH lighting failing for snow - James
- Fix multiverse logging - James
- Fix config updating from 1.6 - coolGi
- Fix ClientTick crashing MC - James
Additions:
- Add MC 1.20.1 support - Leetom
- Add Transparent rendering Leonardo
- Add SSAO - notalpha, Null
- Add a noise texture to the LODs - coolGi
- Replace the color based data system with an ID based system #90 - Leetom
- Add an API #208 - James
- Add a self updater - coolGi
- Add white-only debug rendering option - coolGi
- Add support for Sodium 0.5.1 - coolGi
- Add LOD Bias for vanilla rendering - coolGi
- Add ability to limit thread run times - James
- Add additional F3 menu info - Leetom, James
- Add an experimental seamless overdraw option - James
- Add config presets #265 - James
Changes:
- Change installer GUI design - coolGi
- Overhaul overdraw system - James
- reorganize config UI - James
Backend Changes:
- Complete backend rewrite - Leetom, James
- new gradle build script - coolGi, Ran
- new config handling - coolGi
- Replace grid rendering system with a quad tree - Leetom, James
- backend config refactor and restructure - coolGi
- Improve time traveling between dimensions/levels - James
- Replace XZ compression with LZ4 - James
- Use our own lighting engine for the world generator #254 - James
- Improve world curvature - stduhpf
- Change default multiplayer folder save mode to "name only" - James
- Add the prefix "DH-" to all Distant Horizons threads - James
- Moved from a loose file system to a Sqlite database - James
- Move to a FrameBuffer based system instead of rendering directly to MC's FrameBuffer - Steveplays, James
Removals:
- Deprecated several minor MC versions
- Removed biome blending
- Removed world gen options: Biome, Biome_Height, and Full
- Directional Culling
- All overdraw options except: "always"
- All world gen modes except: "near first"
Bug Fixes:
- Fix semantic version number - James
- Fixed BCLib fog #390 - coolGi
- Fixed special character world name crash #446 - coolGi
- Fix mob spawner world gen fail message #199 - Leetom
- Fix underdraw holes #69, #190 - James
- Fix flying machine ghosts #145
- Fix Phosphor (and all other lighting engine) incompatibilities #308 - James
- Fix nether roof rendering incorrectly #272
- Fix Hypixel not generating LODs #276
- Fix only rendering half LODs at low render distances #280 - Leetom
- Fix LodBuilder index out of bounds #286 - Leetom