S1_11_四种基本常用Shader
Unlit_Shader属性设置
Clip 裁剪节点/Break To Components 通道拆分输出
透明通道在0.5以上就显示,反之在0.5以下则不显示
快捷键_i 显示默认数值
AlphaTest 设置属性
AlphaBlend 属性设置
Add属性设置
S1_12_虚拟开关和变体/关键字/如何跟程序配合
Toggle_Switch_虚拟开关_两条线路都会参与计算
虚拟开关是一个算法的简写,它不是一个开关,而是它通过一个算法来让另外一条线路输出的值是一个0,然后不参与计算
虚拟开关的原理就是用一个Lerp加上一个数值,这个数值输出的不是1就是0
Static_Switch_静态开关_这是一个真正的开关(变体),只有一条线路会参与计算
Shader_Feather_静态开关默认是关闭,就是不打钩,只要游戏打包时,没对打钩,那么Shader变体计算就不会被打包进游戏
补充_Shader_Feather无法在游戏中实时动态切换,在打包进游戏前就需要设置好
Multi_Compile_无论是否打钩,多重编译的特点就是在游戏打包时,Shader多重编译计算都会被打包进入游戏,并且会自动变成两个Shader, 消耗会成倍的增长
补充_Multi_Compile是一个全局的关键字,可以在游戏中实时的切换,每一次游戏将其加载到内存当中,它会将你用到的所有分支都打包进去,这样也就是两个Shader都在场景运行的内存里面都可以去修改
Static_Switch > Keyword Enum 静态开关_枚举设置
Lerp的算法原理
Float节点也可以设置Enum枚举开关
Auto-Register 自动编译材质到面板
S1_13_优化/模板代码修改
01.正确的全局设置
02.数据精度_使用half
03.修改内置函数简化算法
04.减少算法达到类似的效果
05.不用复杂函数
06.只有1,4维数据可以暴露到属性面板
07.合理的单双面Shader
08.少计算光照模型
09.少用Alphablend
10.最好不用Alphatest Clip函数
11.变体
12.把部分计算放到Vertex_Shader
哪些计算可以放在顶点当中,哪些计算不能放在顶点当中
需要注意的是如果在顶点当中进行计算的话,色彩空间最好调整为线性空间
如果看到在Gamma空间计算效果也还可以就是也可以用,如果不行还是要放到片元里计算
ASE中唯一会用到Multi_Compile的部分 Vertex_Position > Relative
用IDE打开ASE下得Unlit模板
删除Unlit模板下这两个部分
S1_14_Panner流动/time节点/Customdata
UV纹理引用
ASE和粒子系统关联需要使用Vertex Shader节点
Vertex Color 大部分都是作为颜色和透明度来控制的
使用Custom Data必须在Renderer下开启自定义顶点数据流_Custom Vertex Streams
S1_15_Flash闪烁,SinCos优化
Scale And Offset 乘以一个数,再加上一个数
Shader函数
Auto Cast 自动接收
如果你输入的是一个二维的数据,它的计算就会按照二维的数据取计算,不会按照四维的数据计算,1~4维都会有一个自动映射