Unity Shader 模型流光效果

Shader "Custom/FlowColor" {
	Properties {
		_MainTex ("Base (RGB)", 2D) = "white" {}
		_FlowColor("Flow Color", Color) = (1,1,1,1)
		_FlowRange("Flow Range", Float) = 0.01
	}

	SubShader {

		Pass
        {

		Tags {   "Queue" = "Geometry" }

		CGPROGRAM

        #include "UnityCG.cginc"

		struct v2f
		{
			float4 vertex:POSITION;
			float2 uv:TEXCOORD0;
			float nr:TEXCOORD1;
		};

		sampler2D _MainTex;
		float4 _FlowColor;
		float _FlowRange;

		v2f vert(appdata_base  v)
		{

			v2f o;
			o.uv = v.texcoord;
			o.vertex = mul(UNITY_MATRIX_MVP,v.vertex);
			float2 dir = normalize(float2(cos(_Time.y),sin(_Time.y)));
			float2 worldNormal = normalize(mul((float3x3)_Object2World,v.normal)).xz;

			o.nr = dot(dir,worldNormal);

			return o;
		}

		fixed4 frag (v2f IN):COLOR
		{
			//fixed4  c = tex2D(_MainTex, IN.uv);
			fixed fac = saturate(sign(IN.nr *(IN.nr-_FlowRange)));
			fixed4 c=fac*tex2D(_MainTex, IN.uv) +(1-fac)*_FlowColor;
			return c;
		}

        #pragma vertex vert
        #pragma fragment frag

		ENDCG
		}

	}
	FallBack "Diffuse"
}

  

时间: 2024-08-30 10:01:41

Unity Shader 模型流光效果的相关文章

Unity Shader实现描边效果

http://gad.qq.com/article/detail/28346 描边效果是游戏里面非常常用的一种效果,一般是为了凸显游戏中的某个对象,会给对象增加一个描边效果.本篇文章和大家介绍下利用Shader实现描边效果,一起来看看吧. 最近又跑回去玩了玩<剑灵>,虽然出了三年了,感觉在现在的网游里面画面仍然算很好的了,剑灵里面走近或者选中NPC的一瞬间,NPC就会出现描边效果,不过这个描边效果是渐变的,会很快减弱最后消失(抓了好久才抓住一张图....) 还有就是最常见的LOL中的塔,我们把

Unity Shader 屏幕后效果——Bloom外发光

Bloom的原理很简单,主要是提取渲染图像中的亮部区域,并对亮部区域进行模糊处理,再与原始图像混合而成. 一般对亮部进行模糊处理的部分采用高斯模糊,关于高斯模糊,详见之前的另一篇博客: https://www.cnblogs.com/koshio0219/p/11152534.html 计算方法: 总共需要用到4个Pass,它们的顺序如下: Pass 1:得到纹理的亮度值(灰度值),由此计算出亮部区域,传递给一个临时的新纹理,这里叫_Bloom Pass 2,3:单独对_Bloom进行高斯模糊(

Unity Shader 屏幕后效果——全局雾

Unity内置的雾效需要在每个shader中分别编写,造成了极大的不便.这里利用屏幕后处理产生可单独控制且自由度更高的雾效. 屏幕后雾效的本质在于,根据深度纹理重构每个像素在世界空间中的位置,利用得到的坐标计算出一个雾效系数,最终利用雾效系数与雾的颜色相乘并与原始颜色进行插值运算得出最终效果. float3 afterFog=f*fogColor+(1-f)*origColor; 上面的插值运算中f代表雾效系数,它有多种计算方法: 1.线性计算: f=(dmax-Abs(z))/dmax-dmi

Unity shader实现水效果(折射,反射,波浪,1.菲尼尔,深度颜色)

整个实现过程,包括水面的UV流动,折射,反射,根据深度进行透明值处理等等 原文地址:https://www.cnblogs.com/ubanck/p/9606626.html

【Unity Shader】(九) ------ 高级纹理之渲染纹理及镜子与玻璃效果的实现

笔者使用的是 Unity 2018.2.0f2 + VS2017,建议读者使用与 Unity 2018 相近的版本,避免一些因为版本不一致而出现的问题. [Unity Shader](三) ------ 光照模型原理及漫反射和高光反射的实现 [Unity Shader](四) ------ 纹理之法线纹理.单张纹理及遮罩纹理的实现 [Unity Shader](五) ------ 透明效果之半透明效果的实现及原理 [Unity Shader](六) ------ 复杂的光照(上) [Unity

Unity shader学习之屏幕后期效果之调整屏幕亮度,饱和度,对比度

Unity的屏幕后期处理效果,使用MonoBehaviour.OnRenderImage来实现. 如代码如下: PostEffectRenderer: 1 using UnityEngine; 2 3 [RequireComponent(typeof(Camera))] 4 public abstract class PostEffectRenderer : GameBehaviour 5 { 6 protected abstract string ShaderName { get; } 7 8

【Unity Shader】Shader纹理映射的例子

将漫反射的颜色改为从纹理贴图中获取,逐像素计算. Shader "Custom/11-Texture" { // BlinnPhong光照模型 Properties{ //_Diffuse("Diffuse Color", Color) = (1,1,1,1) // 可在编辑器面板定义材质自身色彩 _MainTex("Main Tex",2D) = "white"{} // 纹理贴图,默认是一张白色贴图 _Color(&quo

【Unity Shader编程】之十四 边缘发光Shader(Rim Shader)的两种实现形态

本系列文章由@浅墨_毛星云 出品,转载请注明出处.   文章链接:http://blog.csdn.net/poem_qianmo/article/details/51764028 作者:毛星云(浅墨)    微博:http://weibo.com/u/1723155442 本文工程使用的Unity3D版本: 5.2.1  这篇文章主要讲解了如何在Unity3D中分别使用Surface Shader和Vertex & Fragment Shader来编写边缘发光Shader. 一.最终实现的效果

Unity Shader入门教程(一)

参考文献:http://www.360doc.com/content/13/0923/15/12282510_316492286.shtml Unity Shader是着色器,将纹理.网格信息输入,得到材质的一段程序,具体是个什么东西,还需要亲自实践才知道.一个Unity大神推荐我:如果要学计算机图形编程(游戏编程的基础),可以先学习UnityShader,往后再学习OpenGL和DX.不说废话,依我的风格,都是直接看实例,笔者的教程偏向于傻瓜式的,应该适合入门. 前提:安装了Unity和VS,