feat: author resource-aware riverbank grove
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
# Jajce Resource Grove 04
|
||||
|
||||
Captured: 2026-07-17
|
||||
|
||||
## Files
|
||||
|
||||
- [before overview](jajce_resource_grove_04_before.png)
|
||||
- [after overview](jajce_resource_grove_04_after.png)
|
||||
- `world/jajce/RiverbankResourceCluster.tscn`
|
||||
- `tests/jajce_resource_cluster_test.gd`
|
||||
|
||||
The images use the same 1280×720 camera, fixed daylight value, warmup, and
|
||||
Metal renderer. The new cluster is on the right bank beside and beyond the
|
||||
bridge; the comparison intentionally keeps the broader citadel/waterfall
|
||||
composition unchanged.
|
||||
|
||||
## Visual reduction
|
||||
|
||||
The former river edge had one isolated deciduous tree and conifer, while two
|
||||
generic-box resource anchors sat separately from the foliage language. The
|
||||
after frame gathers that silhouette into one restrained bank mass:
|
||||
|
||||
- 12 low-poly fern clumps;
|
||||
- 9 oversized warm flower heads;
|
||||
- 7 flattened bank stones;
|
||||
- 2 decorative silhouette trees; and
|
||||
- 2 finite anchors with distinct berry-patch and harvestable-tree visuals.
|
||||
|
||||
The 28 understory details use three `MultiMeshInstance3D` batches. The berry
|
||||
visual adds five wind-reactive leaf clumps and eight deliberately readable
|
||||
berries. This is a bounded authored accent, not a world-wide scatter pass.
|
||||
|
||||
## Authority and authoring contract
|
||||
|
||||
`DecorativeInstances` contains no `ResourceNode` descendants. Its trees,
|
||||
ferns, flowers, and stones are transient presentation and never enter saves,
|
||||
checksums, reservations, or resource conservation.
|
||||
|
||||
`ResourceAnchors` contains only `berry_bush_river_02` and
|
||||
`tree_river_resource_01`. These are the same existing IDs and definitions, now
|
||||
nested inside the authored cluster. `ResourceNode` registration and
|
||||
`ActiveWorldAdapter` discovery do not depend on a parent path, so simulation
|
||||
authority still binds exactly 18 resources.
|
||||
|
||||
The visible plants sit on the raised Terrain3D bank. Each anchor has a separate
|
||||
approach marker snapped to the lower bank surface, keeping the visual context
|
||||
honest without asking NPCs to climb an unreachable slope. All required
|
||||
navigation routes reach those markers and remain close to Terrain3D height.
|
||||
|
||||
## Far-discovery proof
|
||||
|
||||
The berry interaction point is approximately 30.5 m from the village origin,
|
||||
beyond the adapter's initial 24 m query radius. The focused scenario first
|
||||
confirms ordinary nearby food remains available, then disables every other food
|
||||
source in authoritative state. `ActionTargetResolver` expands through more than
|
||||
one range pass and selects `berry_bush_river_02` by stable ID. The test also
|
||||
checks that direct and nested anchors produce the same 18-entry index.
|
||||
|
||||
## Remaining work
|
||||
|
||||
The resource-specific visuals currently identify finite sources but do not yet
|
||||
thin or change shape as their authoritative amount falls. The next vertical
|
||||
slice should show low/depleted berries and a stump or equivalent tree state
|
||||
after real NPC/player extraction, then verify save/load reconstructs the same
|
||||
visual from `ResourceStateRecord` without serializing presentation fields.
|
||||
|
||||
## 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_resource_grove_04_after.png
|
||||
```
|
||||
@@ -60,11 +60,11 @@ 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
|
||||
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.
|
||||
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 745 KiB |
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://drip3uanxmac0"
|
||||
path="res://.godot/imported/jajce_resource_grove_04_after.png-400fd71bda2bd7202805c1ba66aa8c28.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://docs/baselines/jajce_resource_grove_04_after.png"
|
||||
dest_files=["res://.godot/imported/jajce_resource_grove_04_after.png-400fd71bda2bd7202805c1ba66aa8c28.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 743 KiB |
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://ch6nx7rj4elit"
|
||||
path="res://.godot/imported/jajce_resource_grove_04_before.png-153834f7053f143a34b090dc21ac0d16.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://docs/baselines/jajce_resource_grove_04_before.png"
|
||||
dest_files=["res://.godot/imported/jajce_resource_grove_04_before.png-153834f7053f143a34b090dc21ac0d16.ctex"]
|
||||
|
||||
[params]
|
||||
|
||||
compress/mode=0
|
||||
compress/high_quality=false
|
||||
compress/lossy_quality=0.7
|
||||
compress/uastc_level=0
|
||||
compress/rdo_quality_loss=0.0
|
||||
compress/hdr_compression=1
|
||||
compress/normal_map=0
|
||||
compress/channel_pack=0
|
||||
mipmaps/generate=false
|
||||
mipmaps/limit=-1
|
||||
roughness/mode=0
|
||||
roughness/src_normal=""
|
||||
process/channel_remap/red=0
|
||||
process/channel_remap/green=1
|
||||
process/channel_remap/blue=2
|
||||
process/channel_remap/alpha=3
|
||||
process/fix_alpha_border=true
|
||||
process/premult_alpha=false
|
||||
process/normal_map_invert_y=false
|
||||
process/hdr_as_srgb=false
|
||||
process/hdr_clamp_exposure=false
|
||||
process/size_limit=0
|
||||
detect_3d/compress_to=1
|
||||
Reference in New Issue
Block a user