Lane E round 4 (E1): decimate 19 ped rigs 924k→46k tris (≤3k each) for gate 3
weld + meshopt simplify (--ratio 0.05 --error 0.12); skinning + skeleton preserved (65 joints intact), walk/idle clips untouched, silhouettes clean at street distance. Originals backed up to gitignored pipeline/.peds_orig/. Hands to Lane D (D2) for rig validation; Lane F re-measures gate 3 (~24-rig cap × ≤3k ≈ ≤67k fleet). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
5b8c806271
commit
518678d4e4
1
.gitignore
vendored
1
.gitignore
vendored
@ -9,3 +9,4 @@ node_modules/
|
|||||||
.env
|
.env
|
||||||
pipeline/.genprops/
|
pipeline/.genprops/
|
||||||
web/assets/models/
|
web/assets/models/
|
||||||
|
pipeline/.peds_orig/
|
||||||
|
|||||||
BIN
docs/shots/laneE/peds_decimated.png
Normal file
BIN
docs/shots/laneE/peds_decimated.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 145 KiB |
@ -158,3 +158,24 @@ Raw stats for every **parsable `.glb`** (59 of the ~69 library entries; the rest
|
|||||||
or subdir sources not counted): `pipeline/_audit_stats.json`. `glb_stat.py` reports **world-space**
|
or subdir sources not counted): `pipeline/_audit_stats.json`. `glb_stat.py` reports **world-space**
|
||||||
dims (node-transform-aware) and WebP/PNG/JPEG texture sizes. Normalizer output:
|
dims (node-transform-aware) and WebP/PNG/JPEG texture sizes. Normalizer output:
|
||||||
`pipeline/_normalize_results.json`.
|
`pipeline/_normalize_results.json`.
|
||||||
|
|
||||||
|
## Round 4 — ped-rig decimation (gate-3 blocker)
|
||||||
|
|
||||||
|
The 19 street ped rigs in `web/models/peds/` were **~31k–56k tris each (924k total)** — the cause of
|
||||||
|
gate 3 failing (~279k tris at the busiest intersection vs ≤200k). Decimated to **≤3k tris each**
|
||||||
|
(integrator decision #1) via `gltf-transform` `weld` → `simplify` (meshoptimizer):
|
||||||
|
|
||||||
|
```
|
||||||
|
gltf-transform weld in.glb _w.glb
|
||||||
|
gltf-transform simplify _w.glb out.glb --ratio 0.05 --error 0.12
|
||||||
|
```
|
||||||
|
|
||||||
|
meshoptimizer works cleanly here (proper manifold skinned character meshes, NOT the TRELLIS
|
||||||
|
shell-soup of the R3 hero props). Result: **924,153 → 46,551 tris** (48.6k → 2.45k avg; range
|
||||||
|
1564–2805, all ≤3k), **36M → 5M** on disk. **Skinning fully preserved** — `JOINTS_0`/`WEIGHTS_0`
|
||||||
|
intact, skeleton unchanged (nodes + 65 joints identical to source), so the shared `walk.glb`/
|
||||||
|
`idle.glb` clips retarget unchanged (both left untouched). Contact sheet:
|
||||||
|
`docs/shots/laneE/peds_decimated.png` — silhouettes/textures read clean, no melted faces/hands
|
||||||
|
(fine for street distance). Originals backed up (gitignored) at `pipeline/.peds_orig/`; per-ped
|
||||||
|
before/after in `pipeline/_peds_decim.json`. Lane D validates rig binding + anims (task D2); Lane F
|
||||||
|
re-measures gate 3 (~24-rig near cap × ≤3k ≈ ≤67k fleet contribution).
|
||||||
|
|||||||
97
pipeline/_peds_decim.json
Normal file
97
pipeline/_peds_decim.json
Normal file
@ -0,0 +1,97 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"file": "comical_boy_01.glb",
|
||||||
|
"before": 31292,
|
||||||
|
"after": 1564
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "comical_luchador_01.glb",
|
||||||
|
"before": 49576,
|
||||||
|
"after": 2478
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "man_athletic_01.glb",
|
||||||
|
"before": 56258,
|
||||||
|
"after": 2805
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "man_bouncer_01.glb",
|
||||||
|
"before": 41532,
|
||||||
|
"after": 2073
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "man_casual_01.glb",
|
||||||
|
"before": 42818,
|
||||||
|
"after": 2132
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "man_casual_02.glb",
|
||||||
|
"before": 49180,
|
||||||
|
"after": 2458
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "man_casual_03.glb",
|
||||||
|
"before": 47867,
|
||||||
|
"after": 2386
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "man_dj_streetwear_01.glb",
|
||||||
|
"before": 53876,
|
||||||
|
"after": 2692
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "man_elder_01.glb",
|
||||||
|
"before": 32098,
|
||||||
|
"after": 1603
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "man_grunge_01.glb",
|
||||||
|
"before": 50187,
|
||||||
|
"after": 2500
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "man_soldier_ww2_01.glb",
|
||||||
|
"before": 54668,
|
||||||
|
"after": 2729
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "man_suit_01.glb",
|
||||||
|
"before": 54938,
|
||||||
|
"after": 2741
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "man_worker_hivis_01.glb",
|
||||||
|
"before": 53738,
|
||||||
|
"after": 2680
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "woman_athleisure_01.glb",
|
||||||
|
"before": 52126,
|
||||||
|
"after": 2596
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "woman_business_01.glb",
|
||||||
|
"before": 52838,
|
||||||
|
"after": 2711
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "woman_casual_01.glb",
|
||||||
|
"before": 53460,
|
||||||
|
"after": 2670
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "woman_casual_02.glb",
|
||||||
|
"before": 48229,
|
||||||
|
"after": 2769
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "woman_chef_01.glb",
|
||||||
|
"before": 49794,
|
||||||
|
"after": 2485
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"file": "woman_smart_01.glb",
|
||||||
|
"before": 49678,
|
||||||
|
"after": 2479
|
||||||
|
}
|
||||||
|
]
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue
Block a user