ToasterFX — for Iris (Minecraft 1.21.5)
=============================================

WHAT THIS IS
A lightweight "vanilla, but good" shader pack in the visual spirit of BSL /
Complementary: soft rotated-PCF colored shadows (2048-res, distorted so
resolution concentrates near you), warm sun / cool shadow tint split,
screen-space god rays, noise-shaped puffy clouds, water shimmer + depth
tint + fake sky reflection, rain wetness, boosted corner AO, height +
distance fog, underwater distortion, and bloom.

NEWEST UPDATE (renamed to ToasterFX)
- Clouds: replaced vanilla's flat colored quads with fbm-noise-shaped puffs
  (same broad idea as Mellow/Photon's cloud look) — proper cumulus-ish
  edges instead of a flat plane, plus fake sun-lit/shadow-side shading so
  they read as 3D without any actual ray marching. CLOUD_COVERAGE,
  CLOUD_SCALE, CLOUD_SPEED, CLOUD_BRIGHTNESS are all sliders.
- Water: added a fake sky/sun reflection via Fresnel (see "ABOUT THE WATER
  REFLECTIONS" below for why it's fake and not true SSR).

ABOUT THE WATER REFLECTIONS (read this one)
You said your call on whether reflections were worth the risk — here's the
reasoning. A *true* screen-space reflection needs to sample the already-
rendered scene color (colortex0) while the water pass is still writing
into that same buffer. Reading and writing the same framebuffer attachment
in the same pass is undefined behavior in OpenGL — on some AMD drivers
that's a glitch, on others it's a hang/crash. Given you've hit real AMD-
specific driver bugs before (that's why this pack is forward-rendered in
the first place), I didn't think that trade was worth it for a "nice to
have."

What I built instead: a Fresnel-based fake reflection — water gets more
reflective at grazing angles (exactly like real water), reflecting a
procedural sky gradient plus the existing sun glint. It won't show actual
trees/mountains in the water like a true SSR would, but it reads as
"reflective water" rather than "flat tinted water," costs almost nothing,
and can't crash anything. WATER_REFLECTION_STRENGTH slider controls it —
set it to 0 if you'd rather have flatter, cheaper water.

INSTALL
1. Make sure you have Fabric + Iris + Sodium installed for 1.21.5.
2. Either drop the "shaders" folder (from inside this zip) into
   .minecraft/shaderpacks/ as its own folder (rename that folder to
   "ToasterFX" first), OR just drop this whole zip file straight into
   .minecraft/shaderpacks/ — Iris reads shaderpacks directly out of a zip
   as long as "shaders/" sits at the zip's root, which it does here.
3. In-game: Options > Video Settings > Shader Packs > select ToasterFX.
4. Open its shader options screen to tweak everything — shadows, waving,
   fog/water/clouds, and bloom/god-rays/vignette are each their own page.
   There's also a LOW/DEFAULT/HIGH profile picker at the top if you just
   want a quick preset instead of tuning individual sliders.

HEADS UP ABOUT 1.21.5 SPECIFICALLY
There's a known Iris performance regression on 1.21.5 — shader-heavy packs
run noticeably worse on 1.21.5 than they did on 1.21.4 on the same hardware
(this shows up in Iris's own GitHub issue tracker, independent of which
shader pack is loaded). That's on top of your hardware already being modest
for shaders. If FPS is rough:
- Switch to the LOW profile (disables god rays, kills bloom, shrinks
  shadow distance) — this is the fastest way back to playable
- Or individually: turn GOD_RAYS off first (biggest single cost), then
  drop shadow distance to 48, then set BLOOM_STRENGTH and
  WATER_REFLECTION_STRENGTH to 0.0
- Lower Minecraft's own render distance a couple chunks
- Clouds are cheap (just noise math on an existing flat quad, no extra
  pass) so they're not a big lever either way

WHAT'S INSIDE
- shaders.properties / block.properties — option screen + waving-block IDs
- shadow.vsh/fsh — 2048-res shadow map, alpha-tested, animated to match
  waving foliage, distorted for resolution near the player
- gbuffers_terrain — main block lighting: dithered shadow + tinted ambient
  + boosted AO + rain wetness + fog
- gbuffers_water — vertex-rippled surface, sun specular glint, depth-based
  murk tinting, fake Fresnel sky reflection
- gbuffers_entities / gbuffers_hand / gbuffers_basic — mobs, held items,
  particles/misc
- gbuffers_skybasic / gbuffers_skytextured / gbuffers_weather
- gbuffers_clouds — fbm noise-shaped puffy clouds w/ fake 3D shading
- composite.fsh — height fog + bloom bright-pass extraction
- composite1.fsh — god-ray radial march toward the sun
- composite2.fsh / composite3.fsh — 2-pass separable bloom blur
- final.fsh — bloom combine, underwater distortion/tint, highlight
  compression, saturation, vignette

IF IT FAILS TO COMPILE
This was hand-written and hasn't been run through an actual Iris compile
(no Minecraft install in this environment). If Iris throws shader compile
errors when you load it, paste me the exact error log text and I'll fix it
directly — this is normal first-pass-through for a from-scratch pack, same
as the LiminalShaders/OverdriveFX builds.
