chore(task): archive 08-03-use-low-poly-scrub-bush
This commit is contained in:
@@ -0,0 +1 @@
|
|||||||
|
{"_example": "Fill with {\"file\": \"<path>\", \"reason\": \"<why>\"}. Put spec/research files only — no code paths. Run `python3 .trellis/scripts/get_context.py --mode packages` to list available specs. Delete this line once real entries are added."}
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
{"_example": "Fill with {\"file\": \"<path>\", \"reason\": \"<why>\"}. Put spec/research files only — no code paths. Run `python3 .trellis/scripts/get_context.py --mode packages` to list available specs. Delete this line once real entries are added."}
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
# Use low-poly scrub bush asset
|
||||||
|
|
||||||
|
## Goal
|
||||||
|
|
||||||
|
Prefer the new custom low-poly scrub bush asset for scrub edge instances and
|
||||||
|
validate `nantaizi-lake-innovation-valley` Blender/Cesium/preview output.
|
||||||
|
|
||||||
|
The user supplied `assets/models/custom/bush_low/bush_low.glb`. The goal is to
|
||||||
|
test whether using it reduces scrub bush mesh cost and improves Follow
|
||||||
|
smoothness without losing scrub ground cover or breaking material tinting.
|
||||||
|
|
||||||
|
## Requirements
|
||||||
|
|
||||||
|
1. Update `blender/generate_scene.py` to prefer
|
||||||
|
`assets/models/custom/bush_low/bush_low.glb` for scrub edge bushes.
|
||||||
|
2. Keep `assets/models/custom/bush/bush.glb` as a fallback if the low asset is
|
||||||
|
missing or fails to import.
|
||||||
|
3. Preserve deterministic scrub edge sampling and current scrub density budget:
|
||||||
|
`SCRUB_BUSH_SPACING = 1.8`, `SCRUB_BUSH_LIMIT_PER_PATCH = 60`.
|
||||||
|
4. Preserve existing material tint behavior based on material names containing
|
||||||
|
`leaf`, `trunk`, or `twig`.
|
||||||
|
5. Rebuild `nantaizi-lake-innovation-valley` stages `blender,cesium,preview`.
|
||||||
|
6. Measure and report:
|
||||||
|
- `SCENE_DONE.scrub_bushes`
|
||||||
|
- GLB total nodes
|
||||||
|
- scrub bush node count
|
||||||
|
- scrub bush mesh vertex/index bytes or primitive counts from GLB digest
|
||||||
|
- output GLB size
|
||||||
|
7. Do not change road/building/tree/vehicle route behavior.
|
||||||
|
|
||||||
|
## Acceptance Criteria
|
||||||
|
|
||||||
|
- [ ] `generate_scene.py` prefers `bush_low.glb` and falls back to `bush.glb`.
|
||||||
|
- [ ] `python3 -m py_compile blender/generate_scene.py` passes.
|
||||||
|
- [ ] `python3 -m unittest blender/tests/test_pure.py` passes.
|
||||||
|
- [ ] `npm run build:area -- --config config/areas/nantaizi-lake-innovation-valley.json --stages blender,cesium,preview` passes.
|
||||||
|
- [ ] GLB digest confirms scrub bush nodes remain about `266` and scrub ground
|
||||||
|
metadata remains present.
|
||||||
|
- [ ] Task report/changelog records whether `bush_low` meaningfully reduced
|
||||||
|
mesh cost and whether it is worth keeping.
|
||||||
|
|
||||||
|
## Out Of Scope
|
||||||
|
|
||||||
|
- Compressing textures or changing baked material export.
|
||||||
|
- Replacing the preview car asset.
|
||||||
|
- Runtime LOD implementation.
|
||||||
|
- Further changing scrub density unless low asset validation shows it is needed.
|
||||||
@@ -0,0 +1,47 @@
|
|||||||
|
# Low-poly scrub bush experiment report
|
||||||
|
|
||||||
|
## Outcome
|
||||||
|
|
||||||
|
Do not adopt `assets/models/custom/bush_low/bush_low.glb` as the default scrub
|
||||||
|
edge bush.
|
||||||
|
|
||||||
|
The asset successfully reduced geometry cost, but user validation found the
|
||||||
|
visual result unsatisfactory. The default generator was restored to
|
||||||
|
`assets/models/custom/bush/bush.glb`.
|
||||||
|
|
||||||
|
## Measurements
|
||||||
|
|
||||||
|
Commands used during the experiment:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python3 -m py_compile blender/generate_scene.py
|
||||||
|
python3 -m unittest blender/tests/test_pure.py
|
||||||
|
npm run build:area -- --config config/areas/nantaizi-lake-innovation-valley.json --stages blender,cesium,preview
|
||||||
|
node scripts/glb-digest.js outputs/nantaizi-lake-innovation-valley/nantaizi-lake-innovation-valley.glb --out /tmp/nantaizi-bush-low-glb-digest.json
|
||||||
|
node scripts/glb-digest.js assets/models/custom/bush/bush.glb --out /tmp/bush-original-digest.json
|
||||||
|
node scripts/glb-digest.js assets/models/custom/bush_low/bush_low.glb --out /tmp/bush-low-asset-digest.json
|
||||||
|
```
|
||||||
|
|
||||||
|
Low-poly asset geometry:
|
||||||
|
|
||||||
|
- Original `bush.glb`: `9.10 MB`, `63,762` vertices, `67,536` indices.
|
||||||
|
- Experimental `bush_low.glb`: `5.79 MB`, `4,044` vertices, `4,050` indices.
|
||||||
|
- Texture count stayed at `6`, so file size did not fall proportionally with
|
||||||
|
geometry.
|
||||||
|
|
||||||
|
Nantaizi rebuild while using `bush_low.glb`:
|
||||||
|
|
||||||
|
- `SCENE_DONE.scrub_bushes`: `266`
|
||||||
|
- GLB nodes: `830`
|
||||||
|
- Scrub bush nodes: `266`
|
||||||
|
- Scrub bush shared mesh: `4,044` vertices, `4,050` indices
|
||||||
|
- GLB size: `27.51 MB`
|
||||||
|
- Metadata scrub polygons: `5`
|
||||||
|
|
||||||
|
## Decision
|
||||||
|
|
||||||
|
This proved geometry reduction works, but this particular low-poly model is not
|
||||||
|
good enough visually. Keep the current density budget and original default bush
|
||||||
|
asset for now. The next useful direction is a better-authored low-poly bush:
|
||||||
|
same approximate silhouette/volume as the original, lower geometry, and reduced
|
||||||
|
or compressed texture payload.
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
"id": "use-low-poly-scrub-bush",
|
||||||
|
"name": "use-low-poly-scrub-bush",
|
||||||
|
"title": "Use low-poly scrub bush asset",
|
||||||
|
"description": "Prefer the new custom low-poly scrub bush asset and validate nantaizi output.",
|
||||||
|
"status": "completed",
|
||||||
|
"dev_type": null,
|
||||||
|
"scope": null,
|
||||||
|
"package": null,
|
||||||
|
"priority": "P2",
|
||||||
|
"creator": "dingkang",
|
||||||
|
"assignee": "dingkang",
|
||||||
|
"createdAt": "2026-08-03",
|
||||||
|
"completedAt": "2026-08-03",
|
||||||
|
"branch": null,
|
||||||
|
"base_branch": "main",
|
||||||
|
"worktree_path": null,
|
||||||
|
"commit": null,
|
||||||
|
"pr_url": null,
|
||||||
|
"subtasks": [],
|
||||||
|
"children": [],
|
||||||
|
"parent": null,
|
||||||
|
"relatedFiles": [],
|
||||||
|
"notes": "",
|
||||||
|
"meta": {}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user