Files
2026-07-17 13:57:57 +02:00

81 lines
3.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Jajce River 03
Captured: 2026-07-17
## Files
- [before overview](jajce_river_03_before.png)
- [after overview](jajce_river_03_after.png)
- `tools/capture_jajce_lookdev.gd`
- `tools/generate_jajce_terrain.gd`
- `tools/bake_jajce_navigation.gd`
The images use the same 1280×720 camera, fixed daylight value, warmup, and
Metal renderer. They are a matched checkpoint rather than two independently
composed beauty shots.
## What changed
The previous river was a turquoise presentation ribbon laid across a mostly
flat valley. Its waterfall was held by a large freestanding rock frame, so the
water feature read more like a prop than part of the landscape.
The deterministic Terrain3D source now creates:
- a raised shelf upstream of the falls;
- a shallow upper stream widening toward the lip;
- an approximately 12 m drop into a shaped plunge basin;
- a curved downstream channel with visible banks; and
- slope-driven rock texture around the drop and steeper channel edges.
The waterfall frame is smaller and nested into that landform. Its foam is more
restrained, and the mist uses a soft radial mask so individual particle quads
do not appear against the dark cliff. The result remains deliberately reduced:
citadel, roofs, shelf, falls, bridge, and river form one readable village-center
composition without attempting a literal reconstruction of Jajce.
## Deterministic authoring contract
`JajceWatercourse` owns the shared center lines, widths, bed heights, shelf
height, and water offset. `generate_jajce_terrain.gd` uses that profile to
produce the checked-in Terrain3D regions; `TerrainRiverRibbon.gd` uses the same
profile and samples the generated terrain for both water meshes. Changing the
watercourse therefore has one explicit regeneration and navigation-rebake
path instead of unrelated hand-tuned terrain and presentation coordinates.
This is presentation and interaction geometry only. No resource IDs,
simulation records, RNG streams, save data, or NPC decision rules changed.
## Validation
The focused watercourse scenario records an upper-stream height of 11.28 m, a
12.43 m shelf bank, and a -0.65 m plunge basin. It also checks multiple points
along the downstream bed and verifies both generated water ribbons remain
within 3 cm of the Terrain3D surface plus the shared water offset.
The navigation bake now contains 403 vertices and 620 polygons. The Jajce
scaffold verifies required paths reach their destinations and track the new
terrain heights, while the runtime integration scenario still completes real
player resource gathering with all 18 finite resource anchors loaded.
## Next visual/system proof
That proof is complete in
[Jajce Resource Grove 04](JAJCE_RESOURCE_GROVE_04.md): a bounded riverbank mass
keeps decorative density separate from two stable-ID finite anchors. The next
pass should make those berry/tree visuals reflect real depletion before adding
a second forest-edge cluster. Bridge, buildings, and fortress geometry remain
prototype blockouts and should be replaced gradually rather than through a
broad asset dump.
## Capture command
```bash
HOME="$PWD/logs/quality/godot_profile" \
APPDATA="$PWD/logs/quality/godot_profile" \
LOCALAPPDATA="$PWD/logs/quality/godot_profile" \
/Applications/Godot.app/Contents/MacOS/Godot \
--path "$PWD" --script res://tools/capture_jajce_lookdev.gd -- \
--output=res://docs/baselines/jajce_river_03_after.png
```