本文是Shader案例分析实现 一 二 三 ,三篇内容的汇总:
01_PannerUV
参数介绍:
节点图:
说明:
对一张贴图进行平移UV地采样;
用上面采样的贴图对另一张贴图的UV采样进行扭曲;
实现扭曲的效果;
用这种UV偏转的方法实现的扭曲效果是非常廉价的,可以在移动端使用,适合做一些水折射的模拟。
Distortion
效果:
参数介绍:
节点图:
说明:
对贴图UV进行扰动采样两张图;
一张用于对颜色值进行失真采样;
一张用于对Alpha值进行失真处理;
实现不规则的失真效果;
受到顶点颜色的影响;
有深度混合的功能,和其他物体衔接的地方透明度降低;
这个是一个用于粒子特效的Shader,会受到Unity粒子系统的颜色变化值的影响。深度混合的功能,如果在游戏中使用,需要在摄像机上挂 EnableCameraDepthInForward.cs (在ShaderForge的插件中有)的脚本
ImageBlend
效果:
参数介绍:
节点图:
说明:
对屏幕之前的图像进行采样;
使用两张贴图和屏幕图像混合;
根据图片的Alpha通道对屏幕之前的像素和图片的采样结果进行混合;
两张图片混合的结果再通过一个Lerp值进行差值显示
用这种方法实现这种效果,是非常不可取的,因为采样屏幕当前图像的做法是非常耗时,且一些低端的移动设备不支持,一般用这种方法来实现刀光扭曲和毛玻璃的效果。这种方法不可取
Gradients
效果:
参数介绍:
节点图:
说明:
这个Shader更像是一个中间产品,很少有单独用到这种效果的,这中渐变的索引通常配合更多更复杂的Shader来实现更复杂的效果,这个Shader权当是记录这种实现方法,以后要用到这种实现的时候,从这里拷贝过去就行
1、头发
效果:
参数介绍:
节点图:
说明:
使用这种方法来模拟头发,尽量把头发模型的UV顺着头发生长方向分
2、Blinn-Phong
效果:
参数介绍:
节点图:
说明:
使用的效果有:反射环境光;边缘光;自发光;Blinn-Phong光照模型
3、MatCap
效果:
参数介绍:
节点图:
说明:
MatCap效果的实现原理是法线在屏幕空间的xy分量映射到0-1,然后作为UV对贴图进行采样
4、雪
效果:
参数介绍:
节点图:
说明:
使用细分曲面的方式实现雪的效果,这种方法较为昂贵,适用于PC和主机平台,移动平台直接去掉细分也能得到不错的效果。
5、黑洞扭曲
效果:
参数介绍:
节点图:
说明:
通过一些复杂的计算实现一种漩涡扭曲的图形,这种做法类似SubstanceDesigner的程序纹理,这种实现方法会消耗一些GPU的ALU,适合在硬件性能较好的平台使用。
6、贴图扭曲
效果:
参数介绍:
节点图:
说明:
使用贴图制作扭曲的方式更加灵活多变,可根据不同的模型对应产生不同的效果,便于美术控制
7、sin函数波形图
效果:
参数介绍:
节点图:
说明:
这种完全通过UV(0-1)生成的波形图,在一定程度上减少对贴图的采样,但也伴随着精度的问题,数值过大的时候会根据不同显卡产生一些误差。
带高光卡通效果
效果:
参数说明:
节点图:
说明:
添加了Blinn-Phong高光的卡通渲染效果
漫画网点效果
效果:
参数说明:
节点图:
说明:
模拟漫画网点效果,可以用作特殊场景的渲染效果
漫画影线效果模拟
效果:
参数说明:
节点图:
说明:
模拟漫画网点效果,可以用作特殊场景的渲染效果
卡通海洋模拟
效果:
参数介绍:
节点图:
说明:
可用于模拟简单的卡通海洋浪花效果,并不完善,不能直接使用
洞
效果:
参数说明:
节点图:
说明:
在地面剪切一个圆形洞,可用作特殊用途
网格
效果:
参数说明:
节点图:
说明:
可以用于制造镂空模型网格效果
灯光光晕
效果:
参数说明:
节点图:
说明:
可用作模拟灯光光晕的效果,需要开启摄像机的深度模式才可以使用。
扇形图
效果:
参数说明:
节点图:
说明:
扇形图,原理类似溶解
扇形图2
效果:
参数说明:
节点图:
说明:
可控制张角和旋转角度,可配合一些复杂效果做遮罩使用
模拟星空
效果:
参数说明:
节点图:
说明:
模拟星空的效果,可以用作天空盒
旋转法线
效果:
参数说明:
节点图:
说明:
旋转法线效果,实际用处不大
根据方向混合贴图
效果:
参数说明:
节点图:
说明:
根据方向对法线和纹理进行混合,实际用处不大
Terrain地形混合效果
效果:
参数说明:
节点图:
说明:
两种实现均是可以的,实现原理等同于 T4M以及Unity自带的Terrain Shader
以下是一些没有搞清楚的Shader,只给大家分享一下节点图和几张效果,有兴趣的同学可以下载下来深入研究
效果:
节点图:
效果:
节点图:
节点图: