u3d吧 关注:4,713贴子:7,947
  • 3回复贴,共1

【u3d】谈谈Shader优化

只看楼主收藏回复

Shader优化要点:
目的是什么


IP属地:上海1楼2023-10-18 09:20回复
    从shader上入手优化 就输了
    1.尝试减少渲染的物体,物体越多 开销越大
    2.这个必须渲染,再考虑shader优化
    3.能在顶点阶段做的图形处理不要放到ps阶段
    光照 在顶点阶段做 效率>像素阶段效率


    IP属地:上海2楼2023-10-18 09:23
    回复
      顶点运算比像素小的多
      不是都能用顶点运算
      比方说 凹凸不平的微表面 凹凸贴图 必须在像素阶段做
      对于一些离摄像机远的物体,可以将shader切换为PS=》VS渲染 =============ShaderLOD
      需要在Shaderlab文件里去指定,
      远处物体渲染开销小了,传输带宽小了
      带宽:数据的传递是需要时间的,有延迟
      帧缓存:用来存储一个一个像素点的==》微软 :像素缓冲 OpenGL:帧缓存
      显卡内部有总线 bus 会传数据,传数据有开销
      渲染的物体越复杂 传输带宽开销越大
      ----------------------------
      贴图 =》 Mipmap
      一直到2*2的多个版本
      节省渲染开销,显卡自动做的,设置好使用Mipmap
      -----------------------------
      影响带宽因素 : 贴图压缩格式
      android ETC2 ========》有损压缩,精度有损失 肉眼不可见,文件小了 一两个数量级
      显卡的存储开销和传输开销都有节省
      DDR 就是显存传输速度,越快延迟越低


      IP属地:上海3楼2023-10-18 09:42
      回复
        细节方面
        Shader脚本写法
        尽量减少分支和循环
        指令流
        if => 1/0 = step(exp)
        乘以 step返回的结果,把if消除掉
        物体的优化>顶点优化>像素阶段优化


        IP属地:上海4楼2023-10-18 09:50
        回复