shader和后处理,也许算很多公司对资深U3D程序员的要求。
入坑shader几年了,shader的语法其实很少很简单,但是shader可以实现的效果实在太多,可以说是无穷的,靠记忆每种效果的shader原理实际上是不可能的。
在几年的shader学习过程中,我尝试总结一些规律,shader的常用技术。
1.环境
Unity2017.3
VS2017
2.Shader的分类
这是我对shader的分类,方便前期学习总结,大家也可以自己对shader分类,或者提出意见一起完善。
暂时只涉及顶点shader和像素shader。
1. 技术:使用uv变换
技巧:
1.使用 time 对uv控制
2.采样另一张/多张图的rgb通道来控制当前uv
3.使用C#传入的值控制
效果:决定像素根据我们对于uv的处理而有规律的变化
2. 技术:对像素的各种处理:混合、剔除、深度/模板测试、
技巧
1.采样另一张/多张图的rgb通道与某一个值对比,来剔除像素。
2.使用另一张图写入深度,与当前深度做对比,来覆盖。
效果:一句话就是决定某一类/区域的像素如何显示,是否显示。
可以达到的效果:溶解、半透明、将方形UI截取为圆形
//-----------以后逐渐补充