48 lines
2.0 KiB
Markdown
48 lines
2.0 KiB
Markdown
# 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.
|