Commit Graph
50 Commits
Author SHA1 Message Date
pkuzic ef5eb5e5d1 Merge gfx/optional (asset-free sky & grading builder) into integration 2026-09-26 18:00:44 +01:00
pkuzic 557cb71319 Merge gfx/leftovers (skybox flags 0x8/0x10, shaft water mask, shadow-caster warm, torch terrain census) into integration 2026-09-26 18:00:43 +01:00
pkuzicandClaude Opus 5.5 0299979121 MONKEY (fix-wind): visible foliage wind + Foliage Wind Strength slider
The owner's "wind does not work" was the motion being too small to see (WXL's
0.06 yd grass tips on a 6 s wave, 0.1 yd tree crowns). Retuned at the 9 yd/s
base speed:
- grass: tips about +-0.2-0.3 yd, 2.5 s main wave (182 cycles/wrap), 1.1 s
  cross flutter (410); 55 yd gust bands roll downwind (68), swelling the sway
  to 1.2x and lulling it to 0.55x; a bent tip dips (no stretched blades).
  Parting around units unchanged.
- trees/bushes: 4 s crown sway (114), 5.5 s side wave (82), 0.8 s leaf
  flutter (569); crown weight grows with height (0.43x at 1.5 yd, 1x at 6 yd,
  1.3x cap), so canopies sway about +-0.3 yd while bushes nod and bases stay
  planted.
- new cvar foliageWindStrength 0.25..3 (default 1, not on the preset ladder):
  Advanced Graphics slider under Foliage Wind (EN+RU label/tooltip), greyed
  while Foliage Wind is Off; carried in sway_strength, so the parting ignores
  it; a storm adds up to +60 % sway.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 17:53:32 +01:00
pkuzicandClaude Opus 5.5 bd756f2a72 MONKEY (leftovers): torchTerrainShadows evidence - census light height, clearance, near count
lamp_terrain_occlusion_scan takes an optional light height and ray clearance, counts blocked
samples within 15 yd, prints the ground height, and ranks by the near count. Used to pick the
leftovers B1 scenes (Elwynn campfires, lampposts, bridge lamp): the gather and the terrain
receiver work, the terrain-blocked ground is grazing or at the rim, so the lit image is unchanged.
LIGHTING.md says so.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 17:09:13 +01:00
pkuzicandClaude Opus 5.5 218ff0cfc0 MONKEY (leftovers): LightSkybox flags 0x8/0x10 plumbing; 0x10 suppresses the Modern sun-fog lobe
SKYBOX_FORCE_SUN_SHAFTS (0x8) and SKYBOX_NO_SUN_FOG (0x10) constants, CameraSkybox::flag_weight
(heaviest main layer carrying a flag). update_fog_model scales sun_fog_strength by 1 - weight of a
0x10 sky. LIGHTING.md documents both flags (0x8 consumer lands in the next commit).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 15:55:15 +01:00
pkuzicandGPT-5.6 Sol (Codex) 67388625ec MONKEY (optional): add local sky and grading patch builder
Build Blizzard-derived sky assets only from the user's own CASC install, merge lighting DBCs from mounted winners, and pack a preserved patch-Z candidate. Include bilingual install and recovery guidance plus project-owned grading data.

Verified all 46 default stage payloads byte-identical to the reviewed stage; moderated WoW Forever LightIntBand byte-identical; band and mounted-chain checks pass on a hard-linked client copy. No Cargo command run.

Co-Authored-By: GPT-5.6 Sol (Codex)
2026-09-26 15:19:25 +01:00
pkuzicandClaude Opus 5.5 f5c58c81a2 MONKEY (visualfix): volumetric fog density follows the rendered clock
The dawn/weather density curve read WorldTime, the server clock, which stays at its noon default
offline, so a manual or capture time never got the dawn mist. It now reads the rendered minute
through grading's rendered_minute (the same rule as ac9a1ef3). Baselines move: volfog-dawn is
mistier (MAE 8.5), volfog-night is unchanged (0.07).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 06:00:26 +01:00
pkuzicandClaude Opus 5.5 891a4da5a3 MONKEY (perf): WOW_PERF_CROWD probe crowd; perf measurement notes in LIGHTING.md
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 04:01:34 +01:00
pkuzic 5828dc7406 Merge gfx/reviewfix-b (water/skybox/formats review fixes) into integration 2026-09-26 03:01:47 +01:00
pkuzicandClaude Opus 5.5 7661b7d372 MONKEY (reviewfix-a): zone grading visible in captures; follows the rendered clock
Found by the first runtime capture of the grade: a capture has no avatar, so
CurrentArea stayed None and no zone was ever graded; and the day/night weight
read WorldTime (the server clock, noon offline), so a manual/capture night
graded with the day LUT. Adds CaptureCameraArea (area under the camera, only
under WOW_CAPTURE, never read by the area authority) and grades by the
rendered GameClock minute. LIGHTING.md notes the preset/capture changes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-26 02:25:15 +01:00
pkuzicandGPT-5.6 Sol (Codex) 51d7de6a4e MONKEY (reviewfix): document Classic skybox fidelity
Co-Authored-By: GPT-5.6 Sol (Codex)
2026-09-25 23:22:02 +01:00
pkuzicandClaude Opus 5.5 8a5af68554 MONKEY (followups): reduce SSAO grain on alpha-tested foliage
STAGE_AO flags a two-sided depth spike (the smaller one-sided step two pixels out, capped by the
second difference: ~0 on planes, grazing planes, silhouettes and contact creases) and stores the
smoothness in alpha. STAGE_BLUR turns the spike density of its 4x4 window into a foliage mask,
widens the depth tolerance there (up to 11x) and scales the occlusion by 1 - 0.4 * mask. Smooth
windows are unchanged. WOW_AO_DEBUG=5 shows the mask. LIGHTING.md documents this and the two
earlier followups fixes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 22:02:01 +01:00
pkuzicandClaude Opus 5.5 b55e60e202 MONKEY (integration): merge graphics-programme-rainshelter
Camera-centred rain-occlusion height map for the wet lane (clean merge).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 19:53:18 +01:00
pkuzicandClaude Opus 5.5 66a6de2264 MONKEY (integration): merge graphics-programme-presets
Graphics Preset ladder + Render Distance (farclip ceiling 1497). Conflict in
options_tests: the Advanced page now has 33 rows (preset + render distance lead,
then the 31 programme rows). The three round-3 rows join the ladder:
ambientOcclusion 0/0/1/2/2, zoneSkyboxes 0/0/1/1/1, lampFog 0/0/1/2/2
(Classic/Low/Medium/High/Ultra); the preset tooltip names them (EN+RU).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 19:52:52 +01:00
pkuzicandClaude Opus 5.5 8e2ad79f3a MONKEY (integration): LIGHTING.md row for daylightWindowSplit
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 19:46:18 +01:00
Claude e4262a4acf MONKEY (rainshelter): document the rain-occlusion map and buffer region
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01R8t89gSUuo1uvbXKdh1mJt
2026-09-25 18:10:12 +00:00
Claude 905fd9516e MONKEY (presets): Graphics Preset ladder and Render Distance row
Advanced Graphics gains a Graphics Preset row (cvar graphicsQuality:
Classic / Low / Medium / High / Ultra / Custom) and a Render Distance slider
on farclip (177..1497, same cvar as Graphics' Terrain Distance). The ladder is
GRAPHICS_PRESETS in cvars.rs, one line per governed row with a column per
rung; lightingQuality is itself a row, so the lighting ladder's members follow
it. The lighting ladder gains an Ultra rung (4096 sun map, 16/8 torch maps,
High water, High volumetric fog). The label is re-derived every frame beside
lightingQuality, so editing a governed row shows Custom.

A player whose config.toml names no graphicsQuality is seeded to High at
startup over the rows the file does not carry; captures, tests and malformed
files never seed, and the rows keep their per-lane registered defaults. The
page's Defaults lands on High too. ambientOcclusion, zoneSkyboxes and lampFog
are commented one-line TODO rows until their cvars land.

Verified: cargo test -p benilla-app --lib -- options cvars preset (136
passed, incl. 7 new preset tests); full benilla-app lib: 3722 passed, 5
pre-existing failures unrelated to this change (spell envelope float, schedule
ambiguity ceiling, pipe_warm fog/shaft/shadow lanes, dev-plane cfg). The
options UI tests need WoW data and were skipped; no captures (no install in
the cloud). Built on Linux only.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Toc8dZYuTKW1JWBFbMb5S1
2026-09-25 18:00:24 +00:00
pkuzicandClaude Opus 5.5 89b68ed26b MONKEY (integration): merge gfx/skybox
Zone Skyboxes row moved to the end of the Advanced Graphics page and added to
OPTIONS_PAGE_ROWS (the lane had left it out of the list).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 18:08:23 +01:00
pkuzicandClaude Opus 5.5 f99c83845b MONKEY (integration): merge gfx/lampfog
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 17:36:40 +01:00
pkuzicandClaude Opus 5.5 8e87044539 MONKEY (integration): merge gfx/ao
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 17:33:52 +01:00
pkuzicandClaude Opus 5.5 b8fea8e78c MONKEY (fix-wind): document the static shadow under swaying leaves (review W6)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 17:04:05 +01:00
pkuzicandClaude Opus 5.5 5f7237aa98 MONKEY (fix-wind): integrate wind travel on the CPU; fixed-heading spatial phase
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>
2026-09-25 16:54:07 +01:00
pkuzicandGPT-5.6 Sol (Codex) 9429d506d9 MONKEY (lampfog): add options and visual proofs
Co-Authored-By: GPT-5.6 Sol (Codex)
2026-09-25 16:01:28 +01:00
pkuzic 9aa819b9ef Merge gfx/wet into integration
# Conflicts:
#	LIGHTING.md
#	crates/benilla-app/assets/ui/OptionsFrame.xml
#	crates/benilla-app/src/cvars.rs
#	crates/benilla-app/src/monkey_gfx.rs
#	crates/benilla-assets/src/materials.rs
#	crates/benilla-assets/src/shaders/fog_hook.wgsl
#	crates/benilla-assets/src/shaders/monkey_frame.wgsl
#	crates/benilla-world/src/lighting/monkey_frame.rs
#	crates/benilla-world/src/shaders/static_gx.wgsl
2026-09-25 12:06:14 +01:00
pkuzic 91f6656e5a Merge gfx/fog into integration
# Conflicts:
#	LIGHTING.md
#	crates/benilla-app/assets/ui/OptionsFrame.xml
#	crates/benilla-app/src/cvars.rs
#	crates/benilla-app/src/monkey_gfx.rs
#	crates/benilla-assets/src/shaders/enhanced_water.wgsl
#	crates/benilla-assets/src/shaders/fog_hook.wgsl
#	crates/benilla-assets/src/shaders/monkey_frame.wgsl
#	crates/benilla-world/src/lighting/monkey_frame.rs
#	crates/benilla-world/src/shaders/sky.wgsl
#	crates/benilla-world/src/sky.rs
2026-09-25 11:59:43 +01:00
pkuzic ff444a975f Merge gfx/wind into integration
# Conflicts:
#	LIGHTING.md
#	THIRD-PARTY.md
#	crates/benilla-app/src/cvars.rs
#	crates/benilla-assets/src/materials.rs
#	crates/benilla-assets/src/shaders/wow_model.wgsl
#	crates/benilla-world/src/shaders/static_gx.wgsl
2026-09-25 11:49:31 +01:00
pkuzic 54485366ad Merge gfx/daylight into integration
# Conflicts:
#	LIGHTING.md
#	crates/benilla-app/src/cvars.rs
2026-09-25 11:46:41 +01:00
pkuzic c9d8543a69 Merge gfx/sky into integration
# Conflicts:
#	LIGHTING.md
#	THIRD-PARTY.md
#	crates/benilla-app/assets/ui/OptionsFrame.xml
#	crates/benilla-app/src/capture/scenarios.rs
#	crates/benilla-app/src/cvars.rs
#	crates/benilla-app/src/game_plugins.rs
#	crates/benilla-app/src/lib.rs
#	crates/benilla-app/src/video.rs
2026-09-25 11:45:19 +01:00
pkuzic 440b69097f Merge gfx/p0 into integration
# Conflicts:
#	crates/benilla-app/src/capture/scenarios.rs
#	crates/benilla-assets/src/shaders/enhanced_water.wgsl
2026-09-25 11:40:30 +01:00
pkuzicandClaude Opus 5.5 9eda0a738f MONKEY (ao): diagnostic views, tuned gain/bias/strength, longer distance fade for outdoor contacts
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 10:37:13 +01:00
pkuzicandClaude Opus 5.5 5b8306dd6f MONKEY (wet): wet hooks in terrain/static_gx/wow_model, rain rings on water, rainSurfaces cvar + row, wet- scenarios
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 10:32:05 +01:00
pkuzicandClaude Opus 5.5 dff6556867 MONKEY (p0): WGSL fixes found by the world-scene run
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>
2026-09-25 10:17:09 +01:00
pkuzicandClaude Opus 5.5 64699c9660 MONKEY (fog): fogModel cvar, Advanced Graphics row, fog-duskwood scenarios, docs
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 09:21:02 +01:00
pkuzicandClaude Opus 5.5 71c50a7f4d MONKEY (p0): WGSL fixes found by the world-scene run
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>
2026-09-25 09:06:06 +01:00
pkuzicandClaude Opus 5.5 a102278abf MONKEY (p0): WGSL fixes found by the world-scene run
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>
2026-09-25 08:37:39 +01:00
pkuzicandGPT-5.6 Sol (Codex) 0fdc8e1ad4 MONKEY (wind): sway classified tree foliage
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)
2026-09-25 08:06:56 +01:00
pkuzicandGPT-5.6 Sol (Codex) e7356d5790 Merge gfx/post into integration
Preserve p0 fog and MonkeyFrame hooks, water's row-view ABI, and the post lane's emissive, bloom, sun-shaft, grading, cvar, and options work.

Co-Authored-By: GPT-5.6 Sol (Codex)
2026-09-25 08:01:24 +01:00
pkuzicandClaude Opus 5.5 310bed8941 MONKEY (daylight): city rooms the portal graph connects to the sky take the interiorDaylight floor; capture knobs + torch/goldshire scenario; LIGHTING.md
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 04:38:01 +01:00
pkuzicandClaude Opus 5.5 f863e4640f MONKEY (sky): skyQuality tier — smooth gradient, sun glow, night sky, High cloud detail + sun march
skyQuality 0 Classic (unchanged), 1 Enhanced, 2 High; Advanced Graphics row (EN+RU),
cvar bridge, sky-* scenarios above the canopy. Cloud technique ported from WarcraftXL
wxl-retail-clouds (THIRD-PARTY.md).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 04:09:34 +01:00
pkuzicandClaude Opus 5.5 00c2e278ee MONKEY (skybox): zoneSkyboxes cvar, Advanced Graphics row, skybox- capture scenarios
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 03:23:35 +01:00
pkuzicandClaude Opus 5.5 7dff91a923 MONKEY (ao): depth-only half-res SSAO pass before the water copy, cvar ambientOcclusion + Advanced Graphics row
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 02:52:56 +01:00
pkuzicandGPT-5.6 Sol (Codex) 02403c2243 MONKEY (post): route emissive materials into HDR
Co-Authored-By: GPT-5.6 Sol (Codex)
2026-09-25 02:02:19 +01:00
pkuzicandClaude Opus 5.5 a203c45a6d MONKEY (p0): THIRD-PARTY.md with the WarcraftXL credit table
One table of every WarcraftXL-derived file (Benilla file | WarcraftXL module |
Source files | What was taken), pre-filled with the enhanced-water blocks and
the swimmer bob, plus the planned ports. The standard header line
("Ported from WarcraftXL (https://github.com/WarcraftXL) by iThorgrim —
module ..., ...") is added to enhanced_water.wgsl and water_fx/bob.rs.
Linked from README, LIGHTING and WATER. WATER.md no longer says the WarcraftXL
water module is for the 1.12 client: it is a 3.3.5a client module.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 01:37:38 +01:00
pkuzicandClaude Opus 5.5 708859a13a MONKEY (p0): skyDither cvar for the FFXGlow deband dither
The combine's dither lane was armed only by the WOW_DITHER env var. It is now
the `skyDither` cvar (0/1, default 0 = reference look; Graphics preset High
= 1) with an Advanced Graphics "Sky Dithering" checkbox row (EN + RU). The
cvar lands on `benilla_world::ffx_glow::SkyDither` (extracted) through the new
`benilla-app/src/monkey_gfx.rs` bridge; WOW_DITHER=1 still forces it on.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 01:34:25 +01:00
pkuzicandClaude Opus 5.5 86f454ca4c MONKEY (p0): fog_hook.wgsl, one distance-fog law for every receiver
`benilla::fog_hook` (fog_linear / fog_sample / apply_fog) replaces the seven
hand-rolled copies of the linear planar-eye-Z fog: terrain, wow_model,
static_gx, liquid, enhanced_water (factor form), wow_effect (scene fog; the
rain streak fade uses fog_linear) and wdl (the hull's own 0..1 yd pair).
Pure functions, values passed as arguments, same expressions in the same
order, so the classic result is bit-identical. `fog_sample` branches on
MonkeyFrame.fog_model (fog3.x) as the FOG lane's extension point, currently
returning the classic result. wow_effect gains a world_pos varying for it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 01:33:52 +01:00
pkuzicandClaude Opus 5.5 f62a9eae5b MONKEY (p0): MonkeyFrame block appended to the shared light buffer
16 vec4 rows (256 B) after the point-light table, so no earlier offset moves
(per-frame blob 8528 -> 8784 B, size test updated). Rust side: the
`lighting::MonkeyFrame` resource any system may write, packed each frame by
`global_light::pack_monkey_frame` (which also fills time_of_day / night).
WGSL side: `benilla::monkey_frame::MonkeyFrame`, declared as `monkey` after
`points` in every WowLight mirror (terrain, wow_model, static_gx, liquid,
enhanced_water, wow_effect, wdl). All zero = no visual change. Layout in
LIGHTING.md "Invariants".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 01:21:19 +01:00
pkuzicandClaude Opus 5.5 da0f1a0d80 Merge upstream main (samwhosung/benilla fd386e75) into lighting
71 upstream commits: the repo-wide comment rewrite, the hover highlight as the
scene ambient, M2 Mod/Mod2x batches drawing the bare texel, test and contribution
changes. Conflicts were comment-vs-code in 36 files; where upstream changed only
comments our code was kept, and wow_model.wgsl carries both our lighting lanes
and upstream's new unlit/Mod/Mod2x paths.

Follow-ups folded in:
- our nine Advanced Graphics / water / fog options tests take upstream's
  wow_data_or_skip! guard
- PostUpdate ambiguity ceiling re-measured under upstream's new census: 466,
  with the per-family breakdown in the comment
- LIGHTING.md: new upstream base

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-25 00:18:30 +01:00
pkuzicandClaude Opus 5.5 a0fc143e87 MONKEY: water module split, depth look, High reflections, volumetric fog
Water (Enhanced/High; Classic stays byte-identical to upstream):
- the enhanced water now lives in its own WGSL library, benilla::enhanced_water
  (enhanced_water.wgsl), with its own bindings 103-106; upstream liquid.wgsl
  keeps three small hooks only
- depth look: per-channel extinction over the real path through the water,
  refraction of an opaque-colour copy bent by the waves (samples landing on
  anything in front of the water are refused via the scene depth), caustic
  web on sunlit shallow beds
- High: screen-space reflection of the scenery (bisected march against the
  scene depth)
- the module fogs its own surface terms only (the refracted/reflected scene is
  already fogged); depth+colour copies run both-or-neither
- credits: portions derived from WarcraftXL wxl-experimental-water by
  iThorgrim, used with permission (WATER.md)

Volumetric fog (Advanced Graphics -> Volumetric Fog: Off/Low/High, cvar
volumetricFog, env WOW_VOLFOG): own fullscreen pass after the main pass,
near-field haze converging on the zone fog colour, denser at dawn and in
weather, faint indoors, plus sun/moon light shafts from the shadow map.

Tests: addon-harness oracle fixtures no longer require unix symlinks.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-24 23:16:18 +01:00
pkuzicandClaude Fable 5.1 3562f4bd5f LIGHTING.md: round 6 lanes, Advanced Graphics page, current upstream base
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-18 14:36:14 +01:00
pkuzicandClaude Fable 5.1 3e2292a1b7 Lighting share: upstream benilla + the dynamic light and shadow system only
Drops the Everwood-specific fork bits (realmd split-build constant, fork catalogue, local
ignore rules) so this branch is upstream 66388278 plus lighting, and adds LIGHTING.md.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-17 17:08:49 +01:00