Shader 代码

Shader "Unlit/Test"
{
Properties
{
_MainTex ("Texture", 2D) = "white" {}
_MainColor("Color",COLOR)=(1,1,1,1)
}
CGINCLUDE
#include "UnityCG.cginc"
uniform sampler2D _MainTex;
uniform float _distanceFactor;
uniform float _timeFactor;
uniform float _totaFactor;
uniform float _waveWidth;
uniform float _curwaveDistance;
float4 _MainColor;
fixed4 frag(v2f_img i):SV_Target
{
float2 dv=float2(0.5,0.5)-i.uv;dv=dv*float2(_ScreenParams.x/_ScreenParams.y,1);
float dis=sqrt(dv.x*dv.x+dv.y*dv.y);float sinFactor=sin(dis*_distanceFactor+_Time.y*_timeFactor)*_totaFactor*0.01;float discardFactor=clamp(_waveWidth-abs(_curwaveDistance-dis),0,1);float2 dv1=normalize(dv);
float2 off =dv1*sinFactor*discardFactor;
float2 uv=off+i.uv;
return tex2D(_MainTex,uv)*_MainColor.xyzw;
}
ENDCG
SubShader
{Pass
{
ZTest Always
Cull Off
ZWrite Off
Fog{Mode off}CGPROGRAM
#pragma vertex vert_img
#pragma fragment frag#pragma fragmentoption ARB_precision_hint_fastest
ENDCG
}
}
FallBack off}

C# 代码1

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Rendering;
[ExecuteInEditMode]
[RequireComponent(typeof(Camera))]
public class PostEffectBase : MonoBehaviour {public Shader shader = null;Material _material = null;public Material _Material{get{if (_material == null){_material = GetMaterial(shader);}return _material;}}Material GetMaterial(Shader shader){if (shader == null)return null;if (shader.isSupported == false)return null;Material material = new Material(shader);material.hideFlags = HideFlags.DontSave;if (material)return material;return null;}}

C# 代码2

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class ShuiDi : PostEffectBase {public float distanceFactor = 60f;public float timeFactor = -30f;public float totaFactor = 1.0f;public float waveWidth = 0.3f;public float waveSpeed = 0.3f;float waveStartTime;private void OnRenderImage(RenderTexture source, RenderTexture destination){float curwaveDistance = (Time.time - waveStartTime) * waveSpeed;if (curwaveDistance >= 1.5){waveStartTime = Time.time;}_Material.SetFloat("_distanceFactor", distanceFactor);_Material.SetFloat("_timeFactor", timeFactor);_Material.SetFloat("_totaFactor", totaFactor);_Material.SetFloat("_waveWidth", waveWidth);_Material.SetFloat("_curwaveDistance", curwaveDistance);Graphics.Blit(source, destination, _Material);}}

Unity3D Shader :水滴效果相关推荐

  1. Unity Shader 皮肤水滴效果

    本文参考文章:[UE4]皮肤下雨效果复现 大体的思路就是使用UV坐标生成水滴遮罩以及法线. 1.原理简单阐述 首先建一个简单的Shader来输出UV坐标: fixed4 frag (v2f i) : ...

  2. 【浅墨Unity3D Shader编程】之三 光之城堡篇:子着色器、通道与标签的写法 amp; 纹理混合...

    本系列文章由@浅墨_毛星云 出品,转载请注明出处.   文章链接: http://hpw123.net/a/C__/kongzhitaichengxu/2014/1117/120.html 作者:毛星 ...

  3. Unity3D Shader入门指南(二)

    关于本系列 这是Unity3D Shader入门指南系列的第二篇,本系列面向的对象是新接触Shader开发的Unity3D使用者,因为我本身自己也是Shader初学者,因此可能会存在错误或者疏漏,如果 ...

  4. 猫都能学会的Unity3D Shader入门指南(二)

    关于本系列 这是Unity3D Shader入门指南系列的第二篇,本系列面向的对象是新接触Shader开发的Unity3D使用者,因为我本身自己也是Shader初学者,因此可能会存在错误或者疏漏,如果 ...

  5. 【浅墨Unity3D Shader编程】之一 夏威夷篇:游戏场景的创建 第一个Shader的书写

    本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/40723789 作者:毛星云(浅墨) ...

  6. 【游戏渲染】【译】Unity3D Shader 新手教程(1/6)

    http://gad.qq.com/article/detail/7175490 该文章来自用户转载 点击阅读原文 刚开始接触Unity3D Shader编程时,你会发现有关shader的文档相当散, ...

  7. Unity3D Shader 新手教程(1/6)

    刚开始接触Unity3D Shader编程时,你会发现有关shader的文档相当散,这也造成初学者对Unity3D Shader编程望而却步.该系列教程的第一篇文章(译者注:即本文,后续还有5篇文章) ...

  8. 【译】Unity3D Shader 新手教程(1/6)

    刚开始接触Unity3D Shader编程时,你会发现有关shader的文档相当散,这也造成初学者对Unity3D Shader编程望而却步.该系列教程的第一篇文章(译者注:即本文,后续还有5篇文章) ...

  9. Unity3D Shader 入门

    什么是Shader Shader(着色器)是一段能够针对3D对象进行操作.并被GPU所执行的程序.Shader并不是一个统一的标准,不同的图形接口的Shader并不相同.OpenGL的着色语言是GLS ...

  10. Unity3D Shader系列之描边

    目录 1 引言 2 顶点沿法线外拓方式 2.1 法线外拓+ZTest Always 2.1.1 代码 2.1.2 问题点 2.2 法线外拓+Cull Front 2.2.1 代码 2.2.2 改进点 ...

最新文章

  1. python将txt转换为csv_Python Pandas 三行代码将 txt 文件转换成 csv 文件
  2. android中关于手机屏幕的相关操作(获取屏幕的宽高等操作)
  3. 计算机视觉和模式识别领域SCI期刊介绍
  4. java多线程间的通信传值_Java 多线程之间的通信
  5. 使用 udev 进行动态内核设备管理(转自suse文档)
  6. python后端从数据库请求数据给到前端的具体实现
  7. 雷林鹏分享:YAF 在Nginx环境下的Rewrite规则
  8. Wannafly挑战赛22游记
  9. 【Flink】Flink TaskManager 一直 User file cache uses directory
  10. 转数组_Java中IO必杀技-文件转字节数组
  11. [2019杭电多校第二场][hdu6601]Keen On Everything But Triangle
  12. request与在php安全,request导致的安全性问题分析
  13. 评测网站的十个指标!
  14. SqlServer 存贮过程操作类
  15. java reflector_Java DefaultReflectorFactory类代码示例
  16. Unsupervised Super Resolution Reconstruction of Traffic Surveillance Vehicle Images
  17. hdu5294||2015多校联合第一场1007 最短路+最大流
  18. 史玉柱自述:我是怎么带队伍的
  19. 【Java实现】南京地铁导航系统的简单实现(二)—— 最短路径算法的实现
  20. 运营MM又来求我发软文了......

热门文章

  1. unity java游戏大全_3D unity   滚球小游戏
  2. “笨鸟”逆风飞:一场荣耀的高端越峰征程
  3. 养了猫之后,我的猫也秃了
  4. 《漂亮的流程图绘制》(ConceptDraw Professional)v7.4.0
  5. mysql数据库引擎简介_MySQL数据库的存储引擎简介
  6. freebsd安装linux网卡驱动,freebsd从安装到想要的状态配置
  7. 蓝桥杯历届试题——核桃的数量(LCM+GCD)
  8. Android无埋点的技术选型之路
  9. 全智通A+——入库单价与出库成本不一致的原因。
  10. 婚前签订的出轨协议书有没有法律效力