Links
Tags
Creators
Details
0.7.7+1.20.4
Compatibility
Required content
Changes
0.7.7 — Vibrant Graphics
Water effects as real particles, surface maps from resource packs, and a sun that is finally where vanilla draws it.
Vibrant Graphics
Rain rings on water, splashes, foam along the shoreline, a wake when you wade through shallows, and spray at the foot of waterfalls. One setting under Video Settings — Vodium: Off / Low / Medium / High / Max, controlling radius and density. It works with or without a shaderpack.
These are particles, not a shader trick, and the difference is not cosmetic. A particle lives in the world: you see it from any angle, it is lit like everything else, and it does not vanish the moment you turn the camera. A shader can only tint pixels that are already on screen — and it cannot know what block sits next to the water, because the chunk vertex format carries no block id. Shoreline foam is exactly that kind of knowledge.
The volume is never scanned in full. A 40-block radius is over half a million positions per tick; instead a few dozen random points are probed, which looks continuous within a second and costs the same at any radius. Waterfalls get their own three-dimensional probe: the height map finds a lake surface in one lookup, but a waterfall is a jet inside the column, and the height map knows nothing about it.
Surface maps from resource packs
A resource pack can drop an _s file next to a block texture: R smoothness, G metalness, A emission. Vodium stitches them into an atlas that mirrors the vanilla one texel for texel, so the shader reads them with the same texCoord0.
The channel layout is Vodium's own, not labPBR: there, alpha 255 means "no emission", so a missing file and full emission encode identically. Here a missing map is honest zeros — matte, non-metal, non-emissive. labPBR packs will not work as-is.
A ready example ships in the repository: maps for iron, gold and diamond blocks, built from the vanilla textures themselves, so the highlight follows the block's own pattern instead of sitting on top as a flat patch. Diamond is deliberately not marked metallic — it is not a metal, and its highlight should be white.
Fixes
The sun was computed in the wrong place. The angle was linear in world time, the X sign was inverted, and there was an invented 0.30 tilt on Z. Light shafts came out of empty sky and shadows fell from a sun that was not there — which reads as the sun simply not being drawn. Vodium now derives the direction the same way vanilla builds the sky, through getSkyAngle, which also knows that the Nether has no sun at all.
Depth in post-processing was filtered linearly. That averages depths across a silhouette, and the position reconstructed from it lands in the void between two surfaces: everything depth-based picked up a fringe of non-existent points around object outlines.
Also
depthtex1 — scene depth before the translucent pass, giving packs the thickness of water in front of geometry. A white-point Reinhard tonemap, because plain Reinhard maps 1.0 to 0.5 and drains the frame at any exposure. Half-resolution passes via /* SCALE: 0.5 */.
1.20.4 only — the 1.20.1 branch does not carry the shader work yet.
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:vBCo9Smz"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:WbucKpvT:vBCo9Smz"
}

