PathMax
A voxel path traced shaderpack for Iris.

PathMax lights the world by tracing rays through a voxel copy of it that is rebuilt every frame. A torch lights the room from the direction it actually sits in and casts a real shadow. Colour bleeds off the block it bounced from. A lava lake lights the ceiling above it, and nothing in the Nether is lit by a sun, because there isn't one.
Reflections are screen-space, so what you see in water is the finished frame — global illumination, emission, fog and all — rather than a simplified copy of the world re-lit by an approximation.
What's in it
Lighting
- Path traced global illumination, denoised in screen space
- Block lights sampled straight out of the voxel grid with a shadow ray each, so two lamps in one room are two lamps and not one average
- Sun visibility read from the shadow map at every bounce — finer than the grid and eight times cheaper than a second march
- Coloured light through stained glass: on the floor, in the air, and carried by the bounce, so a rose window paints the whole room
- Emissive surfaces driven by the texture rather than a flat per-block value
Atmosphere
- Volumetric light, with an optional second pass lit by lamps instead of the sun
- Volumetric clouds that also show up in reflections
- Light pollution — a town over the hill, its glow standing on the horizon and drowning the faintest stars first
- Height-based aerial perspective tuned against real visual-range figures
- Procedural stars, fixed size on screen
Water
- Screen-space reflections with roughness, refraction, foam and caustics
- Optional volumetrics above and below the surface, with real absorption over the real path length
- Optional waves and surface detail
Materials
- labPBR, with an integrated fallback for packs that ship no specular map
- Subsurface scattering for foliage, driven by shadow-map thickness
- Optional parallax occlusion mapping
- Entities voxelised, so mobs cast traced shadows and appear in reflections
Dimensions
- The Nether and the End are rewritten rather than tinted: no phantom sun, no blue gradient on the underside of the roof, ambient arriving from the floor where the lava is
- End portals and obsidian get their own treatment
Post
- AgX tonemapping by default, with ACES and four others available
- Auto exposure, bloom, optional TAA
Requirements
| Loader | Iris only. OptiFine will not load this pack |
| Minecraft | 1.20.1 – 26.2 |
| GPU | OpenGL 4.6, compatibility profile |
| macOS | Not supported — caps at OpenGL 4.1 |
Block shape and material classification is current to 1.21.4. Blocks added after that still render, they just don't get the special treatment.
Settings
Seventeen screens, every option documented in the tooltip — not one-liners, but what the setting does, what it costs, and why the default is where it is.
Five profiles from Potato to Ultra. They are one ladder, not five unrelated presets: the base already sits on the floor of ray rate, bounces and step count, so the cheap end saves by giving up volumetrics, clouds and reach, and the expensive end spends on rays first.
The pack ships with a hand-tuned configuration rather than a profile — a night-heavy look with heavy light pollution and strong volumetrics. Pick Balanced for the reference settings.
First public release. What went into it, newest first.
### Defaults and Specular GI
- The pack now ships a hand-tuned configuration instead of a neutral one: a
reflections and cheaper block light. Pick **Balanced** for the old reference
values.
- Specular GI is no longer optional. With it off, every smooth surface falls
traced world isn't the thing this pack is. Potato narrows its reach instead of
switching it off.
### Coloured light through stained glass
- Light through a stained glass window now arrives coloured on the floor, in the
after it. Previously the beam stopped dead at the pane while a coloured patch
glowed on the floor below it.
- Pane thickness is one exponent applied to the stored transmission, which is
total in the right proportion. The floor under a rose window is coloured and
darker, which a saturation slider can't give you.
- Both the shaft and the bounce can be switched off independently if you want
### Light pollution
- A town over the hill, at night. The glow stands on the horizon as a dome
around the compass — one to three sources at fixed world bearings, so it stays
put as you travel and swings as you turn.
- Overcast *multiplies* it rather than hiding it. A cloud deck reflects back
more orange than a clear one.
- Stars are drowned, not covered: raising the sky background removes the faint
- Added inside the sky function, so it reaches the dome, the ambient, the fog,
### Coloured shadows
- Light through stained glass stopped darkening what it passed through, using
same number of shadow taps into a different map.
### Performance
- Per-frame clear traffic cut from **157 MB to 24 MB** — 84% less. Two volumes
dead weight the moment reflections moved to screen space.
- Denoiser cut from 50 to 27 taps per pixel while *increasing* its reach, by
ones.
- Sun visibility for every path traced bounce now comes from the shadow map
texture fetches.
### Screen-space reflections
- Reflections moved from a voxel trace to a screen-space march. What that buys
approximation, while the colour buffer holds the finished frame. What it costs
is everything off screen, so a voxel-trace fallback is still available.
- Refinement, thickness testing and edge fade are all exposed, because
recognisable screen-space artefact there is.
