首页 / Cesium / 使用示例
按需渲染省电
一片不动的楼群,开启按需渲染后,鼠标停下来画面就不再重绘, 面板上的帧数也随之停住。关闭后帧数持续上涨。
源码与运行效果
什么情况下会重绘
scene.requestRenderMode 打开后,Cesium 只在必要时渲染:
相机移动、窗口尺寸变化、图层加载完成,或者显式调用
scene.requestRender()。静止画面保持最后一帧即可。
maximumRenderTimeChange 决定时间推进多少才需要重绘。
示例设为无穷大,表示即使时钟在走也不主动重绘,
因此静态场景完全不产生新帧。
面板上的计数
postRender 每完成一帧加一,文字由定时器刷新,
定时器本身不会触发渲染。开关切换后对比计数增长速度,
效果最直观。
可调参数
| 位置 | 改什么 | 效果 |
|---|---|---|
| 开启 / 关闭按钮 | 切换 | 对比帧数增长 |
| 「手动重绘」按钮 | 点击 | 帧数只加一 |
maximumRenderTimeChange | 改成 0.5 | 有时钟变化时会重绘 |
| 楼群数量 | 减少到 4 栋 | 单帧开销变小 |
动态内容要自己叫醒画面。如果场景里有实体在动,按需渲染不会知道,
画面会停住。这类场景要么关闭按需渲染,要么把
maximumRenderTimeChange 设成小于动画步长,
并在需要时手动调用 requestRender。