48 lines
1.9 KiB
Markdown
48 lines
1.9 KiB
Markdown
# Test Shapespark tree variants
|
|
|
|
## Goal
|
|
|
|
Use the split Shapespark low-poly plant assets as tree, scrub bush, and lawn
|
|
tuft variants, then validate `nantaizi-lake-innovation-valley`.
|
|
|
|
The user liked the Shapespark `bush-03` scrub replacement and wants to evaluate
|
|
whether the same kit can replace the current tree asset. If multiple tree
|
|
variants are not too expensive, the scene should use varied trees while staying
|
|
deterministic for the same OSM input.
|
|
|
|
## Requirements
|
|
|
|
1. Prefer Shapespark tree assets from
|
|
`assets/models/custom/shapespark_plants/tree-*/model.gltf`.
|
|
2. Use deterministic variant selection based on stable tree instance ordering;
|
|
do not use unseeded random or time-dependent randomness.
|
|
3. Preserve existing tree placement count and route/road/building behavior.
|
|
4. Preserve the existing scrub bush `bush-03` experiment.
|
|
5. Replace the old Poly Haven `shrub_02` lawn tuft asset with suitable
|
|
Shapespark grass assets.
|
|
6. Evaluate the cost of loading multiple tree and lawn tuft variants:
|
|
- number of shared tree meshes introduced
|
|
- number of shared lawn tuft meshes introduced
|
|
- texture/image/material counts
|
|
- output GLB size
|
|
- total nodes
|
|
7. Rebuild only `nantaizi-lake-innovation-valley` stages
|
|
`blender,cesium,preview`.
|
|
|
|
## Acceptance Criteria
|
|
|
|
- [ ] Tree generation uses Shapespark tree variants deterministically.
|
|
- [ ] Lawn tufts use Shapespark `grass-*` variants instead of `shrub_02`.
|
|
- [ ] `python3 -m py_compile blender/generate_scene.py blender/osmassets/tree.py` passes.
|
|
- [ ] `python3 -m unittest blender/tests/test_pure.py` passes.
|
|
- [ ] nantaizi `blender,cesium,preview` rebuild passes.
|
|
- [ ] GLB digest reports tree mesh/material/image/node cost.
|
|
- [ ] User can open the local preview and compare visual result.
|
|
|
|
## Out Of Scope
|
|
|
|
- Runtime LOD.
|
|
- hanyang validation.
|
|
- Texture compression / KTX2.
|
|
- Committing the experiment before user approval.
|