NOTICE: Oxygen Atmosphere Water Wave Direction/Spread Technique - Port
========================================================================

This file documents the port of Oxygen Atmosphere's water wave DIRECTION
technique into Unbound Visual + PT v9.7 steable, replacing GERSTNER_WAVES as the
active/default water animation on all profiles (LOW/STANDARD/ULTRA/
CINEMATIC).

SOURCE PACK:
  Oxygen Atmosphere 1.1
  An independent shaderpack based on MakeUp Ultra Fast 9.5c, originally
  created by Javier GarduÃ±o (KDXavier).
  https://github.com/javiergcim/MakeUpUltraFast
  https://modrinth.com/shader/makeup-ultra-fast-shaders

  Source file referenced:
    shaders/lib/oxygen_atmosphere_water_surface.glsl
    (functions: oxygenAtmosphereWaterStyleSample,
                oxygenAtmosphereWaterSurfaceData - direction/warp/phase math)

  Source texture used at runtime:
    shaders/textures/oxygen_atmosphere_water_cycle_atlas_2080.png
    (copied to Unbound's image/water/ folder, bound to a new dedicated
    "oxygenWaterAtlas" sampler - NOT rebound to noisetex, so none of
    Unbound's own noisetex usage elsewhere is affected)

PORTED BY:
  Ported into Unbound Visual + PT v9.7 steable v9.7 steable's water.glsl plug interface
  (the same interface already used for GERSTNER_WAVES/MAKEUP_WATER_WAVES/
  IVX_WATER_WAVES).

WHAT WAS PORTED (scope requested: direction/spread only):
  - 4 analytic directional wave components (A/B/C/D), each with its own
    frequency/speed/rotation, summed into one slope.
  - A 2-component sin/cos domain warp applied to the sample position
    before the directional waves, so the direction field bends smoothly
    over space instead of staying perfectly parallel.
  - A time-of-day "style" system (dawn/noon/dusk/midnight), each with its
    own flow-rotation angle and frequency/speed/energy multipliers,
    cross-faded smoothly across the full day/night cycle using Unbound's
    existing `timeAngle` (0=dawn, 0.25=noon, 0.5=dusk, 0.75=midnight -
    same convention as Oxygen's `waterDayMoment`, no conversion needed).
  - A small baked-detail directional contribution sampled from Oxygen's
    own atlas texture, layered on top of the analytic slope.

WHAT WAS DELIBERATELY NOT PORTED (out of the requested scope):
  - Water color/pigment grading - Unbound keeps its own color pipeline
    (realisticWaterColor.glsl, WATERCOLOR_* sliders) untouched.
  - Rain impact ripple rings - Unbound already has its own separate
    rain-puddle system (RAIN_PUDDLES); porting a second, overlapping rain
    ripple system would double up and likely conflict visually.
  - Reflection fresnel / environment-lighting helpers - unrelated to wave
    direction, Unbound's existing reflections.glsl is untouched.

FILES ADDED/CHANGED:
  - lib/materials/materialMethods/oxygenWaterWaves.glsl (new port)
  - lib/materials/specificMaterials/translucents/water.glsl (new
    OXYGEN_WATER_WAVES branch added, given top priority)
  - lib/common.glsl (OXYGEN_WATER_WAVES defined as new active default;
    GERSTNER_WAVES commented out - it remains available as first fallback
    if OXYGEN_WATER_WAVES is disabled)
  - shaders.properties (texture.gbuffers_water.oxygenWaterAtlas /
    texture.dh_water.oxygenWaterAtlas binding for the atlas texture)
  - image/water/oxygen_atmosphere_water_cycle_atlas_2080.png (copied
    texture asset)

ATTRIBUTION:
  - Original Oxygen Atmosphere author (see the source pack's own
    README.md/ASSET_SOURCES.md for full credit chain)
  - Javier GarduÃ±o (KDXavier): MakeUp Ultra Fast, the base Oxygen
    Atmosphere itself is built on

LICENSE:
  Oxygen Atmosphere is licensed under the GNU Lesser General Public
  License v3.0 or later (LGPLv3+) - see the source pack's own LICENSE
  file. This port carries the same license terms forward for the ported
  portion of the code (the functions listed above), with attribution
  preserved both here and in-code (see the header comment in
  oxygenWaterWaves.glsl). If the original author wishes for removal or
  additional licensing terms, please contact the Unbound maintainers.
