Links
Tags
Creators
Details
0.5.3+1.20.1
Compatibility
Required content
Changes
0.5.3 — five new optimizations, 1.20.1 line
The same five that landed in 0.6.5 for 1.20.4, ported to 1.20.1. The vanilla methods involved turned out to be identical between the two versions, so nothing had to be reworked.
Particle culling. Vanilla never frustum-checks particles: renderParticles walks every live particle in the world and builds geometry for each of them, including the ones behind your back. Only rendering is skipped here — ticking is untouched, so particles do not freeze off-screen and then pop in when you turn around.
Merged draws inside a region batch. For QUADS the shared index buffer simply walks quads in order while baseVertex shifts the start, so two sections that sit back-to-back in the arena can be drawn by one sub-draw with the sum of their index counts. A freshly built region collapses from up to 64 sub-draws down to a handful. The translucent layer is deliberately left out: it has its own per-section sorted indices and a strict back-to-front order.
Translucent re-sort distance limit (128 blocks). Vanilla re-sorts translucent faces every time the camera moves one block. A hundred blocks away that rotates a section by a fraction of a degree and the sort gives back the very same order. Distant sections now keep the order they got when they were built, and vanilla's budget of 15 sort tasks goes to the near ones, where it matters.
Index buffer bound once per arena. The element-array binding is part of VAO state, and the shared sequential buffer keeps its id when it grows — so rebinding it for every region in every frame was pure waste.
Fog culling — off by default. Past FogEnd vanilla's linear fog returns plain fog colour, so a region that drowned in fog need not be drawn at all. It stays off until it is checked by eye in the Nether and underwater: the sky is drawn before terrain, in its own pass with its own fog, and what shows through culled geometry is not guaranteed to match.
Every one of the five has its own switch in config/vodium.properties. None of them is measured yet — they are reasoned from how vanilla works, not from a benchmark, which is why this is a beta.
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:WbucKpvT:CsNnrlHj"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:WbucKpvT:CsNnrlHj"
}

