The daylight lane's tooltip had raw line breaks inside a Lua string instead of
an escaped blank line, a syntax error that broke OptionsFrame.xml's inline
script (an error dialog on the UI-fixture captures).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review B4: the Stormwind window split changed the default image with no switch.
New cvar daylightWindowSplit (default 1 = merged behaviour, a future High-only
preset member), bridged to daylight::set_window_split. Review B5: each settled
exterior torch slot is keyed by the resident tiles whose footprint reaches its
sphere (terrain_torch_generation_near), not a global stamp that re-rendered
every slot on any stream event.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review W4: the bend height was normalised per submesh, so a trunk + canopy
detail doodad tore apart at the seam; the span is now taken over all of the
model's submeshes. Review W5: clutter meshes carry UV_1 (VERTEX_UVS_B), so the
six clutter pipelines are also warmed on the POS+NORMAL+UV0+UV1+COLOR quad.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review B9: update_sky_colors and update_cloud_fx read the cloud coverage with no
order against tick_clouds, so the glow's cover sample was this frame's or the
last one's nondeterministically. New CloudTick set; both run after it.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review B2: the f32 clock wrapped hourly and every star's twinkle jumped at the
wrap. It now accumulates in f64 and wraps at 86400 s; the shader rounds each
twinkle rate to whole cycles per wrap, so the stars are seamless. The High
cloud detail drift still re-patterns once per 24 h (noted).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review B3: floor(cycle) % 50 keeps the ring roll continuous across the 1000 s
wrap. B8: publish the ripple clock only while it rains. B7: nudge the wet
sheen half-vector off zero. B6: WORD_WINDOW batches are excluded from wet
darkening.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review P4: emissive_boost now lifts only above a 0.6 knee (equal to the old
gain at 1.0), so additive spells and lava keep their look and the excess feeds
the bloom. Review P3: the window gain applies to static_gx's SIDN light term
before fog, not to the whole fogged batch. Review P6: Low-tier extract taps
scale with the quarter-size target. Review P7: excess capped at 64 (no NaN).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Review P1: the path mean lifted every clear sky pixel equally; it is now the
occlusion ratio times an aspect-corrected radial falloff from the sun.
Review P2: sky = depth <= 1e-7 (cleared / sky-pinned), no longer a nearclip-
dependent ramp. Review P5 (partial): read one MSAA sample per tap.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The integration wrapped the final gamma colour in fog_sky_horizon, whose weight
is 1 at 0 deg, so the sunset glow was erased at the horizon. Mix the Modern far
fog colour into the linear gradient before the glow and stars (review A1) and
return from the SKY_FX branch; the Classic tail keeps fog_sky_horizon.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Bit 18 aliases the top lane-weight bit and bit 12 of the interior probe slot,
so doorway units and probe-lit interior props swayed like trees. A classified
leaf batch's fade-band exile now gets marked copies of its cutout/blend
materials (clutter_fade.z bit 14, FOLIAGE_WIND_MARKER, not a key axis) and
wow_model.wgsl sways only those.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The wave phase was k*speed(t)*t (its rate grows with session age: ~33 Hz noise
after 10 min) and its spatial term rotated about the world origin with the veer
(hundreds of rad/s at 9k yd from the first second). Now update_wind integrates
travel += speed*dt in f64 and publishes it wrapped at 4096 yd (wind_b.x); every
wave rate is a whole number of cycles per wrap, so the wrap is seamless. The
spatial term uses the fixed profile heading (wind_a.z); the veer and gust turn
only the bend. Capture offset WOW_CAPTURE_WIND_T for late-session shots.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Foliage wind is a lighting-preset member but bypasses VideoConfig. Read back its world resource in the shared preset clamp test so the merged row is covered like every other member.
Co-Authored-By: GPT-5.6 Sol (Codex)
Remove merge-time blank separators so the water, post, sky, and wind attribution rows remain in the single required table.
Co-Authored-By: GPT-5.6 Sol (Codex)
The wind lane's unverified closer handoff coordinates put the capture camera inside a Goldshire building. Restore the open-grass coordinates used by the lane's successful before/after captures.
Co-Authored-By: GPT-5.6 Sol (Codex)
The cloud FX reader is registered from CloudsPlugin in LightingConsumeSet, outside the source file inspected by the ordering census. Record that cross-file registration explicitly.
Co-Authored-By: GPT-5.6 Sol (Codex)
Naga Oil treats a trailing digit as an invalid composable-module identifier. Rename the remaining sky, water, and shadow helpers and locals without changing their calculations.
Co-Authored-By: GPT-5.6 Sol (Codex)
Framed with the vista instrument: Elwynn above the canopy (the old eye stood
inside a tree), Redridge from the known-good Lakeshire dock eye with a wider
look, Hyjal above the terrain (the Light.dbc sphere centre z is underground),
Ironforge over a floor face inside the city (the old eye was outside the WMO).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Sun-fog strength 0.25 / angle 0.4 / lean 0.4, end-fog lean 0.25: the first
pass turned dusk ridges into flat orange cut-outs against a blue sky. The
dome's low band now MIXES toward the far fog colour by 15 deg (an offset
over-pushed an already warm dusk ring). update_fog_model joins the
ordering test's ALLOWED list (it runs in the resolve set, after it).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Wetness ramps up while it rains (~90 s to soaked) and dries over ~4 min; ripple clock;
rainSurfaces resource; env WOW_RAIN_SURFACES / WOW_WETNESS / WOW_WET_T capture overrides.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
naga_oil refuses a composable-module identifier that naga's namer would
rewrite (a trailing digit gets a '_'), which failed every pipeline that
imports monkey_frame / enhanced_water (models, WMOs, liquid invisible).
MonkeyFrame rows are renamed fog_a..fog_d, wind_a/b, wet_a (same order and
layout), and enhanced_water's padding member _sh_c16 becomes _sh_quad.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Let deterministic captures read an explicitly selected BENILLA_HOME config while keeping every capture persistence path disabled. This makes the post ON/OFF homes effective without weakening capture hermeticity.
Co-Authored-By: GPT-5.6 Sol (Codex)
fog_hook.wgsl: radial exponential fog fitted to the zone's 1.12 start/end
(60 % survival mid-span, closed over the last stretch so the zone end
holds), optional height fog, end-fog colour shift, sun-fog lobe; interior
WMO spans stay classic; the WDL hull pair takes the far colour.
lighting/fog_model.rs fills the MonkeyFrame fog rows each frame (derived
from the 1.12 bands, or LightFogBand.dbc rows); fog_d.x carries the scene
fog end as the Modern flag, fog_d.zw the octahedral sun direction.
resolve.rs: Modern stretches the fog end with farclip past 777 only.
sky.wgsl/sky.rs: the dome's low band eases into the same far colour.
Classic packs zeros and every new path branches out.
Includes the cherry-picked p0 fix 05d6b1ad (MonkeyFrame rows fog_a..).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
benilla-formats/src/light/fog_band.rs reads our LightFogBand.dbc (the
LightFloatBand record, 13 rows per LightParams: height fog, curve blend,
sun-fog rgb/strength/angle, end-fog rgb/distance). Absent file = empty
catalog, no error. blend_chain exposes the area-light blend order so a
side table folds with the same law as the stock bands.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
naga_oil refuses a composable-module identifier that naga's namer would
rewrite (a trailing digit gets a '_'), which failed every pipeline that
imports monkey_frame / enhanced_water (models, WMOs, liquid invisible).
MonkeyFrame rows are renamed fog_a..fog_d, wind_a/b, wet_a (same order and
layout), and enhanced_water's padding member _sh_c16 becomes _sh_quad.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
naga_oil refuses a composable-module identifier that naga's namer would
rewrite (a trailing digit gets a '_'), which failed every pipeline that
imports monkey_frame / enhanced_water (models, WMOs, liquid invisible).
MonkeyFrame rows are renamed fog_a..fog_d, wind_a/b, wet_a (same order and
layout), and enhanced_water's padding member _sh_c16 becomes _sh_quad.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Classify static alpha-tested tree and bush leaf batches, log accepted model paths, and apply gentle anchor-phased crown sway and flutter in both retained and fade-twin render paths. Keep animated doodads and tree shadows unchanged, and add wind capture instruments.
Co-Authored-By: GPT-5.6 Sol (Codex)
Author bend weight from source-mesh height in clutter UV1, preserve texture coordinates and cutout alpha, and apply WarcraftXL's two-wave gust, lean, phase, variance, and distance fade in the model vertex path. Fill the player plus seven nearest unit benders without per-frame allocation.
Co-Authored-By: GPT-5.6 Sol (Codex)