通用特效Shader

一、通用特效Shader介绍

1.1 什么是通用特效材质

Unity支持SRP Batcher后,使用UberShader的优势非常明显。所谓,UberShader,即一个超级Shader,覆盖一类功能,而不是多个分散的小Shader,比如一个通用特效Shader,整个项目内的所有特效都使用该Shader来制作所有的粒子特效或者模型特效,其它需求也类似,比如物体、地形等。

1.2 通用特效材质的意义

1.2.1 方便使用和沟通

整个项目只有一个特效Shader的情况下,美术很容易熟悉该Shader有哪些功能,能够尽可能复用该通用Shader的多个功能制作复杂特效;同时,避免美术与技术美术或者技术重复沟通类似的功能。

1.2.2 方便维护

对于技术美术或者开发同学来说,维护一个Shader的成本比维护多个的成本低很多。对于重复功能不需要再重复开发,优化性能时候也不用满世界扫描美术到底用的是什么Shader,只需要优化这一个Shader性能即可。

1.2.3 批次更低

由于支持SRP Batcher,Unity使用的是最终的变体级别合批。与多个分散小Shader相比,一个Shader质制作的特效更可能被SRP Batcher,因为使用的同一个变体的概率很高,而不同的Shader天然就是不同的变体,不可能被SRP Batcher。因此,只要复用率越高,被合并的批次越多。

1.2 通用特效材质主要模块

主要包括基础功能、Mask、Distortion(扭曲)、Dissolve(溶解)、Emission(自发光)、Reflection(反射)、其它等。每个大的模块都有变体开关,部分消耗大的小功能也需要有变体开关。这里只是列出本人项目中用到过的一些功能,基本上覆盖了常见的特效功能,但是不同项目会有不同的需求,因此除了常见的扭曲、溶解等还会有不少定制功能。这篇文章的目的,不在于介绍这些功能的实现细节,而是说明一个超级特效Shader在项目中使用的意义。

二、通用特效具体模块

2.1 Surface Options(基础设置)

请添加图片描述
Surface Type:不透明或者半透明
Render Face:Front(剔除背面)、Back(剔除前面)、Both(不剔除)
Custom ZWrite:是否覆盖深度写入
ZTest:深度测试
ColorMask:输出颜色通道
Al

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值