81 lines
3.3 KiB
Markdown
81 lines
3.3 KiB
Markdown
# 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
|
||
```
|