1️⃣4️⃣three.js_Stats性能监视器

14、stats性能监视器

  • 3D虚拟工厂在线体验

  • 在 Three.js 中,渲染是通过循环调用 render() 函数实现的。每次调用 render() 都会在 Canvas 画布上渲染一帧画面,而持续调用该函数就能实现画面的动态更新。需要注意的是,render() 函数的计算复杂度越高,渲染性能通常就越低。

  • 我们可以通过统计每秒执行 render() 的次数来计算渲染帧率(FPS,Frames Per Second)。在流畅运行的情况下,FPS 通常为 60,这意味着每帧的渲染时间约为 16.7 毫秒(即 1/60 秒),这一时间也被称为 帧间隔时间(Frame Interval)。

  • 然而,如果在调试过程中没有性能监视器,当出现画面卡顿时,开发者将难以精准定位性能瓶颈,无法判断是渲染逻辑复杂、GPU 负载过高,还是其他因素导致的帧率下降。因此,合理使用性能分析工具对于优化 Three.js 应用的流畅度至关重要。

导入Stats库

//引入性能监视器stats
import Stats from 'three/addons/libs/stats.module.js';

Stats使用

const stats = new Stats();//创建stats对象 
stats.setMode(0);//0代表fps,1代表ms,2代表mb,默认为0

onMounted(() => { //页面初始化
(proxy.$refs.webg1 as HTMLElement).appendChild(stats.domElement);//绑定性能监视器到画布上
render();//开启渲染函数,
});

function render() {// 渲染函数
  stats.update();
  renderer.render(scene, camera); //执行渲染操作
  requestAnimationFrame(render); //请求再次执行渲染函数render,渲染下一帧
}
render();

✅执行结果:
请添加图片描述

  • 位于画面左上角的Stats性能监视器可实时查看渲染性能数据,左键点击切换显示模式:

    • stats.setMode(0):显示实时帧率(FPS)
    • stats.setMode(1):显示帧间隔时间(毫秒)
    • stats.setMode(2):显示内存占用(MB)仅支持Chrome/Edge浏览器
  • 监视器显示的最高帧率受限于电脑硬件性能,默认以60FPS为基准;实际帧率上限取决于显示器刷新率(可通过系统设置查看)。
    请添加图片描述

  • 如果项目出现卡顿问题,在排除硬件因素后,应重点检查 render() 函数的执行效率以及三维场景的复杂度。此时,可以使用 Stats 性能监视工具进行实时分析。

  • 点击【专栏目录】查看专栏其他内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

3D虚拟工厂

您的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值