Cesium深入浅出之如何获取帧率

1 获取帧率的基本原理

1.1 了解requestAnimationFrame

requestAnimationFrame是专门为创建脚本式动画而设计的。 比起 setTimeout、setInterval的优势主要有两点:
1、requestAnimationFrame 会把每一帧中的所有DOM操作集中起来,在一次重绘或回流中就完成,并且重绘或回流的时间间隔紧紧跟随浏览器的刷新频率,一般来说,这个频率为每秒60帧。
2、在隐藏或不可见的元素中,requestAnimationFrame将不会进行重绘或回流,这当然就意味着更少的的cpu,gpu和内存使用量。

1.2 requestAnimationFrame 的使用方法

requestAnimationFrame()方法很容易使用。只需要把绘制回调函数作为它的第一个参数传入,就可以调用这个回调函数。假设回调函数是draw(),则它的调用方法如下:

requestAnimationFrame(draw) ;

当WebGL应用程序调用这个回调函数时,就把当前时间作为参数传给它。当前时间在动画循环中很有用,因为它常用来计算绘制上一帧绘制后已经过去了多少时间,然后补偿由于帧频的波动而受影响对象的运动。在本章后面我们还将

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要降低Cesium的帧,可以采取以下几种方法: 1. 调整渲染器的帧限制:可以使用`viewer.scene.requestRenderMode`方法来设置渲染器的帧限制。通过降低帧限制,可以减少Cesium的渲染次数,从而降低帧。 ```javascript // 将帧限制设置为30fps viewer.scene.requestRenderMode = true; viewer.scene.maximumRenderTimeChange = 1000 / 30; ``` 2. 减少场景中的要素数量:Cesium的性能与场景中的要素数量有关。如果场景中的要素过多,会导致渲染负载增加,从而降低帧。可以通过减少要素的数量来提高性能。例如,可以限制加载的模型数量、减少点云数据的密度等。 3. 使用LOD(级别细节)控制:Cesium提供了LOD功能,可以根据观察者距离调整要素的细节级别。通过调整LOD控制参数,可以降低场景中要素的细节程度,从而降低渲染负载和帧。 4. 禁用不需要的特效:Cesium提供了一些视觉特效,如雾化、阴影等。禁用不需要的特效可以降低渲染负载,提高性能和帧。 5. 在必要时进行延迟加载:如果场景中包含大量的要素或复杂的模型,可以考虑在必要时进行延迟加载。通过仅在需要时加载要素,可以减少初始加载的负载,提高性能。 这些方法可以帮助你降低Cesium的帧,提高性能和流畅度。根据你的具体场景和需求,你可以选择合适的方法来优化Cesium的性能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值