一:效果演示


二:实现

Shader:漩涡着色器

//漩涡着色器Shader "Custom/Swirl"
{Properties{_MainTex ("Texture", 2D) = "white" {}_Angle ("Rotation", Float) = 0}SubShader{// No culling or depthCull Off ZWrite Off ZTest AlwaysPass{CGPROGRAM#pragma vertex vert#pragma fragment frag#include "UnityCG.cginc"struct appdata{float4 vertex : POSITION;float2 uv : TEXCOORD0;};struct v2f{float2 uv : TEXCOORD0;float4 vertex : SV_POSITION;};v2f vert (appdata v){v2f o;o.vertex = UnityObjectToClipPos(v.vertex);o.uv = v.uv;return o;}sampler2D _MainTex;float _Angle;fixed4 frag (v2f i) : SV_Target{float2 uv = float2(i.uv.x-0.5,i.uv.y-0.5);float f = distance(uv,float2(0,0));float s = sin(lerp(0,_Angle,f));float c = cos(lerp(0,_Angle,f));// -c s// s  cuv = float2(-uv.x*c+uv.y*s,uv.x*s+uv.y*c);uv = float2(uv.x+0.5,uv.y+0.5);fixed4 col = tex2D(_MainTex, uv);return col;}ENDCG}}
}

CS:后处理的基类

using UnityEngine;/// <summary>
/// 后处理的基类
/// </summary>
[ExecuteInEditMode]
[RequireComponent(typeof(Camera))]
public class PostEffectBase : MonoBehaviour
{[Header("后处理着色器")]public Shader shader = null;private Material _material = null;public Material material{get{if (_material == null){_material = GenerateMaterial(shader);}return _material;}}protected Material GenerateMaterial(Shader shader){if (shader == null || shader.isSupported == false){return null;}Material material = new Material(shader);material.hideFlags = HideFlags.DontSave;if (material){return material;}return null;}
}
 

CS:漩涡效果(挂载到渲染的相机上)

using UnityEngine;/// <summary>
/// 漩涡效果
/// </summary>
[RequireComponent(typeof(Camera))]
public class Swirl : PostEffectBase
{[Header("漩涡值")][Space(25)]public float swirlValue;private void OnRenderImage(RenderTexture source, RenderTexture dest){if (material){material.SetFloat("_Angle", swirlValue);Graphics.Blit(source, dest, material);}else{Graphics.Blit(source, dest);}}
}

Shader——漩涡效果相关推荐

  1. Android关于绘图中Shader 的效果(中级)

    Android关于绘图中Shader 的效果(中级) 关于绘图中Shader 的效果 本人对API中Shaser的参数理解不够深刻 所以只能测试来看 效果一下就看出来了 Shader mShade=n ...

  2. shader镜子效果错误

    shader镜子效果错误 今天实现了下Unity shader的镜子效果,但是离谱的是跟着书上敲出来的代码,放在书上提供的场景中效果是正常的,我自己搭的场景就出现了左右都会映射,而且一层接一层.可能解 ...

  3. [Unity Shader]凌波微步效果

    [Unity Shader]凌波微步效果 相信很多人都看过天龙八部,里面的段誉有一个技能就是凌波微步:移动的时候人先到,衣角跟随其后.说白了就是移动时有一个残影跟着他.下面先看下最终效果 下面我们看如 ...

  4. java 绘制螺旋线,java-如何创建漩涡/漩涡效果?

    我试图在作为传感器的圆形物体上产生漩涡效果. 我一直在寻找它,我寻找的所有示例都在C或Objective C中进行,但我似乎翻译得不太好. 当我的对象归类时,它将调用beginContact(..)并 ...

  5. 【Unity Shader 消融效果_案例分享】

    1.实现逻辑 消融效果主要是利用了Shader中的clip()函数,也就是透明测试功能,在ASE中叫"Opacity Mask". 消融效果是基于一张"Noise&quo ...

  6. Shader玉石效果

    (1)效果图如下: (2)效果分析: 1.边缘 :"高亮" "通透"效果 . 2.非边缘的"厚重"效果 3.光滑的反射"环境&qu ...

  7. 【Unity Shader 描边效果_案例分享】

    1.实现逻辑 描边效果Shader有多种实现方式,可以通过后处理和MatCap实现. 这次主要想展示的是通过两个Pass实现. 当Shader中有多个Pass时,渲染流程会安装顺序依次执行,于是后面的 ...

  8. Shader——自发光效果

    Shader "Custom/OutLightting" {// 属性Properties{_MainTex("Texture(RGB)", 2D) = &qu ...

  9. unity shader景深效果

    实现效果 景深效果 实现思路 由两张图组成,分别是远处的模糊状态和近处的清晰状态,根据物体的深度判断物体离摄像机的距离确定物体的状态.两个图进行插值,越近越靠近清晰的图像. 代码 脚本代码: usin ...

最新文章

  1. 手摸手教你数据可视化!(附实例讲解)
  2. 1.6.2 java路径下载_《我的世界1.6.2》官方下载 单机我的世界1.6.2中文整合版_SJ3G游戏中心...
  3. C语言 递归实现辗转相除法 和 辗转相减法
  4. java安全权限配置_使用Spring安全表达式控制系统功能访问权限问题
  5. Java临时缓存API –测试早期草案评审RI
  6. python程序怎么给别人运行_如何使Python脚本作为服务运行?
  7. python socket多线程 获取朋友列表_python socket多线程通讯实例分析(聊天室)
  8. C语言,全局变量与局部变量问题
  9. 某个网页一直不停刷新_利用浏览器做网页长截图
  10. python csv数据所在行_使用python获取csv文本的某行或某列数据的实例
  11. linux日常检查,Linux日常检查的shell
  12. python为什么被称为胶水语言_为什么Python被称为“胶水语言”?
  13. mysql cpu 100%_mysql占用资源CPU超过100%解决方法
  14. 练习题《中心对称矩阵》
  15. 选手投票html,选手投票网页制作
  16. 正则表达式——常用量词
  17. html微信图片自适应,微信小程序实现图片高度自适应
  18. 咕咕机显示服务器请求异常,咕咕机云服务器异常
  19. 【计算方法】实验一:python使用二分法、不动点法、牛顿法求根
  20. ZYNQ 7020 FIFO讲解。

热门文章

  1. Java运算符——————03
  2. el-color-picker-sheldon使用说明(一款基于Vue和ElementUI的取色器)
  3. mybatis-plus 读写空间数据 geometry类型
  4. Failed at step EXEC spawning /var/xxx/xxx-1.0-SNAPSHOT.jar: Text file busy
  5. 1121. Damn Single
  6. 性格色彩测试android程序开发之七--测试题模块dialog的实现
  7. 排序---小白鼠排队
  8. mysql8.0.15mis百度网盘_mysql-installer-community-8.0.15.0数据库的安装
  9. Tina_Linux_WiFi_RF测试_使用指南
  10. ORACLE中RECORD的使用