Solstice v2
Thanks for 10,000 downloads in total!

A semi-realistic Minecraft shader with adjustable effects and four performance profiles. Developed on an RX 6600 at 1440p.
Features
- Soft shadows that stay sharp at contact and widen with distance, moving foliage, coloured glass shadows, and underwater caustics.
- Blocky 3D or volumetric clouds with cloud shadows and changing weather.
- Reflective water with ripples, underwater fog, and god rays.
- Rain puddles, glowing blocks, portal light, snow sparkle, and animated flames.
- Circular sun and moon, stars, meteors, the Milky Way, and occasional auroras.
- Built-in polish for vanilla metal and polished-block textures, including held items, or full LabPBR 1.3 support with a resource pack.
- Distant Horizons terrain and water in the Overworld, Nether, and End.
- Bloom, FXAA, colour grading, optional sharpening, and contact shadows.
- Survival, Balanced, or Builder lighting styles.
Install
- Install Iris on Fabric. It comes with Fabulously Optimized.
- Drop Solstice in the
shaderpacksfolder. - Select it under Video Settings → Shader Packs.
- Start on the Medium profile.
Profiles
- Low: blocky clouds, basic shadows, most expensive effects off.
- Medium: the default for play. Volumetric clouds, materials, bloom, puddles, god rays, balanced shadows.
- High: adds SSAO and sharper shadows.
- Ultra: maximum cloud and shadow quality. For screenshots and fast GPUs.
SSR is off in every preset. Reselect a preset after updating to replace saved SSR settings. Lighting Style and colour settings are separate from the profile.
Settings worth trying: Lighting Style (Survival is darkest, Builder brightens interiors), Cloud Mode, Material Source, Colour Grade, Fog Density, and Water Murkiness.
Distant Horizons
Solstice has its own LOD fog and side lighting, so set these in DH:
- LOD Fog: Off
- LOD Side Shading: Off
- Cave Culling: On, height around 60
- Overdraw Prevention: 100%
- Max Horizontal Resolution: Block
- Quality: High for normal play
DH shadows stay off because Iris may render the whole LOD range into the shadow map. The shader still shades normal distant terrain and water.
LabPBR
Built-in materials keep vanilla texture lighting and add restrained highlights. For visible normal maps and full metal materials:
- Install a LabPBR 1.3 resource pack.
- Enable Materials and set Material Source to LabPBR Resource Pack.
- Start with Material Reflections on Sky Only.
Check brick, cobblestone, polished stone, quartz, iron, gold, or copper in angled sunlight. Parallax uses the height channel in LabPBR normal maps.
Performance
If the shader runs slow, lower these in order:
- Shadow Resolution
- Shadow Distance
- Shadow Filter Quality
- Cloud Quality
- SSR, SSAO, or material reflections

Ultra on Minecraft 26.1. Results depend on GPU, resolution, world, mods, and render distance.
Troubleshooting
- DH seam is bright or dark: turn off DH LOD Fog and LOD Side Shading.
- Underground LOD shows: enable Cave Culling and set Overdraw Prevention to 100%.
- Materials look unchanged: use a LabPBR 1.3 pack and select it as the Material Source.
- Compilation fails: send the full Iris error with your Minecraft, Iris, DH, GPU, and driver versions.
Full history in CHANGELOG.md.
Author
d0mkaaa (Domantas)
All Versions
+ Add Version### Physically based soft shadows
- Replaced the fixed texel-radii PCSS heuristic with a physical penumbra:
drives similar-triangle softening from the blocker's height, so shadows are
contact-sharp and widen with caster distance like real area-light shadows
- Converted filter radii from world units to local shadow-map texels through
amount regardless of its position on the distorted map; depth and lateral
scale now read
shadowProjection directly, adapting to resolution andshadow-distance settings
- Added slope-scaled receiver bias derived from N·L and the local texel size,
- Unified shadow-map projection across terrain, entities, native water, and DH
water glints and DH water glints previously projected with no receiver offset
- Derived the blocker search radius from the physical maximum penumbra and
### Underwater continuity
- Replaced the binary in-water switch with a continuous submersion factor:
surface above the camera and measure the eye's depth below it, ramping over
half a block
- The probe now also measures the plane from nearby water-surface pixels when
snap to the engine's binary flag while swimming or diving
- Water Fresnel, the refraction index flip, the surface's sky-reflection
blur, and FXAA blend all interpolate by that factor, removing the hard pop
when diving and the flicker while swimming at the wave line
- Transmitted content below the surface switches to the refracted sky early
sees the Snell window it physically should, without the dark band that
appeared between the window and the horizon after submerging
- Underwater volume integration follows the ray: upward rays stop at the
slivers at the shore no longer receive full-depth murk
- The engine's in-water flag only seeds the factor when no surface is visible
while the block state still reports submerged
- Water and Distant Horizons water sun glints hand over to the sky-lit
the horizon keeps its sparkle
### Shared surface optics
- Replaced the separate highlight formulas with one GGX BRDF shared by
height-correlated Smith visibility, and Schlick Fresnel, with a roughness
floor of 0.045 that broadens very sharp highlights to reduce aliasing; the
previous distribution clamp flattened polished highlights, and the water and
material paths mapped roughness differently
- Material direct diffuse weights by
(1 - metalness) * (1 - F), and
vector
- Material reflectance keeps all three colour channels in an RGBA16F
colortex8, so authored conductors retain coloured reflectance including thegold/iron distinction and HDR water highlights survive the buffer
- Reflection normals use octahedral encoding in the existing two channels;
opposite hemisphere
- Environment reflections use a polynomial fit to the correlated GGX
pairs; the fit adds no texture or runtime dependency and
preserves RGB conductor colour
- Only the sky-derived portion of metal ambient lighting gives up energy to
ambient floors keep their material tint, so enabling reflections no longer
dims torch-lit metals
- Puddles use water Fresnel at the perturbed surface normal instead of a fixed
- Transparent blending partitions reflection and body opacity before
F + (1 - F) * a), so reflections keep theirfull weight after blending instead of being reduced by alpha a second time
- Water uses unpolarized dielectric Fresnel at an index of refraction of 1.333
Horizons water
### Deferred water and reflections
- Added a deferred pass that copies the opaque scene to
colortex9before
colortex3 markers and colortex8 unattenuated direct specular light plusskylight exposure, adding eight bytes per pixel per buffer set
- Submerged cameras now blend visible clouds into the scene and the snapshot
underwater views and left a cloud-free sky in the water background, and
cloud_view.glsl shares one visible cloud field between the air pass and theunderwater snapshot
- Rewrote SSR in
screen_trace.glslas interval tracing: rays clip to the near
test the depth interval between adjacent samples instead of isolated points,
which previously let a ray step over a wall's depth slab; seven refinement
iterations and a final thickness check reject false hits, and the edge
fallback transition shrank from 28-32% of the screen to 6%
- SSR is now opt-in: every profile and the default settings compile it out,
preset after updating to clear saved SSR settings
- SSR returns its fallback without tracing underwater, and its sky fallback
sky; cloud reflections in water use fewer samples and skip the cirrus layer
- Rebuilt water waves as four travelling components at 5.5, 2.3, 1.0, and 0.42
normals use analytical height derivatives and the submerged underside opacity
follows a slope-weighted cue from the same phases
- Water refraction samples the deferred opaque snapshot at the original screen
occlusion, so native terrain behind water no longer erases the water face
while native foreground still occludes it, and the distance-only alpha fade
that left gaps when native water was absent is gone
- Outdoor light shafts use visible sky depth as their source, so bright opaque
- DH terrain keeps its supplied average texture colour instead of adding
white metal glint is removed; native and DH surfaces share one fog distance
law, and only cleared depth 1.0 counts as sky
### Glass and generated materials
- Glass defaults to F0 0.04 and smoothness 0.90 instead of inheriting the
detail uses ambient lighting, removing a broad coloured wash on sun-facing
panes
- Coloured sunlight transmitted through glass onto nearby surfaces now uses an
(1 - opacity) + opacity * textureColour, instead of afixed 90% tint and 1.6 saturation boost
- The shadow colour target now carries caster opacity and reserves alpha code
moving bright stripes no longer show through glass, and translucent casters
join the blocker search so their distance controls penumbra size
- Generated vanilla metal textures keep their diffuse body and use F0 0.04
as full conductors whose sky-only reflection dominated unrepresented
surroundings; authored LabPBR conductors keep supplied metalness and
reflectance
- Held and dropped block items resolve the same material classes as placed
currentRenderedItemId, sample terrain shadows and cloudvisibility instead of bypassing the shadow map, and clear their reflection
metadata so the world cannot reflect through the hand
- Added steep-parallax occlusion against the LabPBR height field; flat maps
first probe and pay no march cost
### Clouds, sun, and night sky
- Replaced 2D noise slices with continuous 3D value noise for cloud billows
layer is removed, leaving one thin cirrus layer
- Cloud RGB and opacity share one exponential integration instead of an
along the light direction with Beer-Lambert transmission and a two-lobe
Henyey-Greenstein phase approximation
- The sun is an antialiased disc at HDR intensity 24 with the 0.0093-radian
angular halo so it stays visible through the tone curve
- Night sky uses a continuous horizon-to-zenith gradient independent of the
with moon phase and ambient lighting is less blue
- The Milky Way is fainter with a smooth band structure, and stars use Iris's
MC_RENDER_STAGE_STARS) instead of guessing from grayscalevertex colours
### Performance
- Fused FXAA and contrast-adaptive sharpening into one pass sharing a single
the fusion reproduces the previous two-pass output
### Materials alpha
- Added a shared lightweight material library with LabPBR 1.3 normal, AO, perceptual
- Added Natural and Pronounced built-in material styles; the stronger choice only changes
- Terrain, entities, and the hand/held-item pass now use tangent-space normals and an
- Extended the material path to translucent water and glass: genuine resource-pack normal
LabPBR normal, AO, F0, smoothness, and emission channels
- Added conservative built-in metal and polished-mineral classes for vanilla textures;
- Reused
colortex3for opaque material normals/reflection strength, with separate class
- Added Off / Sky Only / SSR material reflection tiers and profile defaults: Low compiles
- Added a dedicated Materials options page with Built-in / LabPBR Resource Pack source and
### Distant Horizons
- Added dedicated compatibility-profile
dh_terrain,dh_water, and future-ready
dh_shadow programs for the Overworld, Nether, and End- DH terrain reuses Solstice's sky light, block light, weather color, cloud shadows,
- Added distance-filtered world-space material detail for grass/leaves, stone, deepslate,
breakup where Iris cannot expose block-atlas UVs to the DH shader path
- Corrected DH grass blocks being treated as translucent foliage and metal being treated as
- DH water uses biome color, Solstice's user water tint, distance-stable waves, physical
- Native and DH depth now share one scene-classification/reconstruction helper
- Atmospheric fog preserves the native look near the player, thins beyond the native
- Clear-weather DH atmosphere was opened further so distant landforms retain colour and
- Added a defensive Overworld cave-face rejection for fully enclosed DH geometry below
- Very distant DH color now receives restrained aerial chroma/contrast compression,
- Clouds and half-resolution reconstruction no longer mistake LOD silhouettes for sky
- Light-shaft occlusion, underwater absorption, and native-water SSR now see DH geometry
- Sun glare now uses a soft 16-point visibility probe plus angular broad/core response,
switching the effect off
- SSAO, puddle metadata, and material-style surface effects remain native-only, avoiding
- DH shadows are deliberately disabled until their all-LOD pass meets the performance
- Base rendering remains guarded by Iris's
DISTANT_HORIZONSfeature macro, preserving the
### Weather and color
- Volumetric cloud bodies now combine vertically decorrelated erosion fields with flatter
2D weather shape through the entire layer
- Reduced first-hit cloud extinction so the march reveals multiple illuminated density
an inexpensive multiple-scattering floor keep shadowed daytime lobes blue-white rather
than charcoal without brightening storm clouds
- Underwater sky rays now use solid depth behind the water surface to generate and merge
layer afterwards, so submerged views can no longer reveal a cloud-covered moon
- The shared sun/moon visibility probe now multiplies terrain visibility by resolved cloud
- Rebuilt shooting stars as sub-second meteors with a compact warm head, narrow tapered
moving glow segment and lingering-looking smear are gone
- Stars, meteors, moonlight, and the lunar halo now use the smoothed weather state, preventing
- Rain atmosphere now uses an Iris-smoothed weather state: storms close visibility quickly,
seconds after rain instead of revealing the full DH landscape at once
- Rain/DH fog is substantially denser at long range, matching the short visibility expected
- Added Natural and Vivid color grades alongside the legacy Classic response; Natural is the
through highlights
- Natural grading applies restrained highlight/shadow chroma compression, gamut compression,
- Cloud macro shaping no longer suppresses an enormous low-frequency region around the
- DH water now rejects pixels covered by native opaque depth and fades in across the native
- Top-down DH water now matches native water's 2% normal-incidence Fresnel, body tint, and
- Underwater extinction now follows the Water Murkiness setting for native and DH geometry;
the above-water scene to a physical Snell window instead of exposing the entire world
- The defensive DH cave filter now rejects fully enclosed zero-skylight Overworld LOD faces
- Sunrise atmospheric color is now confined around the sun instead of reflecting as a
### Capture-driven performance
- Used an AMD RenderDoc counter capture to identify the full-resolution effect merge,
post costs; the already inexpensive bloom and portal-blur passes were left unchanged
- Reworked cloud reconstruction to use its existing alpha coverage instead of rereading
- The final effect merge now builds half-resolution coordinates once and shares native
using the solid depth hierarchy
- The merge reads the existing 1×1 celestial visibility result and skips all shaft-buffer
- FXAA reuses the final pass's existing centre colour instead of sampling it twice at full
- Volumetric cloud rays now hoist weather and lighting constants out of the density loop;
is reused for one adjacent occupied step through the existing temporal reconstruction
- The terrain path now reuses its vertex distance and per-fragment direct-light colour,
the indexed chunk draws highlighted by the capture
### Gameplay polish
- Added Survival, Balanced, and Builder lighting styles as a visual preference independent
light falloff, held light, and interior indirect floors without changing daytime exposure
- Renamed Night Darkness to Night Brightness so the slider direction is unambiguous
- Added optional low-strength contrast-adaptive sharpening after FXAA, with neighborhood
edge halos; underwater sharpening is skipped
### Render paths and Minecraft 26.2
- Added explicit lightweight programs for damaged blocks, block entities,
entities, lightning/dragon beams, armor glint, emissive eyes, and translucent held objects
in the Overworld, Nether, and End; lines deliberately use Iris's documented
gbuffers_line to gbuffers_basic fallback- Translucent entity and block-entity passes retain forward lighting but no longer write
colortex3- Added
item.propertiesand separate main/off-hand light evaluation, allowing warm,
- Replaced hardcoded cutout thresholds with Iris's
alphaTestRefin terrain, entity, hand,
- Enabled Iris's separated translucent entity/block-entity draws and mixed particle
- Expanded current content metadata for Spring to Life foliage, golden dandelions,
and the Minecraft 26.2 sulfur/cinnabar building families
### Reduced-resolution post pipeline
- Bloom moved from two full-resolution passes to quarter-resolution
colortex1/2, with a
- Volumetric/blocky clouds, SSAO, and light shafts now render at half resolution
- The final effect merge performs depth/class-aware reconstruction so cloud, AO, portal, and
- Disabled effects now disable their composite programs, including dimension-specific paths
### Temporal skies and cloud lighting
- Volumetric clouds use a frame-varying march offset and a persistent cloud-only history
- History reprojects with the previous camera/model-view/projection data, clamps to the
- Cloud direct light was rebalanced so the forward silver lining stays bright without
- Full-scene TAA remains intentionally absent
### AO, shafts, and portal light
- The repeated sun/moon visibility gather is now a single 1x1 frame-level pass
- Light shafts moved to a half-resolution buffer
- Full-resolution 16-tap portal gathers were replaced with a downsampled portal-light mask
- SSAO moved from ten samples per full-resolution pixel to eight samples per half-resolution
### Reflections, shadows, and final image
SSR_QUALITYadds profile-controlled 16/24/40-step caps, matching refinement tiers,
SHADOW_FILTER_QUALITYadds 4/8/12-tap PCSS tiers; blocker samples scale with the tier- The shadow vertex pass reuses the visible terrain foliage deformation in player space
- The old four-neighbor edge blend was replaced with low-cost directional FXAA
- The filmic curve has a softer highlight shoulder and a gated near-black lift that leaves
### Reflections
- SSR rewritten as a screen-space march with perspective-correct depth interpolation (1/z is linear in screen space): every step lands on a fresh pixel, so distant reflections resolve crisply instead of skipping and smearing
- No matrix math inside the ray loop anymore as depth linearization is two fused ops, so the rewrite is both sharper and cheaper
- Step count adapts to the ray's on-screen length (14 to 40) to hit thickness scales with distance and validation is tighter, cutting ghost hits behind thin geometry
### Clouds
- Volumetric cloud lighting now uses real scattering formulas: a dual-lobe
- Cloud bases sit darker and flatter (height gradient)
- Clouds drift about 4x slower and no longer morph constantly advect on the same wind vector, so a cloud moves as one body instead of its detail
- Fixed a profile bug: Medium, High and Ultra now explicitly select Volumetric cloud mode
- New Cloud Quality step 32; Ultra uses it
### Light sources
- Block light (torches, lanterns, lamps) now follows the inverse-square law: the lightmap encodes distance to the source (vanilla light drops one level per block), so it gets remapped to real distance and attenuated with the same windowed inverse-square formula real renderers use for point lights. Light sources read as bright pools that fade fast, not an even wash
- Held-light uses the same attenuation
- Torch color documented as roughly a 1900K blackbody, matching real flame
- Realistic Light Falloff toggle under Visuals; the old curve remains as the off state
### Glowing mobs & portal glow fix
- Blazes, magma cubes, glow squids and allays are now emissive: their bright texels glow and feed the bloom pass, under the same Glowing Blocks toggle
- Eye-glow mobs: enderman, spider, cave spider, phantom and guardian eyes emit with a high luma threshold, so the eyes burn in the dark while the body stays unlit - purple enderman eyes in a dark forest, red spider eyes in caves
- Removed the portal glow prefilter: its point-sampled early-out produced hard on/off boundaries (torn rectangular notches in the glow). The gather now always runs within range and is perfectly smooth
### More real formulas & performance
- Water depth uses true Beer-Lambert absorption with per-channel coefficients: red is absorbed within meters, blue survives, so depth turns teal for the physical reason rather than a hand-picked fade color. Underwater fog uses the same law
- Purkinje shift: dark scenes drift toward desaturated blue-grey, matching how human rod vision behaves at night (toggle under Color & Tone)
- Depth unprojection in the composite exploits the projection's symmetric structure: five terms instead of a full matrix multiply, across every SSAO/SSR/glow sample
- The cloud march's sun-occlusion probe uses a cheaper 2-octave density (the light sample does not need full detail), cutting volumetric cloud cost by roughly a quarter
### Shadows & block light polish
- Shadows upgraded to PCSS (percentage-closer soft shadows): a blocker search measures how far above the surface the caster sits, and the penumbra widens with that distance - the real behavior of sunlight as an area source. Shadows are contact-sharp at the base of a wall and progressively softer for tall trees. Fully lit pixels early-out after the
- The PCF disk is a noise-rotated Vogel spiral (8 taps) instead of a fixed 4-tap square, removing the boxy shadow edge
- Light patches projected through stained glass follow the same penumbra physics
- Block light falloff rebalanced: inverse-square core plus a cubic near-field term, because glowstone and lanterns are area sources with indirect bounce, not bare point lights
### Water & portal polish
- Water fresnel replaced with true Schlick using water's physical F0 = 0.02 (from its refractive index): 2% reflection looking straight down so you see into the water, climbing to a near-total mirror at grazing angles
- Wave normals and rain ripples flatten with distance: far ripples are smaller than a pixel, so full-strength normals only produced aliasing speckle across the ocean
- Portal glow gather rebuilt as a Vogel spiral disk rotated by interleaved gradient noise: smooth pool of light with a soft edge instead of banded dither blotches, with a tighter radius and gentler intensity
### Glass
- Stained glass throws vivid colored light: the tint that sunlight picks up passing through translucent blocks is now saturated, so a stained glass window paints strong colored patches on the floor behind it
- Windows catch the sky: glass gets a fresnel reflection of the sky gradient and a sun glint at grazing angles
- Glass Reflections toggle under Water options
## v1.2
### Wet weather
- Rain puddles form on exposed ground while it rains and dry up gradually afterwards
- Puddles form as larger connected pools rather than scattered specks, and grow with
- Animated rain ripples on the puddle surface
- Puddles reflect the sky, show a sun glint at grazing angles, and mirror nearby terrain
- Wet ground darkens during rain
- Puddle Coverage slider; Low profile turns puddles off
### Portals
- Nether portals glow and cast purple light onto surrounding blocks
- Toggle under Nether & End options; off in the Low profile
### Snow
- Snow sparkles: crystal glints that catch the light and shift with your view angle,
- Snow gets a subtle cool brightening and no longer darkens or forms puddles when it
- Sparkle Strength slider under Visuals
### Fire
- Fire and campfire flames flicker: emission pulses with layered waves plus noise, so
- Flame color grading: white-hot core fading to deep orange at the edges; soul fire
- Fire blocks sway gently at the tips; campfire logs stay put, only the flame pixels
- Lit campfires only - unlit ones no longer glow
- Living Flames toggle under Visuals
### Glowing blocks
- Light sources (glowstone, sea lanterns, shroomlight, froglights, lanterns, torches,
- Ores, amethyst, sculk and enchanting tables get a subtler glint that shows in dark caves
- Glow Strength slider; enabled on every profile since it costs almost nothing
### Night sky
- Procedural milky way band on clear nights, scaled by Star Brightness
- Shooting stars streak across the sky every few seconds
- Green-blue aurora on clear nights in snowy and cold biomes, rolled per in-game day
- All three have their own toggles under Sky & Clouds
### SSAO
- Depth-based ambient occlusion: soft contact shading in corners and under blocks
- 10 taps with dithered rotation, smooth occlusion falloff instead of hard cutoffs,
- Strength slider; enabled on High and Ultra profiles
### Other
- Light shafts now fade out as the sun or moon leaves the screen edge instead of
- Screen-space reflections use a dithered ray start and finer hit refinement, which
## v1.1
### Clouds
- Rebuilt Blocky cloud mode as true 3D boxes: voxel-traced height, lit tops and shaded
- New Blocky Cloud Height slider
- Added an About screen and more option tooltips
- Fixed the pack breaking outside the overworld. The dimension folders were incomplete,
now runs in all three dimensions
- End: darker violet lighting, aurora ribbons drifting across the sky, stars, and shadows
- Dragon death rays and explosion flashes are pushed into HDR so bloom makes them glow
- Nether: biome-tinted fog that warms toward the lava below and darkens toward the
glow, and heat shimmer over distant terrain (nearby blocks stay solid)
- New Nether & End options screen: End Aurora toggle and strength slider, Nether Haze,
### Lava
- Lava surfaces now move: slow molten swells, heavier and slower than water waves, using
- Lava is fully emissive with a traveling heat pulse that feeds the bloom pass
- Works in every dimension. Toggle is under Water options as Lava Waves; the Low profile
### Fixes
- Removed a duplicate fogColor declaration that stopped the water shader from compiling
- Nether backdrop no longer shows grey smears or a visible seam where distant terrain
A lightweight semi-realistic shader pack built for a high performance-to-quality ratio.
(developed and tuned on an RX 6600 at 1440p).
## Features
- Real-time PCF shadows with per-pixel distortion (sharp near, cheap far, no warping on builds)
- Colored translucent shadows: sunlight through water turns blue with animated caustics
- Volumetric raymarched clouds with self-shadowing, silver linings, wind drift, and a high cirrus layer
- Cloud shadows on terrain, matching the sky overhead
- Screen-space god rays (sun/moon, above and below water) with source-occlusion checks
- SSR water reflections - terrain, trees, and builds mirrored on water; depth-aware
- (clear shallows, mirror depths) with sky-gradient fallback
- Procedural fluid water: Gerstner-style traveling waves, sea-state variation, rain ripples
- Unified atmospheric fog: fog is the sky gradient (aerial perspective), render-distance
- fade dissolves into it seamlessly
- Full weather system: bright diffuse overcast, dark slate thunderstorms, localized lightning
- flashes that light the cloud deck from within, emissive lightning bolts
- Procedural circular sun and phase-accurate circular moon
- Dynamic held-item lighting (torch in hand lights the world)
- Dark survival nights, warm Nether ambient (adjustable in-game)
- HDR pipeline: bloom, ACES tonemapping, FXAA-lite edge smoothing, dithering
## Settings
Four profiles: **Low** / **Medium** / **High** / **Ultra** (shader options screen), plus four option
screens: Shadows, Sky & Clouds, Visuals, Color & Tone.
Notable sliders: Cloud Coverage, Cloud Speed, Nether/End Brightness, Fog Density.
## Requirements
Iris (bundled with Fabulously Optimized). OptiFine untested; Iris-exclusive uniforms
(thunderStrength, lightningBoltPosition, hasSkylight) degrade gracefully if absent.
## Performance notes
Shadows are the dominant cost, lower Shadow Resolution/Distance first. Clouds cost only on sky pixels (Cloud Quality slider). SSR costs only near water. Everything else is cheap.
## Authors
_d0mkaaa_