经纬志
首页 / Cesium / 使用示例

按需渲染省电

一片不动的楼群,开启按需渲染后,鼠标停下来画面就不再重绘, 面板上的帧数也随之停住。关闭后帧数持续上涨。

CesiumJS 1.121 · 更新 2026-10-28
源码与运行效果
运行效果

什么情况下会重绘

scene.requestRenderMode 打开后,Cesium 只在必要时渲染: 相机移动、窗口尺寸变化、图层加载完成,或者显式调用 scene.requestRender()。静止画面保持最后一帧即可。

maximumRenderTimeChange 决定时间推进多少才需要重绘。 示例设为无穷大,表示即使时钟在走也不主动重绘, 因此静态场景完全不产生新帧。

面板上的计数

postRender 每完成一帧加一,文字由定时器刷新, 定时器本身不会触发渲染。开关切换后对比计数增长速度, 效果最直观。

可调参数

位置改什么效果
开启 / 关闭按钮切换对比帧数增长
「手动重绘」按钮点击帧数只加一
maximumRenderTimeChange改成 0.5有时钟变化时会重绘
楼群数量减少到 4 栋单帧开销变小

动态内容要自己叫醒画面。如果场景里有实体在动,按需渲染不会知道, 画面会停住。这类场景要么关闭按需渲染,要么把 maximumRenderTimeChange 设成小于动画步长, 并在需要时手动调用 requestRender。