技术美术TA之Shader优化

本文是视频课程《Unity技术美术TA:Shader篇》,算是对自己学习的总结,也希望分享下所学知识~~

Shader实现效果并不一定可以用到项目里
需要进行一定的优化

常用优化如下:
1.精度优化(fixed/half/float)
float:坐标位置,纹理坐标
half:HDR颜色、方向向量
fixed:普通文理,颜色尽量用fixed

注意:实际的精度取决于目标平台和GPU
在PC,都是float。在移动端大部分都支持 half 和 float,很老的手机用fixed

2.能放顶点就不要放在片断着色器中
三角形,三个顶点,可能有几十个像素(计算量级不是一个级别)
坏处可能是效果不好

3.多Pass少用
多个Pass,会渲染多次,也不能进行合批

4.少用AlphaTest 和ColorMask
AlphaTest 就是 clip函数,在ios和使用PowerVR GPU的Android设备上性能很低
ColorMask,在ios和部分Android设备上性能低

5.NoScaleOffset
贴图在材质面板上不显示 tiling offset
同时shader也不做计算

6.DisableBatching,禁用批处理

Tags{ "DisableBatcing" = "true" }

如果顶点上的计算需要在模型的本地空间下进行,则需要开启,否则不要开启
注意:合批之后本地空间就不正确了

7.GrabPass,抓图

GrabPass{ "_GrabTex" }
smpler2D _GrabTex;

如果不指定贴图名称,则每个对象的 GrabPass每帧都会生成一次
有名称,所有对象在一帧内只会生成一次

8.SurfaceShader
能不用就不用,是unity的中间层
尽量去定点片断着色器

9.ShaderLOD
利用ShaderLOD 实现高中低配硬件的区分

10.Overdraw

Tags{ "RenderType" = "Transparent" }

自己写的材质开启 overdraw之后显示不到,需要加RenderType
在这里插入图片描述
RenderType本身没什么意义,不会影响渲染效果
就是把shader分类的效果

11.变体优化
变体数量直接影响shaderlab内存的占用,能少泽少
尽量不要去用standard材质,会产生大量的变体,自己定制修改一个

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值