一文Shader变量使用避坑——uniform、varying变量多次if判断会严重降低帧率

本文详细记录了在使用OpenGL ES着色器时,发现uniform和varying变量的if判断会显著降低帧率,这一问题在多个GPU型号如Adreno 200、203、205上普遍存在,且不受Android ROM影响。通过减少这些变量的数量,避免条件判断,或转换为局部变量的方式可以优化性能。同时,文章提供了测试代码和GPU性能参数对比。
摘要由CSDN通过智能技术生成

2014年年中,在使用着色器进行图形渲染时,发现shader中uniform
、varying变量的if或for判断会严重影响帧率,而且这一现象与Android ROM平台没有关系。这里对该现象进行一个记录,并给出对应的解决方案。

  • 该文的测试平台:
    硬件设备(GPU)为高通Adreno 200、Adreno 203、Adreno 205。
  • 测试手机为:
    摩托罗拉(GPU为Adreno 200、android系统版本为2.2)
    联想S820e(GPU为Adreno 203、android系统版本为4.1)
    联想A600e(GPU为Adreno 203、android系统版本为4.0)
    华为U8800(GPU为Adreno 205、android系统版本为2.3)
  • 测试案例代码:
    http://download.csdn.net/detail/aiwusheng/8087083

一、结论:

验证结论:
多个uniform变量、varying变量的if判断、for循环判断,造成了Opengl ES帧率的成倍降低;若需要使用多个if判断、for循环判断,可更改为局部变量相关数据判断。
经测试以上列出的各厂商手机均存在这一问题,与android rom无关。

1.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

bjxiaxueliang

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

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

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

打赏作者

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

抵扣说明:

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

余额充值