WebGL绘制如何进行优化?

本文探讨了WebGL渲染性能优化的关键因素,包括CPU优化、GPU优化和带宽管理。CPU优化涉及减少draw call和复杂脚本。GPU优化主要包括顶点处理(如几何体简化、LOD技术和面剔除)和片元处理。带宽优化建议使用mipmaps和纹理压缩。文章还提到了WebGL的渲染分析工具和实用的优化技术,如批处理、实例绘制、LOD、面剔除、控制绘制顺序和减少逐片元计算。
摘要由CSDN通过智能技术生成

很久之前写的笔记才贴出来,在某次面试之后,面试官问: 100万个模型绘制 ,很卡,你会怎么优化?
我查询的大部分资料都是OpenGL的(太久了,没留下地址),所以我会根据自己的经验,说明下WebGL怎么做。

影响性能的因素

  1. CPU
  • 过多的draw call(就是调用了drawElements或者是drawArrays函数,GPU就会根据渲染状态(例如材质、纹理、着色器等)和所有输入的顶点数据来进行计算,最终输出到屏幕)
  • 复杂的脚本或是物理模拟
  1. GPU
  • 顶点处理
    • 过多的顶点
    • 过多的逐顶点计算
  • 片元处理
    • 过多的片元(可能是由于分辨率造成的,也可能是由于overdraw造成的,同一个像素绘制多遍)
    • 过多的逐片元计算
  1. 带宽
    GPU虽然拥有强大的并行能力可以极快数据处理,但GPU储存有限,数据需要从外部传人,可能导致传输数据的时间远大于GPU处理的时间,所以带宽的问题也要注意下。
  • 使用了尺寸很大且未压缩的纹理
  • 分辨率过高的帧缓存

WebGL的渲染分析工具

  1. JavaScript Profiler:可以显示JS函数的执行时间
  2. FPS:查看Frame rate,GPU内存占用情况
  3. Performance:统计某一时间段的操作情况,录制各种性能指标(FPS,CPU,NET,重排重绘等)。可以通过统计报表中的Call tree找到对于的文件链接,点进去排查代码。

优化技术

1. CPU优化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>