VividHorizon r2
================

Created by: Tav6442
Development assistance: Claude (Anthropic's AI assistant)

VividHorizon is a modified version of Complementary Reimagined, retuned
for stronger reflections, richer color grading, warmer sunrises/sunsets,
and new features (meteors, a Milky Way band) not present in the base
pack. See CHANGELOG below for the full list of changes.

------------------------------------------------------------------------
Required attribution (per the Complementary License Agreement 1.6,
section 1.3 - this pack is a licensed Modified Pack and this notice is a
condition of that license, see License.txt):

  Built on: Complementary Reimagined r5.8.1
  Original project: https://modrinth.com/shader/complementary-reimagined
------------------------------------------------------------------------

CHANGELOG
=========

v2.13 - True Darkness: fixed and improved
  - Re-verified minimumLighting.glsl against the real GLSL compiler
    across all 3 meaningful branch combinations (TRUE_DARKNESS on/off,
    CAVE_LIGHTING zero/nonzero) - all compile clean, no issues found.
  - Real improvement: replaced the hard on/off switch with a graduated
    TRUE_DARKNESS_STRENGTH slider (10-100%). 100% behaves exactly like
    the original pitch-black toggle (fully backward compatible); lower
    values stay very dark without going fully to zero, useful for horror
    modpacks that want oppressive darkness without total invisibility.
  - Updated the description text as requested: "True Darkness For Horror
    Vibes And ModPacks. (Can MJ Find IT?) Of course He Can!"

v2.12 - Critical fix: shader failing to load entirely
  - Root cause found and confirmed with an actual GLSL compiler
    (glslangValidator), not just heuristic brace-counting: the flying
    birds early-exit optimization added in v2.9 referenced the local
    variable `wingSpan` five lines before it was actually declared.
    GLSL requires strict declare-before-use ordering within a scope, so
    this was a genuine "undeclared identifier" compile error - and a
    single fragment shader failing to compile causes Iris to abort
    loading the entire pack and silently fall back to vanilla rendering,
    exactly matching "nothing happens when I enable the shader."
  - Installed a real GLSL compiler in this environment and built an
    isolated test harness (stubbing external Iris/Complementary
    uniforms our code depends on) to compile-check every custom file
    from this pack's history: stars.glsl (meteors, Milky Way),
    enderStars.glsl (black holes, planets, moons, big shooting stars),
    flyingBirds.glsl, and minimumLighting.glsl (True Darkness). All four
    now compile cleanly with zero errors - this is the first time in
    this pack's development that changes were verified against a real
    compiler instead of only structural heuristics (brace/paren
    counting, #if balance, option-range checks), which is how this bug
    slipped through undetected for two whole updates.
  - Moved wingSpan's declaration to immediately after birdPos is
    computed, before the early-exit check that uses it. No other logic
    changed.

v2.11 - True Darkness toggle
  - Added "Darkness" toggle in the Other settings menu, tooltip reads
    exactly as requested: "True Darkness For Horror Vibes And ModPacks".
    Off by default (niche/opt-in feature, shouldn't change the default
    experience for players who don't want it).
  - A file called Darkness_for_Vivid.zip was shared alongside this
    request, but it could not be used directly for two separate reasons:
    (1) no license anywhere in the archive - same issue as
    iterationT_3_2_0.zip earlier in this pack's history, substantial
    original code with zero granted permission to use it; (2) it's
    technically the wrong format entirely - it's a vanilla resourcepack
    post-process shader override (assets/minecraft/shaders/core/*.vsh +
    include/light.glsl), not an Iris shaderpack component. Iris
    shaderpacks completely replace that vanilla pipeline with their own
    gbuffers/composite system, so those files would not have functioned
    even if dropped into this pack's folder.
  - Implemented fresh, using a mechanism VividHorizon (via Complementary)
    already had: CAVE_LIGHTING controls a minimum ambient light floor in
    unlit areas, and setting it to 0 already fully removes that floor at
    the code level (compiles out entirely rather than just going to a
    small value). TRUE_DARKNESS simply forces that same zero-floor
    branch regardless of whatever CAVE_LIGHTING's own value is set to,
    so players don't have to give up their CAVE_LIGHTING preference to
    use it - it's a clean independent override.
  - Night Vision potion effect is deliberately unaffected - it still
    lights up dark areas as normal. True Darkness removes the passive
    always-on visibility floor, not an active gameplay mechanic.
  - Not yet confirmed by an actual render (no GPU available in this
    environment) - please confirm caves/unlit areas go properly pitch
    black with it on, Night Vision still works, and it's off by default.

v2.10 - Menu label renames
  - "Performance Settings" renamed to "Advanced Settings" - updated the
    main tab label plus all 10 other places it was mentioned by name in
    help/comment text elsewhere in the menu (so those references don't
    go stale and point to a menu name that no longer exists).
  - "Color Balance" renamed to "Colors".
  - Both are display-text-only changes in the language file, not the
    internal screen identifiers renamed in v2.6 (VH_PERFORMANCE etc.) -
    no functional/structural risk, purely cosmetic label text.

v2.9 - Rings removed, performance optimizations, further quality pass
  - Removed the ring feature entirely (fully stripped the code, not just
    disabled) per feedback. Planets keep their 6x size and everything
    else about them; black holes were never affected by rings in the
    first place and are unchanged.
  - Clarified: shaders are inherently resolution-independent GLSL code -
    there's no discrete "4K support" toggle to add, since this pack
    already renders correctly at whatever resolution Minecraft is set
    to, same as it always has. Checked the two custom buffers
    (colortex1/7, used for reflections) and confirmed they're already
    sized as resolution-relative fractions, not fixed pixel counts, so
    they already scale properly at 1080p/2K/4K/etc.
  - Real performance optimizations added to my own custom sky code
    (stock Complementary code was not touched here): flying birds,
    meteors, the Milky Way's noise texture, and End big shooting stars'
    tail loop all now have a cheap bounding/distance check added before
    their more expensive math, so pixels nowhere near the effect skip
    the costly work entirely instead of computing it unconditionally on
    every sky pixel. Black holes and planets already had proper
    early-exits from when they were first built, no change needed there.
  - Two more quality settings raised: CLOUD_QUALITY and
    LIGHTSHAFT_QUALI_DEFINE, both 2 -> 3. Deliberately did NOT raise
    DETAIL_QUALITY or SHADOW_QUALITY further - both stay at values no
    higher than what the stock ULTRA profile already tests, same
    caution as the DETAIL_QUALITY bug earlier this pack's history.
    CLOUD_QUALITY/LIGHTSHAFT_QUALI_DEFINE=3 is also already precedented
    by stock ULTRA, so this isn't venturing into untested territory.
  - Not yet confirmed by an actual render (no GPU available in this
    environment) - please confirm the rings are gone, planets still look
    right at their current size, and that things still feel smooth
    performance-wise with clouds/lightshafts at the higher setting.

v2.8 - Visual quality pass (color, reflections, shadows, lighting)
  - Saturation and vibrance raised (1.35 -> 1.50 each) for richer color.
  - Contrast raised slightly (1.05 -> 1.10) - deliberately kept far below
    the 1.15 that contributed to the earlier whiteout bug, and left
    TM_EXPOSURE and REFLECTION_RES completely untouched (both were part
    of that same earlier bug) to avoid recreating that specific
    combination.
  - Water refraction increased (2.2 -> 2.6) for a stronger, more
    dynamic water look without touching reflection sharpness itself.
  - Ambient occlusion (SSAO) quality raised from 2 to 3 on the
    quality-focused profiles only (MEDIUM, HIGH, VERYHIGH, ULTRA,
    VIVID_BALANCED) - deliberately left at 2 on the performance-focused
    profiles (POTATO, VERYLOW, LOW, VIVID_PERFORMANCE), since raising it
    there would work against their entire purpose.
  - Normal map strength increased (140 -> 160) for more defined surface
    lighting detail.
  - Bloom strength increased slightly (0.18 -> 0.21).
  - Ambient light multiplier raised (100 -> 120) so shadowed areas read
    as more naturally lit rather than going too flat/dark, complementing
    the existing shadow quality/distance settings rather than changing
    them further (SHADOW_QUALITY was deliberately left at its current
    max-tested value of 3, matching what ULTRA already uses - going
    higher would be untested territory no stock profile has ever used,
    the same category of risk that caused the DETAIL_QUALITY bug before).
  - Not yet confirmed by an actual render (no GPU available in this
    environment) - please confirm the richer color/lighting look good
    and doesn't reintroduce any washed-out/overexposed areas.

v2.7 - Planet rings, 6x bigger planets
  - Added Saturn-style rings to all 3 End planets (not the 2 moons -
    moons don't get rings). Rings render in the same local tangent-plane
    coordinate system as the planet disc, flattened into an ellipse to
    simulate a tilted ring, with a subtle banding texture.
  - Planets scaled to 6x their previous angular size (0.028/0.016/0.012
    rad -> 0.168/0.096/0.072 rad).
  - Before scaling up, checked angular separation between every pair of
    fixed End sky objects (3 black holes, 3 planets, 2 moons) - the
    closest non-moon pairing is ~40 degrees apart, and even with rings
    extending to ~2.3x the disc radius, the largest ringed planet's
    footprint is well under half that separation. No overlap.
  - Confirmed END_BLACK_HOLE, END_EXTRA_BLACK_HOLES, END_PLANETS,
    END_MOONS, and END_BIG_SHOOTING_STARS are not referenced by any
    profile.X line, so they were already unaffected by profile choice
    (POTATO through ULTRA, and both VIVID_ profiles) - "default for all
    profiles" was already true before this request, no change needed.

v2.6 - Milky Way/meteor visibility fix, End dimension expansion, menu rename, credits
  - Milky Way was mathematically far too dim even under ideal conditions
    (peak brightness ~2.2 vs stars' 40.0, ~18x dimmer) mainly because its
    shape value was being squared, crushing an already-fractional number.
    Removed the squaring, reduced an overly aggressive night-factor
    exponent, and boosted the brightness multiplier - now comparable in
    strength to stars.
  - Meteors were mathematically fine in peak brightness but only had
    about a 9% chance of being visible at any given moment (30% spawn
    chance per ~18s cycle, visible for ~5.4s when they did spawn) -
    enough to make "not showing at all" a very plausible short-session
    experience even though nothing was strictly broken. Increased spawn
    chance to 55%, shortened the cycle, widened the trail, and increased
    brightness for much more reliable sightings.
  - Added new End dimension visuals, all built using the same robust 3D
    angular-distance technique the original black hole already used
    (learned from the meteor/bird bug that a 2D screen-projected
    coordinate range is fragile if miscalibrated - 3D unit-sphere
    direction vectors avoid that problem entirely):
      * Two additional smaller black holes (END_EXTRA_BLACK_HOLES)
      * Three small colored planets (END_PLANETS)
      * Two moons close together, one big and one small (END_MOONS)
      * Big shooting stars, a bigger/brighter dramatic version distinct
        from the Overworld meteors (END_BIG_SHOOTING_STARS,
        END_BIG_SHOOTING_STAR_INTENSITY)
    All toggleable in screen.END_SETTINGS.
  - Renamed the 7 top-level in-game menu categories to VividHorizon-
    specific internal names (VH_PERFORMANCE, VH_MATERIALS, VH_CAMERA,
    VH_ATMOSPHERE, VH_LIGHTING, VH_EXTRAS, VH_INFO) instead of stock
    Complementary's generic names. Only did this for the 7 top-level
    categories, not the ~40 deeply nested sub-screens - those are
    cross-referenced by bracket syntax in multiple places, and a single
    mismatched rename among that many would silently break a submenu
    with no way for me to catch it without compiling. The 7 top-level
    ones are only ever referenced from one single master line, verified
    every reference updated correctly before and after.
  - Rewrote the in-game Information screen: it now states VividHorizon
    is a modified/retuned version of Complementary Reimagined with a
    link to www.complementary.dev (required by the license), credits
    Tav6442 and Claude for VividHorizon itself, and keeps original
    Complementary developer credits in their own section rather than
    presenting Complementary's own Discord/Patreon as VividHorizon's.
  - Not yet confirmed by an actual render (no GPU available in this
    environment) - please confirm Milky Way, meteors, and the new End
    visuals all show up correctly, and that the renamed menu tabs look
    right in-game.

v2.5 - Fixed flying birds not appearing
  - Root cause: birds (and meteors, sharing the same bug) were positioned
    using an assumed sky coordinate range of about -5 to 5. The sky
    projection this pack actually uses only ever produces coordinates
    from about 0 to 2 across the entire visible sky (checked directly:
    0 at the zenith, ~1.9 near the horizon). Most birds were being placed
    in coordinate space no viewing angle can ever reach - not a rendering
    glitch, just positioned somewhere no pixel ever samples.
  - Rescaled both birds' and meteors' position/travel ranges to fit
    within the sky's real visible range. Also cleaned up a smoothstep
    call in the bird fade-out with reversed edge order (edge0 > edge1),
    which is undefined behavior per the GLSL spec even though it likely
    happened to work on most GPUs by coincidence.
  - Meteors were not reported as broken, but share the exact same
    positioning bug, so likely had the same (or a partial) visibility
    problem - fixed proactively rather than waiting for a second report.

v2.4 - End black hole + flying birds
  - End black hole (screen.END_SETTINGS -> END_BLACK_HOLE toggle,
    END_BLACK_HOLE_INTENSITY slider): a fixed point in the End sky now
    shows a dark event horizon core with a warm-to-cool swirling
    accretion disk ring and soft outer glow. Original code, inspired by
    the general "black hole sky" concept from reference images provided
    during development - not copied from any specific pack's code.
  - Flying birds (screen.ATMOSPHERE_SETTINGS -> FLYING_BIRDS toggle,
    FLYING_BIRDS_AMOUNT slider): small flapping-wing silhouettes, a mix
    of black and white, drift across the daytime Overworld sky. Built as
    original procedural geometry (shaderpacks can't spawn real game
    entities), extending the pack's existing star-projection math.
  - Note on other files shared for this update: iterationT_3_2_0.zip had
    no license anywhere in it, so it was left out entirely - no license
    means no permission to use it. superDuperVanilla and
    rethinking-voxels do have usable licenses, but their code was not
    actually transplanted in - merging core rendering systems from three
    independently-built shaderpacks with no way to compile-test the
    result was judged too likely to break outright. They're not listed
    in credits below since nothing from them ended up in the code;
    crediting unused work would be as inaccurate as skipping used work.
  - Not yet confirmed by an actual render (no GPU available in this
    environment) - please confirm both effects look right in-game.

v2.3 - Meteors + Milky Way
  - Added occasional meteors (shooting stars) at night: METEOR_SHOWERS
    (on/off) and METEOR_FREQUENCY (1-4) in the in-game menu, next to the
    other night-sky settings. Random timing, fades with rain/daylight,
    visible in water reflections too.
  - Added a Milky Way band across the night sky: MILKY_WAY (on/off) in
    the in-game menu. Only appears with little to no nearby light
    (torches, lava, glowstone, etc.) - stand somewhere dark to see it.
  - Both built by extending the pack's existing star-rendering code
    (same coordinate system, same day/night fade logic). Not yet
    confirmed by an actual render (no GPU available in this environment)
    - please report back if timing, frequency, or brightness need
    adjusting.

v2.2 - Confirmed bug fixes (from in-game testing)
  - ANISOTROPIC_FILTER ("Texture Filtering" in-menu) was the confirmed
    cause of terrain not loading on VERYHIGH/ULTRA/Custom. Reset to 0
    (stock default) everywhere it had been raised.
  - DETAIL_QUALITY held at 2 on VERYHIGH/ULTRA (was 3) as a precaution
    against a second suspected cause (a feature called
    SKY_EFFECT_REFLECTION that only activates at DETAIL_QUALITY 3+ and
    injects extra cloud raymarching into water/reflections). Can be
    restored to 3 on request once VERYHIGH/ULTRA are confirmed stable.
  - Fixed stock VERYHIGH/ULTRA profiles re-enabling COLORED_LIGHTING,
    which would have reintroduced an earlier terrain-whiteout bug.
  - Added VIVID_PERFORMANCE and VIVID_BALANCED profiles for real FPS
    choice, alongside the stock POTATO..ULTRA ladder.
  - Full audit pass across all 213 tunable options and all 9 profiles;
    found and corrected 9 values that had drifted onto slider steps that
    don't actually exist in this pack (grid spacing isn't uniform across
    all sliders).

v2.1 - Reflection/exposure fix
  - First reflection tuning attempt (full-res reflections + raised
    exposure/contrast) made open water blow out to solid white at
    shallow viewing angles (e.g. flying high over ocean), which looked
    like missing terrain but wasn't. Reverted reflection resolution,
    exposure, and contrast closer to stock; kept reflections stronger
    than stock via BLOCK_REFLECT_QUALITY / WATER_REFLECT_QUALITY /
    WATER_REFRACTION_INTENSITY instead.

v2.0 - Initial VividHorizon retune
  - Reflections: block/water reflection quality maxed, refraction
    increased, shadow quality/distance increased.
  - Color: saturation/vibrance, bloom, lens flare, normal map strength,
    and TAA smoothing all increased.
  - Sunrise/sunset: enabled Complementary's time-of-day color multiplier
    system, pushed sunrise/sunset warm gold/orange, richer noon blue,
    cooler/bluer night, brighter sunset light shafts.
  - Colored bounce lighting / world-space reflections left off - both
    rely on an Iris custom-image voxelization system that's unstable on
    many GPU/Iris combinations.

All values changed remain within the option ranges Complementary's own
in-game menu already exposes; no code logic was added or removed until
the v2.3 meteor/Milky Way feature work, which extends (not replaces) the
pack's existing star-rendering system.
