Roman f4b96539c5 Squashed commit of the following:
commit 994279b09e8676155176aecbcd43f13ab90f2c92
Author: SAIPO <grasste0403@hotmail.com>
Date:   Mon Nov 29 23:59:44 2021 +0800

    任务:编写效果Shader
    1.增加了通过高斯模糊公式实现的高斯模糊shader(建议用在背景层,让画面有一些景深感觉)
    2.增加了像素化的shader,通过在片元着色器上的uv合并,可以使贴图变为像素风格
    3.增加了闪光划过的shader

commit 271e45aeb97212640573a9faf71483cece293043
Author: SAIPO <grasste0403@hotmail.com>
Date:   Mon Nov 29 23:09:30 2021 +0800

    11.29合并分支

commit dfa618fabaf36626e1b92e7ab34c87d497bcdeb3
Author: SAIPO <grasste0403@hotmail.com>
Date:   Sat Nov 27 13:42:16 2021 +0800

    合并分支

commit de8d79b73e560814ff9fc8a0c3418009682c5ef8
Author: SAIPO <grasste0403@hotmail.com>
Date:   Tue Nov 23 21:25:44 2021 +0800

    任务:搭建Mysql数据库相关框架
    1.完成Mysql动态链接库的导入
    2.实现基本的服务器连接数据框架
    3.实现Sql语句查询框架

# Conflicts:
#	Assets/Behavior Designer/Resources/BehaviorDesignerGlobalVariables.asset.meta
#	Assets/Demigiant/DOTween/Editor.meta
#	Assets/Fungus/Integrations/Playmaker/Fungus-PlayMaker.unitypackage.meta
#	Assets/Fungus/Integrations/Spine/Fungus-Spine.unitypackage.meta
#	Assets/Plugins/Sirenix/Demos/Custom Attribute Processors.unitypackage.meta
#	Assets/Plugins/Sirenix/Demos/Custom Drawers.unitypackage.meta
#	Assets/Plugins/Sirenix/Demos/Editor Windows.unitypackage.meta
#	Assets/Plugins/Sirenix/Demos/Sample - RPG Editor.unitypackage.meta
#	Assets/Shader.meta
#	Assets/Shader/像素化.meta
2021-11-30 00:50:39 +08:00

121 lines
4.6 KiB
Plaintext
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Shader "Custom/Flash"
{
//                        
//               
//                     
//                      
//                      
//             
//                       
//                      
//                     
//                  
//                   
//                     
//                
Properties
{
_MainTex ("Base (RGB), Alpha (A)", 2D) = "black" {}
_Color("Color", Color) = (1,1,1,1)
_Angle("angle", Range(0, 360)) = 75
_Width("width", Range(0, 1)) = 0.2
_FlashTime("flash time", Range(0, 100)) = 1
_DelayTime("delay time", Range(0, 100)) = 0.2
_LoopInterval("interval time", Range(0, 100)) = 2
}
SubShader
{
LOD 200
Tags
{
"Queue" = "Transparent"
"IgnoreProjector" = "True"
"RenderType" = "Transparent"
}
Pass
{
Cull Off
Lighting Off
ZWrite Off
Fog { Mode Off }
Offset -1, -1
Blend SrcAlpha OneMinusSrcAlpha
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
sampler2D _MainTex;
float4 _Color;
float _Angle;
float _Width;
float _FlashTime;
float _DelayTime;
float _LoopInterval;
float4 _MainTex_ST;
struct appdata_t
{
float4 vertex : POSITION;
float2 texcoord : TEXCOORD0;
fixed4 color : COLOR;
};
struct v2f
{
float4 vertex : SV_POSITION;
half2 texcoord : TEXCOORD0;
fixed4 color : COLOR;
};
v2f o;
v2f vert (appdata_t v)
{
o.vertex = UnityObjectToClipPos(v.vertex);
o.texcoord = v.texcoord;
o.color = v.color;
return o;
}
// 计算亮度
//角度 宽度(x方向) 运行时间 开始时间 循环间隔
float flash(float2 uv, float angle, float w, float runtime, float delay, float interval)
{
float brightness = 0;
float radian = 0.0174444 * angle;
float curtime = _Time.y; //当前时间
float starttime = floor(curtime/interval) * interval; //本次flash开始时间
float passtime = curtime - starttime;//本次flash流逝时间
if (passtime > delay)
{
float projx = uv.y / tan(radian); //y的x投影长度
float br = (passtime - delay) / runtime; //底部右边界
float bl = br - w; //底部左边界
float posr = br + projx; //此点所在行右边界
float posl = bl + projx; //此点所在行左边界
if (uv.x > posl && uv.x < posr)
{
float mid = (posl + posr) * 0.5; //flash中心点
brightness = 1 - abs(uv.x - mid)/(w*0.5);
}
}
return brightness;
}
float4 frag (v2f i) : COLOR
{
float4 col = tex2D(_MainTex, i.texcoord);
float bright = flash(i.texcoord, _Angle, _Width, _FlashTime, _DelayTime, _LoopInterval);
float4 outcol = col + _Color*bright * col.a;// * step(0.5, col.a);
return outcol;
}
ENDCG
}
}
}