Commit Graph
40 Commits
Author SHA1 Message Date
pkuzicandGPT-5.6 Sol (Codex) 132b1d07c4 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 f7715c80af 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 88e8096991 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 6bf7c409a2 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 5467066041 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 2f467713f5 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 c7f91ef62c 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 2f68d4c4e6 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 d554ffe939 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 c1e4569af3 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 361850a49d 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 f0526d610b 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) eef0083236 MONKEY (lampfog): add options and visual proofs
Co-Authored-By: GPT-5.6 Sol (Codex)
2026-09-25 16:01:28 +01:00
pkuzic db23b19a87 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 ff046d0a8a 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 816274419d 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 df2da452bc Merge gfx/daylight into integration
# Conflicts:
#	LIGHTING.md
#	crates/benilla-app/src/cvars.rs
2026-09-25 11:46:41 +01:00
pkuzic f2723a4553 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 1df700b17a 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 daf2a1aad6 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 8122881312 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 e2832c1c6f 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 42b4783660 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 f0b1de26ae 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 05d6b1adf3 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) 2d1e5bd483 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) 5ffdc828c8 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 46c5f72a9d 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 91ac4d1481 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 bd1c6de9f8 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 ca667d2b35 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) 36d03ee462 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 721a1f7d19 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 8c263244c9 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 fc99f2c858 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 3415538908 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 129ea35f5a 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 2e486e3612 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 4b30892119 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 5687e4a512 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