58 lines
2.0 KiB
Markdown
58 lines
2.0 KiB
Markdown
# Smooth Cesium preview vehicle cruise report
|
|
|
|
## Root Cause
|
|
|
|
The first preview-only optimization helped but did not address the main load.
|
|
User testing showed Follow still stuttered in scrub-heavy areas, while disabling
|
|
`Scene` improved smoothness substantially.
|
|
|
|
Current nantaizi GLB before the scrub-density change:
|
|
|
|
- GLB nodes: `1271`
|
|
- Scrub bush nodes: `707`
|
|
- Scrub polygons: `5`
|
|
|
|
The route data is small (`9` route segments, preview uses at most `5` vehicles),
|
|
so route interpolation is not the primary bottleneck.
|
|
|
|
## Changes
|
|
|
|
- `scripts/lib/cesium-preview.js`
|
|
- Route helper polyline is now opaque instead of alpha blended.
|
|
- Route helper polyline uses `arcType: Cesium.ArcType.NONE`.
|
|
- Vehicle orientation and chase-follow camera callbacks reuse scratch
|
|
`JulianDate`, `HeadingPitchRoll`, `Quaternion`, and `Matrix4` objects.
|
|
- Default Cesium resolution and antialiasing are preserved; no blurry
|
|
performance mode is enabled by default.
|
|
- `blender/generate_scene.py`
|
|
- `SCRUB_BUSH_SPACING`: `0.82 -> 1.8`
|
|
- `SCRUB_BUSH_LIMIT_PER_PATCH`: `180 -> 60`
|
|
- Scrub ground cover remains unchanged.
|
|
|
|
## Validation
|
|
|
|
Commands run:
|
|
|
|
```bash
|
|
node --check scripts/lib/cesium-preview.js
|
|
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-after-scrub-glb-digest.json
|
|
```
|
|
|
|
Results after rebuild:
|
|
|
|
- `SCENE_DONE` reports `scrub_bushes: 266`.
|
|
- GLB nodes: `830`
|
|
- Scrub bush nodes: `266`
|
|
- Scrub polygons in metadata: `5`
|
|
- Route segments in preview route JSON: `9`
|
|
- GLB size: about `31.96 MB`
|
|
|
|
## Deferred
|
|
|
|
If Follow still stutters after this density reduction, the next root-level work
|
|
should target the bush asset itself: lower-poly bush mesh, explicit LOD, or a
|
|
proper instancing path supported by Cesium/glTF.
|