feat: scale village queries and enrich Jajce center
This commit is contained in:
@@ -0,0 +1,95 @@
|
||||
# Jajce Center 02
|
||||
|
||||
Captured: 2026-07-16
|
||||
|
||||
## Files
|
||||
|
||||
- [before overview](jajce_center_02_before.png)
|
||||
- [after overview](jajce_center_02_after.png)
|
||||
- [close gameplay grass check](jajce_grass_gameplay_02.png)
|
||||
- `tools/capture_jajce_lookdev.gd`
|
||||
|
||||
The two overview images use the same 1280×720 camera, fixed daylight value,
|
||||
warmup, and Metal renderer. The gameplay image is a separate readability check,
|
||||
not part of the matched comparison.
|
||||
|
||||
## Reference reading
|
||||
|
||||
The reduction uses Jajce's hierarchy rather than attempting a literal city
|
||||
reconstruction:
|
||||
|
||||
- the [UNESCO tentative-list description](https://whc.unesco.org/en/tentativelists/2098/)
|
||||
describes the citadel at the summit of a rocky pyramid, ramparts descending
|
||||
its slopes, and residential roofs forming an amphitheater beneath it;
|
||||
- the [official Jajce fortress overview](https://www.agencija-jajce.ba/en/the-fortress/)
|
||||
supports treating the fortress as the primary long-distance landmark;
|
||||
- official Studio Ghibli still collections for
|
||||
[My Neighbor Totoro](https://www.ghibli.jp/works/totoro/) and
|
||||
[Princess Mononoke](https://www.ghibli.jp/works/mononoke/) were used only as
|
||||
broad references for layered green masses, clear silhouettes, restrained
|
||||
natural motion, and small warm human details inside large landscapes;
|
||||
- [Tiny Glade](https://store.steampowered.com/app/2198150/Tiny_Glade/) supports
|
||||
the low-detail diorama reading of whimsical castles, cottages, ruins, and
|
||||
incidental life;
|
||||
- the [Terrain3D instancer guidance](https://terrain3d.readthedocs.io/en/latest/docs/instancer.html)
|
||||
informed the split between camera-local particle grass and intentional tree
|
||||
placement.
|
||||
|
||||
No building, frame, or asset is copied from those references. The project keeps
|
||||
its own compact low-poly language and real simulation constraints.
|
||||
|
||||
## Implemented reduction
|
||||
|
||||
- The ridge block becomes a larger warm-stone citadel with a rocky plinth,
|
||||
ramparts, descending walls, towers, gate, crenellations, banner, and narrow
|
||||
window slits.
|
||||
- Eight timber-accented plaster houses now cascade below the citadel instead of
|
||||
leaving three isolated boxes in an empty field.
|
||||
- The waterfall is wider, softly animated, misted, and framed by irregular
|
||||
mossy rock columns. Its plunge pool feeds a turquoise ribbon that samples the
|
||||
live Terrain3D height field instead of disappearing beneath it.
|
||||
- The bridge gains a full river span, stone abutments, center pier, rails, and
|
||||
posts. House windows and chimney smoke add small warm points.
|
||||
- Existing rounded deciduous trees are richer and wind-reactive; authored
|
||||
conifer clusters strengthen the citadel, falls, and valley edges.
|
||||
- Three intentionally oversized butterflies add quiet ambient life.
|
||||
- A bounded camera-local Terrain3D grass field uses roughly 10,400 particles.
|
||||
Its project-owned process material keeps blades short and patchy, while a
|
||||
shader receives at most eight real player/NPC transforms and bends grass
|
||||
away from their feet.
|
||||
- Haze and saturation are reduced so green terrain, warm roofs, stone, and
|
||||
turquoise water separate more clearly.
|
||||
|
||||
## Authority boundary
|
||||
|
||||
Grass, butterflies, smoke, water motion, and foliage sway are transient
|
||||
presentation. They do not enter saves or checksums. Player and `NpcVisual`
|
||||
nodes merely expose real transforms to the grass shader.
|
||||
|
||||
Finite food and wood still come only from stable-ID `ResourceNode` anchors
|
||||
bound to simulation-owned records. The conifers and grass are decorative; the
|
||||
next resource-discovery phase can pair selected Terrain3D-authored visuals with
|
||||
intentional resource anchors without turning every blade or background tree
|
||||
into authoritative state. Livestock is deliberately deferred until one animal
|
||||
has a real identity/state/interaction contract; ambient butterflies do not
|
||||
pretend to be simulated food or work.
|
||||
|
||||
## Remaining visual work
|
||||
|
||||
This is a stronger prototype composition, not final environment art. The next
|
||||
art pass should sculpt a true river channel and waterfall shelf into Terrain3D,
|
||||
replace procedural fortress/house geometry gradually, add bank stones and
|
||||
flower/fern clusters through bounded instancing, and validate a representative
|
||||
frame-time budget. The matched comparison should remain the checkpoint before
|
||||
those asset-heavy changes.
|
||||
|
||||
## 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_center_02_after.png
|
||||
```
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 729 KiB |
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dcg13u5wqr23m"
|
||||
path="res://.godot/imported/jajce_center_02_after.png-be0a331c22c145d626fa09f682c7e379.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://docs/baselines/jajce_center_02_after.png"
|
||||
dest_files=["res://.godot/imported/jajce_center_02_after.png-be0a331c22c145d626fa09f682c7e379.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: 704 KiB |
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://dipu1epmps356"
|
||||
path="res://.godot/imported/jajce_center_02_before.png-a6dad6237a960278853b124b5c1180c2.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://docs/baselines/jajce_center_02_before.png"
|
||||
dest_files=["res://.godot/imported/jajce_center_02_before.png-a6dad6237a960278853b124b5c1180c2.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: 553 KiB |
@@ -0,0 +1,40 @@
|
||||
[remap]
|
||||
|
||||
importer="texture"
|
||||
type="CompressedTexture2D"
|
||||
uid="uid://du1awnpktb7q0"
|
||||
path="res://.godot/imported/jajce_grass_gameplay_02.png-4b072b6e4f1c146d62492370903db793.ctex"
|
||||
metadata={
|
||||
"vram_texture": false
|
||||
}
|
||||
|
||||
[deps]
|
||||
|
||||
source_file="res://docs/baselines/jajce_grass_gameplay_02.png"
|
||||
dest_files=["res://.godot/imported/jajce_grass_gameplay_02.png-4b072b6e4f1c146d62492370903db793.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