# KinescopeV1.2 (Chocapic13_shaders_edit)

Chocapic13's V9 Ultra, pushed way further into "cinematic screenshot"
territory. Same base lighting/shadow/water engine underneath, but the
tonemap, color grade, water, sky, and a couple of new effects are all
reworked to look like their own thing instead of stock Chocapic with a
filter slapped on.

Per Chocapic13's terms for modifying their shaders, this is credited
everywhere as a **Chocapic13 Shaders Edit** — folder name, license file,
in-file comments, all of it. See `LICENSE.txt` for the actual terms.

## Installing it

1. OptiFine or Iris, either one.
2. Options → Video Settings → Shaders → Shader Folder.
3. Drop the `shaders` folder (or the whole zip) in there.
4. Pick **Kinescope** from the list, hit Done.

Open the shader settings and the first thing you'll see is a title button
("Kinescope Shaders (chocapic13 shaders edit)") and right next to it a
**Profile** button — click it to cycle **Potato / Low / Medium / High /
Ultra**. That's your performance tier. High is the tuned default; Ultra
pushes shadows/clouds/god rays further if your GPU can take it; Potato
strips everything expensive for weaker hardware.

## What's actually different from stock Chocapic13

**Color and tonemap**
- ACES filmic tonemap instead of Hejl2015 — better highlight rolloff
- Bloom pulled way up, hazier glow around lights
- Depth of field on by default with autofocus
- A teal-shadows/orange-highlights split tone (the classic "movie" color grade)
- Chromatic aberration and a deeper vignette at the screen edges
- Film grain, animated, a bit stronger in the shadows
- Letterbox bars on by default (2.39:1)
- Brighter overall exposure than stock

**Sky and lighting**
- Warmer, golden sun color instead of neutral white
- Richer atmosphere — deeper blue sky, hazier Mie scattering
- Bigger, denser clouds, with actual god rays where light breaks through gaps
- Sun toned back down a notch after it was blinding at first

**Water**
- The water's actual surface color is different, not just the fog/absorb
  distance tint. Stock Chocapic13 hardcodes water as a flat grey-blue right
  in `gbuffers_water.fsh` — Kinescope swaps that for a distinct
  teal-emerald, plus a warm gold tint on reflections and specular
  highlights instead of neutral white.
- Absorption/fog color got pushed further at first, then dialed back after
  it made looking through a lot of water (like up at the sky) way too green
  and blurry — see the fix note below.

**Two effects that are genuinely new code, not just retuned sliders**
- **Anamorphic lens streaks** — blue horizontal streaks bleed off anything
  bright (sun, torches, lava, glowstone), like footage shot through an
  anamorphic cinema lens.
- **Surfacing droplets** — come up out of water and the lens shows droplets
  that refract the scene slightly and fade out over a couple seconds.

## New: rain puddles with reflections (Overworld only)

This is a real new feature, not a retune — wet, glinting puddles now form
on upward-facing ground when it rains. Here's how it actually works,
since "reflections" can mean different things:

- Chocapic13's engine already computes lighting for terrain in a separate
  pass from the one that draws it (`composite2.fsh`), and that pass
  already had water caustics code sitting in it, just never used above
  water. Puddles hook into that same pass.
- A puddle "mask" is worked out per-pixel from three things: is the
  ground facing up, is it currently wet (`wetness`, which ramps up/down
  smoothly with rain), and a fixed-in-world noise pattern so puddles form
  in the same spots and don't swim around as you move the camera.
- Where that mask is active, a sun-glint specular highlight gets added —
  this is the actual reflective part. It's not a full mirror reflection of
  the world (that would mean tracing rays the way the water surface
  already does, which is heavier and riskier to bolt onto general
  terrain) — it's a bright, tight highlight that tracks the sun's position
  across the puddle, which reads as "wet and reflective" without the cost
  of true reflections.
- Puddled ground also darkens slightly, since wet dirt/stone genuinely
  reads darker in photos.

Toggle everything on the new **Puddles** settings page:

| Setting | Default | What it does |
|---|---|---|
| `RAIN_PUDDLES` | on | Master toggle |
| `PUDDLE_STRENGTH` | 0.7 | How bright the sun-glint on puddles is |
| `PUDDLE_COVERAGE` | 0.45 | How much wet ground turns into actual puddles vs. staying just damp |
| `PUDDLE_SCALE` | 6.0 | Patch size — lower means bigger puddles |

Only added to the Overworld, since the Nether and End don't have rain in
vanilla Minecraft, so the effect would never trigger there anyway — no
reason to add the extra code to those dimension files.

## Pushed the actual rendering quality up

Everything up to this point was tonemap/color/effects work. This pass is
different — it turns up quality settings that were already built into
Chocapic13's engine but running conservatively:

- **Shadows**: resolution 3172 → 4096, distance 128 → 160/220 (High/Ultra),
  more penumbra search samples and shadow filter samples for smoother,
  less jagged soft shadows.
- **SSGI (screen-space global illumination) and subsurface scattering
  were already in this codebase, just running at low settings** —
  `RAY_COUNT` doubled (4→8) and `STEPS` doubled (8→16) for noticeably
  better bounced light quality.
- **Volumetric light**: `VL_SAMPLES` doubled (8→16), so god rays and fog
  shafts look smoother instead of banded.
- **Water reflections**: `SSR_STEPS` raised (40→50) for sharper reflection
  detail.
- **Clouds**: render resolution raised (0.35→0.6) for cleaner edges and
  less blockiness.

I deliberately didn't add new effects in this pass — after the leaves,
stars, and drip-persistence bugs from earlier rounds, I wanted one pass
that's purely turning up dials on systems that already work, with nothing
new that could introduce another compile/logic bug. This should be the
single biggest visual-fidelity jump in the whole project, and it's also
the lowest-risk change I've made in a while.

Worth knowing: this pushes performance cost up too, especially shadows and
SSGI. The Profile system's Medium/Low/Potato tiers exist exactly for this —
if it's too heavy, drop a tier instead of hand-tuning everything back down.

Also — no colored/per-block lighting was added or is planned for this
pack. That kind of lighting (like modern GI systems use) needs compute
shaders and buffer types this GL 4.1-era GLSL 120 pipeline doesn't have;
doing it properly would mean rebuilding the lighting engine from scratch,
not editing Chocapic13's.

## Toned down a notch

Went too bright and too blurry a couple passes back. Brought sky
brightness, exposure, and sun strength back down, cut the DOF blur roughly
in half (aperture 1.2 → 0.65), and pushed contrast/vignette up a bit
instead — trading "bright and dreamy" for something a bit darker and
punchier. Saturation came down slightly too so it doesn't look overly
colorful next to the higher contrast. Bloom, the water color, the sky
color, and the two signature effects (streaks/drips) are unchanged.

## Bugs found and fixed along the way

Being upfront about these since they were real, not hypothetical:

- **All leaves invisible on Minecraft 1.21.10+.** This one took a while to
  pin down and honestly wasn't something I found myself — turns out it's
  not specific to this pack at all, it's Chocapic13 V9.1 (and by extension
  this edit) on any recent Minecraft/Iris version. `gbuffers_terrain` never
  had an explicit `alphaTest` directive in shaders.properties, which used
  to be fine because older Minecraft/Iris versions had a permissive
  default. Newer versions changed that default, so leaves (and other
  alpha-tested terrain) silently stopped rendering. Fixed by adding
  `alphaTest.gbuffers_terrain=GREATER 0.1` explicitly. Credit for finding
  this goes to the Minecraft/Iris community, not me — I'd gone down a
  couple of wrong paths (bad block ID entries, GLSL logic) before this
  turned up.
- **Underwater view was way too green and heavily blurred.** Two things
  were stacking: DOF blur was blowing out badly when looking up through
  water at the sky (huge depth mismatch + a too-high aperture value), and
  water absorption had been pushed to the very top of its range. Fixed by
  dampening DOF underwater specifically, dropping `aperture` back down,
  and pulling absorption back to something strong but not overwhelming.
- **Stars looked like weird glowing blobs instead of points of light.**
  Bloom was cranked high enough that even faint procedural stars were
  blowing out into blobs, and some were bright enough to trigger the lens
  streak effect. Bloom strength came back down and the streak brightness
  threshold went up so only genuinely bright things trigger it.
- **Surfacing droplets weren't showing up at all.** This one was an actual
  bug in how the effect was built: it stores a fade timer in an unused
  channel of an existing buffer so it can persist across frames, but by
  default Iris/OptiFine clear that buffer every single frame — which wiped
  the timer before it could ever be read back. Fixed by explicitly telling
  the buffer not to clear (`clear.colortex7` / `colortex7Clear`, added both
  spellings since Iris and OptiFine name this directive differently).

## Settings, if you want to tune anything

**Cinematic page:**

| Setting | Default | What it does |
|---|---|---|
| `CINEMATIC_GRADE` | on | Master toggle for the whole grade |
| `FILM_CONTRAST` | 0.65 | Contrast punch on top of the tonemap |
| `SPLIT_TONE_STRENGTH` | 0.9 | Strength of the teal/orange split |
| `CHROMATIC_ABERRATION` | 2.0 | Lens fringing at screen edges |
| `CINEMATIC_VIGNETTE` | 0.8 | Extra edge darkening |
| `FILM_GRAIN` | 0.06 | Grain amount |
| `LETTERBOX_STRENGTH` | 1.0 | 0 turns the black bars off |
| `LETTERBOX_RATIO` | 2.39 | Bar aspect ratio |
| `ANAMORPHIC_STREAKS` | on | Toggle for the lens streak effect |
| `ANAMORPHIC_STREAK_STRENGTH` | 0.55 | How visible the streaks are |
| `ANAMORPHIC_STREAK_THRESHOLD` | 0.92 | How bright something needs to be to streak |
| `WATER_FACE_DRIPS` | on | Toggle for the surfacing droplets |
| `DRIP_STRENGTH` | 0.7 | How visible the droplets are |

**Camera page:**

| Setting | Default | Notes |
|---|---|---|
| `TONEMAP` | ACESFilm | Swap to Uchimura or Lottes for a different filmic curve |
| `BLOOM_STRENGTH` | 2.5 | Turned back down from an earlier, too-strong pass |
| `aperture` | 0.65 | DOF blur strength — brought down again, was too heavy |
| `DOF` | on | Turn off for permanently sharp everything |

**Lighting page:**

| Setting | Default | Notes |
|---|---|---|
| `sunColorG` / `sunColorB` | 0.8 / 0.55 | Lower = warmer sunlight |
| `sky_mieg` | 0.8 | Sun halo intensity |
| `sky_coefficientRayleighB` | 4.5 | Sky depth/richness |
| `sky_coefficientMieR/G/B` | 3.6 / 3.6 / 3.8 | Atmospheric haze |
| `sun_illuminance` | 100000 | Direct light brightness |
| `Ambient_Mult` | 0.85 | Shadow fill light — pulled back down for a moodier look |
| `Water_Absorb_R` / `Water_Absorb_G` | 0.12 / 0.035 | Water color depth |

If any single thing feels off, they're all independent — turn off
`LETTERBOX_STRENGTH`, drop `FILM_GRAIN` to 0, whatever. Nothing here needs
everything else on to work.

## If shaders won't load at all

If it says "Shaders disabled!" and falls back to vanilla rendering instead
of anything visual breaking, that's a compile error, not a "looks bad"
problem. Check `.minecraft/logs/latest.log` for a line naming a specific
`.fsh`/`.glsl` file — that's the fastest way to actually get it fixed
rather than guessing. I can't compile GLSL myself to test changes before
handing them over, so if something's broken, the log is genuinely the
quickest path to a fix.

## Performance

DOF and the cloud god rays (`VL_Clouds_Shadows`) are the real cost here.
If you need frames back, drop the Profile to Medium or Low first — that
turns off god rays and dials back shadow/water/cloud quality without you
having to hunt down individual settings.

## Credits

Chocapic13 — the whole shader underneath: lighting, shadows, water,
clouds, TAA, all of it.

This edit — the tonemap/bloom retune, the water color and reflection tint,
the sky/lighting changes, the streak and droplet effects, the profile
system, and fixing the bugs that came up along the way.
