美文网首页
shader通用优化建议

shader通用优化建议

作者: 塘朗山小钻风 | 来源:发表于2019-10-14 17:01 被阅读0次

1) use constant or dynamic uniforms.

使用constant或dynamic uniforms存储在不同帧间不变的值。每帧计算时的优先级也是:外部统一计算 > 顶点着色器 > 片元着色器

2) do multiply calculation, put single value before vector

把half/fixed这样的值和vector这样的值相乘时,要把它们放在前面。如果把它们放在后面就会自动转化成vector

3) avoid discard and alphatest. alway focus overdraw

在片元着色器中透明度测试并不是个好想法,因为这会和移动平台广泛使用的Early-Z冲突。Early-Z是指把深度测试提前到了片元着色器之前。不能透明度测试并丢弃片元后就要重点关注下overdraw

4) keep calculation on vertex shader

计算尽量在顶点着色器中完成。因为片元着色器中去做的话会相差好几个量级的。

5) specify a write mask for a vector

需要为多少分量赋值就只写对应分量,不用整个赋值。

6) avoid branching on no-uniform value because unpredictable

避免依赖实时计算值的分支语法。因为GPU无法通过预测优化。uniform和常量值应该表现稍好。

7) check function discard/floor impact on your render model

这些函数在不同的渲染平台上可能会有较大差别

8) minimize texture fetch

尽量少用纹理取色,也就是尽量让各个通道充分使用。

9) use build-in blend other than manually blend with alpha

用内置混合功能而不是自己去手写。

10) use MaterialPropertyBlock instead material SetFloat/SetColor, because it will copy the material

使用MaterialPropertyBlock。而不是修改材质的属性,因为修改会拷贝出新的复制。

11) avoid expensive math functions(pow exp log cos sin tan),conside use pre-calculate lookup texture

尽量不用这些耗费很高的函数。考虑把它们先计算好写入查询纹理中。使用时查询纹理。计算光衰减的就是这样计算的。

12) pick lowest possible number precision format

用尽量低的精度,由低到高是 fixed-half-float

13) multi-component calculation "pos.xy *= 2" don't calculate x y separately

多个分量的统一计算写在一起,而不是分多次写

相关文章

  • shader通用优化建议

    1) use constant or dynamic uniforms. 使用constant或dynamic u...

  • Shader相关优化

    Shader数量优化 通常一个Shader会编译出很多个变体,大大增加了Shader的数量。系统会自动帮我们剥离那...

  • 通用优化

    原文链接:hhttps://docs.unity3d.com/Manual/BestPracticeUnderst...

  • Unity Shader优化

    (1) 用step()代替if else等条件语句:(edge=step(edge,_Edge);表示if(edg...

  • 2019.12.28目标

    看完了代码重构看完了设计模式 整理完了资源系统整理完了优化 Shader看了一半 目标:今天开始看Shader看M...

  • Shader 加载相关优化

    mat 用keyworld shader 会打包降低 Shader的keyWord 数量,少用fallbacksh...

  • 使用MaterialPropertyBlock来替换Materi

    在unite2017国外技术专场中Arturo Núñez在他的shader性能与优化专题中提到了一个这样的优化建...

  • Compute Shader 功能测试

    Compute Shader 可以在通常的渲染管线之外运行,执行一些大量的通用计算(GPGPU algorithm...

  • Android优化

    压缩APK文件 优化UI 内存优化 优化代码查看代码逻辑,提取通用代码设计模式 压缩APK文件 Android s...

  • 第七章 网络优化与正则化(7.1,7.2)

    优化(经验风险最小)、正则化(降低模型复杂度) 7.1 网络优化 7.1.1 网络优化的难点 结构差异大 没有通用...

网友评论

      本文标题:shader通用优化建议

      本文链接:https://www.haomeiwen.com/subject/qvvlmctx.html