Unity3D Shader :水滴效果
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 :水滴效果相关推荐
- Unity Shader 皮肤水滴效果
本文参考文章:[UE4]皮肤下雨效果复现 大体的思路就是使用UV坐标生成水滴遮罩以及法线. 1.原理简单阐述 首先建一个简单的Shader来输出UV坐标: fixed4 frag (v2f i) : ...
- 【浅墨Unity3D Shader编程】之三 光之城堡篇:子着色器、通道与标签的写法 amp; 纹理混合...
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://hpw123.net/a/C__/kongzhitaichengxu/2014/1117/120.html 作者:毛星 ...
- Unity3D Shader入门指南(二)
关于本系列 这是Unity3D Shader入门指南系列的第二篇,本系列面向的对象是新接触Shader开发的Unity3D使用者,因为我本身自己也是Shader初学者,因此可能会存在错误或者疏漏,如果 ...
- 猫都能学会的Unity3D Shader入门指南(二)
关于本系列 这是Unity3D Shader入门指南系列的第二篇,本系列面向的对象是新接触Shader开发的Unity3D使用者,因为我本身自己也是Shader初学者,因此可能会存在错误或者疏漏,如果 ...
- 【浅墨Unity3D Shader编程】之一 夏威夷篇:游戏场景的创建 第一个Shader的书写
本系列文章由@浅墨_毛星云 出品,转载请注明出处. 文章链接: http://blog.csdn.net/poem_qianmo/article/details/40723789 作者:毛星云(浅墨) ...
- 【游戏渲染】【译】Unity3D Shader 新手教程(1/6)
http://gad.qq.com/article/detail/7175490 该文章来自用户转载 点击阅读原文 刚开始接触Unity3D Shader编程时,你会发现有关shader的文档相当散, ...
- Unity3D Shader 新手教程(1/6)
刚开始接触Unity3D Shader编程时,你会发现有关shader的文档相当散,这也造成初学者对Unity3D Shader编程望而却步.该系列教程的第一篇文章(译者注:即本文,后续还有5篇文章) ...
- 【译】Unity3D Shader 新手教程(1/6)
刚开始接触Unity3D Shader编程时,你会发现有关shader的文档相当散,这也造成初学者对Unity3D Shader编程望而却步.该系列教程的第一篇文章(译者注:即本文,后续还有5篇文章) ...
- Unity3D Shader 入门
什么是Shader Shader(着色器)是一段能够针对3D对象进行操作.并被GPU所执行的程序.Shader并不是一个统一的标准,不同的图形接口的Shader并不相同.OpenGL的着色语言是GLS ...
- Unity3D Shader系列之描边
目录 1 引言 2 顶点沿法线外拓方式 2.1 法线外拓+ZTest Always 2.1.1 代码 2.1.2 问题点 2.2 法线外拓+Cull Front 2.2.1 代码 2.2.2 改进点 ...
最新文章
- python将txt转换为csv_Python Pandas 三行代码将 txt 文件转换成 csv 文件
- android中关于手机屏幕的相关操作(获取屏幕的宽高等操作)
- 计算机视觉和模式识别领域SCI期刊介绍
- java多线程间的通信传值_Java 多线程之间的通信
- 使用 udev 进行动态内核设备管理(转自suse文档)
- python后端从数据库请求数据给到前端的具体实现
- 雷林鹏分享:YAF 在Nginx环境下的Rewrite规则
- Wannafly挑战赛22游记
- 【Flink】Flink TaskManager 一直 User file cache uses directory
- 转数组_Java中IO必杀技-文件转字节数组
- [2019杭电多校第二场][hdu6601]Keen On Everything But Triangle
- request与在php安全,request导致的安全性问题分析
- 评测网站的十个指标!
- SqlServer 存贮过程操作类
- java reflector_Java DefaultReflectorFactory类代码示例
- Unsupervised Super Resolution Reconstruction of Traffic Surveillance Vehicle Images
- hdu5294||2015多校联合第一场1007 最短路+最大流
- 史玉柱自述:我是怎么带队伍的
- 【Java实现】南京地铁导航系统的简单实现(二)—— 最短路径算法的实现
- 运营MM又来求我发软文了......
热门文章
- unity java游戏大全_3D unity 滚球小游戏
- “笨鸟”逆风飞:一场荣耀的高端越峰征程
- 养了猫之后,我的猫也秃了
- 《漂亮的流程图绘制》(ConceptDraw Professional)v7.4.0
- mysql数据库引擎简介_MySQL数据库的存储引擎简介
- freebsd安装linux网卡驱动,freebsd从安装到想要的状态配置
- 蓝桥杯历届试题——核桃的数量(LCM+GCD)
- Android无埋点的技术选型之路
- 全智通A+——入库单价与出库成本不一致的原因。
- 婚前签订的出轨协议书有没有法律效力