Lane B round 22 (v4.0): #1a venue_night tri diagnosis — the driver is E's four furniture GLBs (91.5%)
BLOCKING-ITEM DIAGNOSIS, filed first so E/A/F aren't waiting. Method: katoomba venue_night, settled, then
hide-a-layer-and-re-measure (frustum-accurate: a layer's cost = the tris that vanish when hidden), then the
same drill inside furniture bucketed by geometry.
VERDICT: the four GLB street-furniture props are 149,161 of 163,015 tris = 91.5% of the stress view.
OWNER: LANE E (asset tris), per the ledger's own rule. Decimation clears the gate with ~120k to spare.
Layer breakdown (baseline 163,015 tris / 88 draws):
chunk-furniture 151,341 (92.8%) | ground 9,932 | venue-presentation 770 | lighting 624 |
chunk-buildings 348 (0.2%) | venue-posters 222 | citizens/weather/tram/venue-pools 0
Buildings are 348 tris (the R3 atlas/instancing holds). Posters are 222 -- A's cap already worked and was
never the lever. Pools cost 0.
Inside furniture -- the four GLBs are the whole bill:
bench 1,942 tris/inst x64 = 60,202 (37%) <- procity_street_bench_01
bus_shelter 7,998 x10 = 55,986 (34%) <- procity_street_bus_shelter_01
bin 3,000 x19 = 18,000 (11%) <- procity_street_bin_01
food_cart 4,991 x8 = 14,973 (9%) <- procity_street_food_cart_01
pole/lamp/trees/novelty (primitives) x303 = 2,180 (1.3%)
Identity confirmed by DCC-authored material names (wire_143225087 = a Sketchfab scan, baked_mat,
"2 wood frame ", Material_0) -- E's GLBs, not our procedural materials. Two use MeshPhysicalMaterial.
WHY NOW (and why it is NOT the density widening): shop count doesn't drive this -- ROAD density does. Real
towns put the bench/bin/shelter cadence on a 966-edge graph, so ~100 GLB props land in the streamed set
where synthetic had a handful. A 1.2m bench at 1,942 tris is ~5x the entire building stock in frame. This is
B's own R6 note coming due ("street_bin 3.0k tris... a decimate to ~500 would give back tri headroom if the
combined-lane budget tightens").
-> E, suggested targets: bench 1942->~250, bus_shelter 7998->~600, bin 3000->~200, food_cart 4991->~400.
149,161 -> ~29,000 (saves ~120k). Projected: my 163k -> ~43k; F's 221,935 -> ~102k. Both far under 200k.
Cheap extra: drop the two MeshPhysicalMaterials to MeshStandardMaterial.
-> Fable: a B-side fallback exists (furniture.js already has a primitive fallback for every GLB prop via the
R4 use-if-ready path), so a distance-gated LOD is a contained B change I can land fast. NOT doing it
unilaterally -- per the ledger this is E's, and source decimation helps every town/view, not just this one.
-> F: my baseline is 163,015 vs your 221,935 on the same view -- my automation's rAF is throttled so the live
gig crowd never spawns (citizens measured 0). Furniture is still ~68% of your number; decimation clears the
gate on either baseline. Re-measure against the live crowd, not my figure.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
4590197259
commit
0c4dad5acc
@ -1,5 +1,80 @@
|
|||||||
# LANE B — NOTES (measured)
|
# LANE B — NOTES (measured)
|
||||||
|
|
||||||
|
## Round 22 (Fable's ROUND22 → Lane B) — #1a the `venue_night` tri diagnosis → **OWNER: LANE E**
|
||||||
|
|
||||||
|
**Verdict: the driver is the four GLB street-furniture props. 149,161 of 163,015 tris = 91.5% of the
|
||||||
|
stress view. Not posters, not buildings, not pools, not the density widening per se. Owner = E (asset
|
||||||
|
tris) per the ledger's own rule. Decimation clears the gate with ~120k to spare.**
|
||||||
|
|
||||||
|
Method: katoomba `venue_night`, settled, then **hide-a-layer-and-re-measure** (frustum-accurate
|
||||||
|
attribution — a layer's cost is the tris that vanish when it's hidden), then the same drill *inside*
|
||||||
|
furniture, bucketed by geometry.
|
||||||
|
|
||||||
|
### Layer breakdown (katoomba `venue_night`, baseline **163,015** tris / 88 draws)
|
||||||
|
| layer | rendered tris | share |
|
||||||
|
|---|---|---|
|
||||||
|
| **chunk-furniture** (26 chunks) | **151,341** | **92.8%** |
|
||||||
|
| ground | 9,932 | 6.1% |
|
||||||
|
| venue-presentation (frontage+posters+pools) | 770 | 0.5% |
|
||||||
|
| lighting (sky dome) | 624 | 0.4% |
|
||||||
|
| **chunk-buildings** (26 chunks) | **348** | 0.2% |
|
||||||
|
| venue-posters | 222 | 0.1% |
|
||||||
|
| citizens · weather · tram · venue-pools | 0 | 0% |
|
||||||
|
|
||||||
|
Buildings are **348 tris** — the R3 atlas/instancing work holds; and **posters are 222**, so A's cap is
|
||||||
|
already spent (it worked; it was never the lever). Pools cost **0**.
|
||||||
|
|
||||||
|
### Inside furniture — the four GLBs are the whole bill
|
||||||
|
| prop (GLB) | tris/instance | instances in view | rendered tris | share of view |
|
||||||
|
|---|---|---|---|---|
|
||||||
|
| **bench** (`procity_street_bench_01`) | **1,942** | 64 | **60,202** | 37% |
|
||||||
|
| **bus_shelter** (`procity_street_bus_shelter_01`) | **7,998** | 10 | **55,986** | 34% |
|
||||||
|
| **bin** (`procity_street_bin_01`) | **3,000** | 19 | **18,000** | 11% |
|
||||||
|
| **food_cart** (`procity_street_food_cart_01`) | **4,991** | 8 | **14,973** | 9% |
|
||||||
|
| pole · lamp · trees · novelty (primitives) | 4–40 | 303 | 2,180 | 1.3% |
|
||||||
|
|
||||||
|
**GLB total 149,161 (91.5%). Primitives 2,180 (1.3%).** Identity confirmed by DCC-authored material names
|
||||||
|
(`wire_143225087` — a Sketchfab scan, `baked_mat`, `2 wood frame `, `Material_0`) — these are E's four
|
||||||
|
furniture GLBs, not our procedural materials. Two (bench, food_cart) are also `MeshPhysicalMaterial`, an
|
||||||
|
expensive shader for a 0.4 m street prop.
|
||||||
|
|
||||||
|
**Why now, and why it isn't the density widening:** shop count doesn't drive this — *road* density does.
|
||||||
|
Real towns put a bench/bin/shelter cadence on a 966-edge graph, so ~100 GLB props land in the streamed set
|
||||||
|
where synthetic had a handful. The props were always over-tessellated (a **1.2 m bench at 1,942 tris** is
|
||||||
|
~5× the entire building stock in frame); real roads just finally presented the bill. **This is my own R6
|
||||||
|
note coming due** — filed then: *"the street_bin GLB is 3.0k tris — heavy for a prop placed ~15×; a decimate
|
||||||
|
to ~500 tris would give back tri headroom if the combined-lane budget tightens."* It tightened.
|
||||||
|
|
||||||
|
### → Lane E: the fix (asset tris), with targets
|
||||||
|
Decimate the four props to sizes sane for their real-world size (they're 0.4–2.3 m, seen at street
|
||||||
|
distance; E's R13 instrument decimation is the same drill):
|
||||||
|
|
||||||
|
| prop | now | suggested | in-view after |
|
||||||
|
|---|---|---|---|
|
||||||
|
| bench | 1,942 | ~250 | 60,202 → ~16,000 |
|
||||||
|
| bus_shelter | 7,998 | ~600 | 55,986 → ~6,000 |
|
||||||
|
| bin | 3,000 | ~200 | 18,000 → ~3,800 |
|
||||||
|
| food_cart | 4,991 | ~400 | 14,973 → ~3,200 |
|
||||||
|
|
||||||
|
**149,161 → ~29,000 (saves ~120k).** Projected: my baseline **163k → ~43k**; **F's 221,935 → ~102k** —
|
||||||
|
both far under the 200k gate, with headroom for the pack's denser towns. (Cheap extra: drop the two
|
||||||
|
`MeshPhysicalMaterial`s to `MeshStandardMaterial`.)
|
||||||
|
|
||||||
|
### → Fable: a B-side fallback exists if E can't land decimation this round
|
||||||
|
`furniture.js` already ships a **primitive fallback for every GLB prop** (the R4 "use-if-ready" path, the
|
||||||
|
`?noassets` route). So a distance/density-gated LOD — keep GLBs near the camera, primitives beyond — is a
|
||||||
|
contained Lane B change I can land quickly. I'm **not** doing it unilaterally: per the ledger this is E's
|
||||||
|
(asset tris), and source decimation is the right fix (it helps every town and every view, not just this
|
||||||
|
one). Say the word if you want the B-side gate as belt-and-braces.
|
||||||
|
|
||||||
|
### Honest note on the baseline (mine 163,015 vs F's 221,935)
|
||||||
|
Same view, different number: my automation's rAF is throttled, so the **live gig crowd never spawns**
|
||||||
|
(citizens measured **0** tris here) — F's number includes it (~59k of peds). This doesn't move the verdict:
|
||||||
|
furniture is 92.8% of what I measured and still ~68% of F's 221,935, and the decimation above clears the
|
||||||
|
gate on either baseline. Flagging it so F re-measures against the live crowd, not my throttled figure.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## Round 21 (Fable's ROUND21 → Lane B) — selector from E's towns index (ledger #2, the missed R20 #5)
|
## Round 21 (Fable's ROUND21 → Lane B) — selector from E's towns index (ledger #2, the missed R20 #5)
|
||||||
|
|
||||||
Closed the R20 gap Fable caught (`hud.js:11` still hardcoded `REAL_TOWNS`). The real-town list now comes
|
Closed the R20 gap Fable caught (`hud.js:11` still hardcoded `REAL_TOWNS`). The real-town list now comes
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user