feat(art): add storybook meadow and woodland villagers
This commit is contained in:
@@ -51,6 +51,25 @@ selection never forces unsupported volumetric fog on.
|
||||
|
||||
## Runtime hot paths already bounded
|
||||
|
||||
The woodland storybook art pass adds portable Blender animal meshes and an
|
||||
opaque 35-triangle, seven-blade grass tuft. The existing camera-local grass
|
||||
field and quality controls own its instance budget; four loaded path strips
|
||||
provide disposable grass-clearance data after material isolation. Animal
|
||||
appearance is derived from stable NPC IDs, shares mesh resources, and retains
|
||||
profession tint, velocity-driven motion, inventory cues and death through the
|
||||
existing presentation controllers. No saved state or navigation changes.
|
||||
|
||||
Characters and buildings use soft cel bands; tree crowns retain the shared
|
||||
breeze with painted color patches. A static procedural cloud sky, cooler
|
||||
ambient fill and warm sunlight follow the simulation day/night clock. The
|
||||
cloud shader adds no volumetric pass, outline pass or screen-space postprocess.
|
||||
See [the asset contract and rebuild commands](../assets/storybook/README.md).
|
||||
|
||||
`docs/baselines/storybook_*.png` records the native Metal review. The accompanying
|
||||
`storybook_render_metrics.json` records a bounded local 1600×900 static-camera
|
||||
sample on Apple M1 Max with six NPCs and High/Balanced/Low settings. Wall-frame
|
||||
latency includes vsync and does not close the weak-PC evidence gap below.
|
||||
|
||||
- Player interaction and villager inspection probes are throttled/event-driven;
|
||||
they no longer rebuild all candidate data every rendered frame.
|
||||
- `LoadedResourceSpatialIndex` bounds finite-resource discovery.
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 809 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 798 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 135 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 86 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 937 KiB |
@@ -0,0 +1,34 @@
|
||||
{
|
||||
"renderer": "metal",
|
||||
"resolution": "1600x900",
|
||||
"samples": [
|
||||
{
|
||||
"active_npcs": 6,
|
||||
"draw_calls": 702.0,
|
||||
"frame_wall_p50_ms": 16.646,
|
||||
"frame_wall_p95_ms": 16.903,
|
||||
"objects": 1114.0,
|
||||
"primitives": 684656.0,
|
||||
"profile": "high"
|
||||
},
|
||||
{
|
||||
"active_npcs": 6,
|
||||
"draw_calls": 613.0,
|
||||
"frame_wall_p50_ms": 16.665,
|
||||
"frame_wall_p95_ms": 16.93,
|
||||
"objects": 1031.0,
|
||||
"primitives": 486192.0,
|
||||
"profile": "balanced"
|
||||
},
|
||||
{
|
||||
"active_npcs": 6,
|
||||
"draw_calls": 592.0,
|
||||
"frame_wall_p50_ms": 16.659,
|
||||
"frame_wall_p95_ms": 16.989,
|
||||
"objects": 999.0,
|
||||
"primitives": 377596.0,
|
||||
"profile": "low"
|
||||
}
|
||||
],
|
||||
"workload": "Paused static valley; wall-frame latency includes vsync, not isolated GPU time"
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 1.1 MiB |
Reference in New Issue
Block a user