Links
Tags
Creators
Details
Licensed LGPL-3.0-only
Published 7 months ago
Updated 7 months ago
All versions
2.4.6+vm.3
Beta
Distant Horizons for VulkanMod 2.4.6+vm.38 months ago 127
Compatibility
Minecraft: Java Edition
1.21.11
Platform
Fabric
Supported environments
Client-side
Server-side
Client and server
Required content
Unavailable version
Any compatible version
Changes
Rendering Fixes
- Fixed LODs only rendering on half the screen (diagonal artifact) on NVIDIA GPUs. The fullscreen composite quad's vertex buffer data was read incorrectly by the NVIDIA driver, causing one of two triangles to never draw.
- Fixed composite depth test failing against uninitialized depth buffer data on NVIDIA. MoltenVK silently clears depth to 1.0, hiding the bug on macOS.
- Fixed MC terrain not rendering correctly in front of LODs in certain screen regions.
Rendering Pipeline Changes
- LOD compositing now happens before MC terrain renders, not after. MC's opaque terrain overwrites LODs via depth test, and transparent terrain (water, leaves, glass) renders on top with alpha blending — matching vanilla MC behavior.
- Reduced LOD clip distance to a fixed 7 blocks. Since MC terrain now renders after LODs, MC's own depth test handles occlusion naturally. The small clip distance only prevents LOD bleed-through at leaf cutout edges and other transparent block boundaries.
Composite, SSAO, and Fog Pipelines
- All fullscreen passes (composite, SSAO, fog) now use a single oversized triangle with vertex positions generated in the shader, bypassing vertex buffer data entirely. This avoids the NVIDIA issue and is the standard Vulkan best practice for post-processing.
- Added debug visualization modes to the composite pipeline: depth, SSAO, fog alpha, fog color, and normals.
Config and UI
- Unsupported settings on the Vulkan path (wireframe, instanced rendering, vanilla fog, OpenGL debug options) are now automatically locked or hidden in the settings UI.
Technical Details
- Fullscreen triangle vertices at NDC (-1,-1), (3,-1), (-1,3) cover the entire viewport after GPU clipping. Positions are generated from
gl_VertexIndexin the vertex shader — no vertex buffer data is read. - Composite depth function set to
GL_ALWAYSbecause MC's depth buffer usesVK_ATTACHMENT_LOAD_OP_DONT_CARE, which produces undefined values on NVIDIA but implicit zeros on MoltenVK. - Added deferredComposite() to
IVulkanRenderDelegatefor the new render ordering.
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:ZCkzFkVk:9fe8JKBe"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:ZCkzFkVk:9fe8JKBe"
}

