Improve Cesium cruise smoothness
This commit is contained in:
@@ -162,6 +162,21 @@ let baseStatus = "";
|
||||
相机相关的读数必须跟着渲染循环刷新并**做节流**。用 `setInterval` 会在相机快速移动时
|
||||
读到过期值,不节流会拖慢帧率。
|
||||
|
||||
### 车辆巡航热路径要少分配
|
||||
|
||||
车辆巡航是预览层里唯一持续动画的功能。`scripts/lib/cesium-preview.js` 的
|
||||
`routeOrientation()` 和 `createChaseFollow()` 每帧都会运行,里面的 `JulianDate`、
|
||||
`HeadingPitchRoll`、`Quaternion`、`Matrix4` 等临时对象必须在闭包外复用,不要在
|
||||
`CallbackProperty` 或 `viewer.clock.onTick` 回调里 `new`。
|
||||
|
||||
预览页面加载的是 30MB+ GLB,动画时 GPU 已经很忙;巡航辅助线也要避免额外透明合成。
|
||||
路线 polyline 使用不透明 `Color` 和 `arcType: Cesium.ArcType.NONE`,不要为了视觉效果
|
||||
随手改回半透明 geodesic 线。
|
||||
|
||||
不要默认降低 `viewer.resolutionScale` 或关闭 antialias/MSAA 来换取巡航流畅度。
|
||||
这会让用户误判材质和模型质量。若确实需要性能模式,应做成显式开关,而不是默认牺牲
|
||||
预览清晰度。
|
||||
|
||||
### 单资产 vs 多资产的开关
|
||||
|
||||
```js
|
||||
@@ -207,6 +222,9 @@ python3 -m http.server 8765
|
||||
| 用定时器代替 `waitForStableFrames` | 遮罩在材质编译完成前就收起,画面是花的 |
|
||||
| 相机读数用 `setInterval` | 快速移动时读到过期值 |
|
||||
| 诊断刷新不节流 | 拖慢帧率 |
|
||||
| 在车辆每帧回调里创建 `JulianDate` / HPR / 矩阵对象 | 巡航时触发 GC 抖动 |
|
||||
| 默认打开半透明路线辅助线 | 增加透明合成成本,主场景可见时车辆更不顺 |
|
||||
| 默认降低 `resolutionScale` 或关抗锯齿 | 预览变糊,无法判断材质/模型质量 |
|
||||
| 再开一个全局变量 | 已有 `window.osmPreview` |
|
||||
| 用 `file://` 打开 | fetch 被拦,卡在加载中 |
|
||||
|
||||
|
||||
Reference in New Issue
Block a user