当前位置:首页 » 《我的小黑屋》 » 正文

WebGL入门(017):WebGLQuery 简介、使用方法、示例代码

22 人参与  2024年09月18日 14:41  分类 : 《我的小黑屋》  评论

点击全文阅读


还是大剑师兰特:曾是美国某知名大学计算机专业研究生,现为航空航海领域高级前端工程师;CSDN知名博主,GIS领域优质创作者,深耕openlayers、leaflet、mapbox、cesium,canvas,webgl,echarts等技术开发,欢迎加底部微信(gis-dajianshi),一起交流。

No.内容链接
1Openlayers 【入门教程】 - 【源代码+示例300+】
2Leaflet 【入门教程】 - 【源代码+图文示例 150+】
3Cesium 【入门教程】 - 【源代码+图文示例200+】
4MapboxGL【入门教程】 - 【源代码+图文示例150+】
5前端就业宝典 【面试题+详细答案 1000+】

在这里插入图片描述

文章目录

创建 WebGLQuery开始查询结束查询获取查询结果查询目标示例总结


在 WebGL 中,WebGLQuery 是一个用于查询渲染状态的对象,主要用于性能监控和调试。通过使用 WebGLQuery,开发者可以查询诸如时间戳、栅格化顶点数量等信息,这对于分析性能瓶颈和调试渲染过程非常有帮助。

创建 WebGLQuery

要创建一个新的 WebGLQuery 对象,可以使用 WebGL 上下文的方法 createQuery

var query = gl.createQuery();

开始查询

在开始渲染之前,需要绑定查询对象并开始查询。通常使用 beginQuery 方法启动查询。

gl.beginQuery(gl.TIME_ELAPSED, query);

结束查询

在结束渲染之后,需要使用 endQuery 方法来结束查询。

gl.endQuery(gl.TIME_ELAPSED);

获取查询结果

查询结果需要在查询结束后一段时间才能获取,这是因为查询结果需要等待 GPU 完成渲染任务后才能确定。可以使用 getQuery 方法来获取查询结果。

var result = gl.getQuery(query, gl.QUERY_RESULT_AVAILABLE);if (result) {  var elapsedTime = gl.getQuery(query, gl.QUERY_RESULT);  console.log("Time elapsed: " + elapsedTime / 1000 + " milliseconds");}

查询目标

查询目标是指查询的具体内容,常见的查询目标包括:

TIME_ELAPSED - 查询从开始到结束所花费的时间,单位为纳秒。ANY_SAMPLES_PASSED - 查询是否有任何像素通过了深度和模板测试。ANY_SAMPLES_PASSED_CONSERVATIVE - 保守版本的 ANY_SAMPLES_PASSED,可能提供更准确的结果但性能开销更大。TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN - 查询有多少原始图形(顶点)被写入到变换反馈缓冲区。

示例

下面是一个完整的示例,展示了如何使用 WebGLQuery 来测量一段渲染操作所花费的时间:

// 创建查询对象var timeQuery = gl.createQuery();// 开始查询gl.beginQuery(gl.TIME_ELAPSED, timeQuery);// 进行渲染操作// ...// 结束查询gl.endQuery(gl.TIME_ELAPSED);// 获取查询结果gl.getQuery(timeQuery, gl.QUERY_RESULT_AVAILABLE, function(result) {  if (result) {    var elapsedTime = gl.getQuery(timeQuery, gl.QUERY_RESULT);    console.log("Time elapsed: " + elapsedTime / 1000 + " milliseconds");  }});// 清理查询对象gl.deleteQuery(timeQuery);

总结

WebGLQuery 是 WebGL 中用于查询渲染状态的对象,可以帮助开发者分析性能问题和调试渲染过程。通过正确地使用 WebGLQuery,可以更好地理解 WebGL 应用程序的性能特征,并据此进行优化。注意,查询结果可能需要一段时间才能准备好,因此在实际应用中需要注意查询结果的异步获取。


点击全文阅读


本文链接:http://m.zhangshiyu.com/post/161286.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

最新文章

  • 贵妃每天只想当咸鱼小说(萧兮兮洛清寒)(贵妃每天只想当咸鱼)整本+后续+结局在线阅读
  • 云纾君迟玉:+后续+番外半溪明月枕清风无删减小说在线无广告高口碑小说
  • 新章速递既负如来又负卿是什么小说(莫司淮唐乐薇)完本阅读无广告(莫司淮唐乐薇)
  • 林齐(林齐)火爆小说全集免费阅读_反转传奇林齐:结局+番外无弹窗最新章节笔趣阁(林齐)
  • 萧兮兮洛清寒小说(贵妃每天只想当咸鱼)起点章节+全篇阅读热门作品预订
  • 穿成塌房顶流,我靠爆料翻红(陈昭陈莹静)_穿成塌房顶流,我靠爆料翻红
  • (番外)+(全文)谢青霄林相宜(八零奉子成婚,死对头成了妻管严:全文+结局+番外)全文免费阅读无弹窗大结局_(谢青霄林相宜)最新章节列表_笔趣阁(八零奉子成婚,死对头成了妻管严:全文+结局+番外)
  • 傅修言沈知穗小说(沈知穗傅修言)小说***下载_章节前文+后续(傅修言沈知穗)
  • 陆译林初夏小说(替身攻略失败后摆烂了)全文免费阅读_(替身攻略失败后摆烂了)陆译林初夏小说最新章节列表
  • 全书浏览说好摸鱼打游戏,你爆杀华尔街?(王文斌方幻)_说好摸鱼打游戏,你爆杀华尔街?(王文斌方幻)全书结局
  • (重生后高傲妻子我不爱了)重生后高傲妻子我不爱了(梁言彻尹暖芸)无套路无弹窗全部章节列表
  • (番外)+(全文)傅修言沈知穗:番外+全文+后续(沈知穗傅修言)完整版小说阅读_傅修言沈知穗:番外+全文+后续免费阅读_笔趣阁(沈知穗傅修言)

    关于我们 | 我要投稿 | 免责申明

    Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1