feat: carve Jajce river into terrain
This commit is contained in:
@@ -0,0 +1,80 @@
|
||||
# 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
|
||||
|
||||
The next pass should author one bounded riverbank or forest-edge foliage mass,
|
||||
using decorative Terrain3D/intentional instances for visual density and only a
|
||||
small selected set of stable-ID `ResourceNode` anchors for finite harvestable
|
||||
resources. Bank stones, ferns, flowers, and tree masses can improve the channel
|
||||
edge during that proof. 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
|
||||
```
|
||||
Reference in New Issue
Block a user