Bulk modifications across the Game Kit Controller package: updated materials and shader, adjusted particle prefabs, and numerous prefab updates for Character Customization, Inventory, Map System, Locked Camera System, Probuilder export objects, Gravity, Health, Mission System and other scene elements. These changes appear to be a large asset rework/reimport or parameter/reference updates to keep prefabs and materials in sync.
164 lines
5.5 KiB
Plaintext
164 lines
5.5 KiB
Plaintext
Shader "Custom/Simple Blur Shader" {
|
|
Properties {
|
|
_Size ("Blur", Range(0, 30)) = 1
|
|
[HideInInspector] _MainTex ("Texture (RGB)", 2D) = "white" {}
|
|
// _TintColor ("Tint Color", Color) = (1,1,1,1)
|
|
}
|
|
Category {
|
|
// We must be transparent, so other objects are drawn before this one.
|
|
Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Opaque" }
|
|
SubShader
|
|
{
|
|
ZWrite Off
|
|
// Horizontal blur
|
|
GrabPass
|
|
{
|
|
"_HBlur"
|
|
}
|
|
|
|
Pass
|
|
{
|
|
CGPROGRAM
|
|
#pragma vertex vert
|
|
#pragma fragment frag
|
|
#pragma fragmentoption ARB_precision_hint_fastest
|
|
#include "UnityCG.cginc"
|
|
|
|
struct appdata_t {
|
|
float4 vertex : POSITION;
|
|
float2 texcoord: TEXCOORD0;
|
|
float4 color : COLOR;
|
|
};
|
|
|
|
struct v2f {
|
|
float4 vertex : POSITION;
|
|
float4 uvgrab : TEXCOORD0;
|
|
float2 uvmain : TEXCOORD1;
|
|
float4 color : COLOR;
|
|
};
|
|
|
|
sampler2D _MainTex;
|
|
float4 _MainTex_ST;
|
|
|
|
v2f vert (appdata_t v)
|
|
{
|
|
v2f o;
|
|
o.vertex = UnityObjectToClipPos(v.vertex);
|
|
|
|
#if UNITY_UV_STARTS_AT_TOP
|
|
float scale = -1.0;
|
|
#else
|
|
float scale = 1.0;
|
|
#endif
|
|
|
|
o.uvgrab.xy = (float2(o.vertex.x, o.vertex.y * scale) + o.vertex.w) * 0.5;
|
|
o.uvgrab.zw = o.vertex.zw;
|
|
|
|
o.uvmain = TRANSFORM_TEX(v.texcoord, _MainTex);
|
|
o.color = v.color;
|
|
return o;
|
|
}
|
|
|
|
sampler2D _HBlur;
|
|
float4 _HBlur_TexelSize;
|
|
float _Size;
|
|
|
|
half4 frag( v2f i ) : COLOR
|
|
{
|
|
float alpha = tex2D(_MainTex, i.uvmain).a * i.color.a;
|
|
half4 sum = half4(0,0,0,0);
|
|
|
|
#define GRABPIXEL(weight,kernelx) tex2Dproj( _HBlur, UNITY_PROJ_COORD(float4(i.uvgrab.x + _HBlur_TexelSize.x * kernelx * _Size * alpha, i.uvgrab.y, i.uvgrab.z, i.uvgrab.w))) * weight
|
|
|
|
sum += GRABPIXEL(0.05, -4.0);
|
|
sum += GRABPIXEL(0.09, -3.0);
|
|
sum += GRABPIXEL(0.12, -2.0);
|
|
sum += GRABPIXEL(0.15, -1.0);
|
|
sum += GRABPIXEL(0.18, 0.0);
|
|
sum += GRABPIXEL(0.15, +1.0);
|
|
sum += GRABPIXEL(0.12, +2.0);
|
|
sum += GRABPIXEL(0.09, +3.0);
|
|
sum += GRABPIXEL(0.05, +4.0);
|
|
|
|
return sum ;
|
|
}
|
|
ENDCG
|
|
}
|
|
|
|
// Vertical blur
|
|
GrabPass
|
|
{
|
|
"_VBlur"
|
|
}
|
|
|
|
Pass
|
|
{
|
|
CGPROGRAM
|
|
#pragma vertex vert
|
|
#pragma fragment frag
|
|
#pragma fragmentoption ARB_precision_hint_fastest
|
|
#include "UnityCG.cginc"
|
|
|
|
struct appdata_t {
|
|
float4 vertex : POSITION;
|
|
float2 texcoord: TEXCOORD0;
|
|
float4 color : COLOR;
|
|
};
|
|
|
|
struct v2f {
|
|
float4 vertex : POSITION;
|
|
float4 uvgrab : TEXCOORD0;
|
|
float2 uvmain : TEXCOORD1;
|
|
float4 color : COLOR;
|
|
};
|
|
|
|
sampler2D _MainTex;
|
|
float4 _MainTex_ST;
|
|
|
|
v2f vert (appdata_t v) {
|
|
v2f o;
|
|
o.vertex = UnityObjectToClipPos(v.vertex);
|
|
|
|
#if UNITY_UV_STARTS_AT_TOP
|
|
float scale = -1.0;
|
|
#else
|
|
float scale = 1.0;
|
|
#endif
|
|
|
|
o.uvgrab.xy = (float2(o.vertex.x, o.vertex.y * scale) + o.vertex.w) * 0.5;
|
|
o.uvgrab.zw = o.vertex.zw;
|
|
|
|
o.uvmain = TRANSFORM_TEX(v.texcoord, _MainTex);
|
|
o.color = v.color;
|
|
return o;
|
|
}
|
|
|
|
sampler2D _VBlur;
|
|
float4 _VBlur_TexelSize;
|
|
float _Size;
|
|
//fixed4 _TintColor;
|
|
|
|
half4 frag( v2f i ) : COLOR
|
|
{
|
|
float alpha = tex2D(_MainTex, i.uvmain).a * i.color.a;
|
|
half4 sum = half4(0,0,0,0);
|
|
|
|
#define GRABPIXEL(weight,kernely) tex2Dproj( _VBlur, UNITY_PROJ_COORD(float4(i.uvgrab.x, i.uvgrab.y + _VBlur_TexelSize.y * kernely * _Size * alpha, i.uvgrab.z, i.uvgrab.w))) * weight
|
|
|
|
sum += GRABPIXEL(0.05, -4.0);
|
|
sum += GRABPIXEL(0.09, -3.0);
|
|
sum += GRABPIXEL(0.12, -2.0);
|
|
sum += GRABPIXEL(0.15, -1.0);
|
|
sum += GRABPIXEL(0.18, 0.0);
|
|
sum += GRABPIXEL(0.15, +1.0);
|
|
sum += GRABPIXEL(0.12, +2.0);
|
|
sum += GRABPIXEL(0.09, +3.0);
|
|
sum += GRABPIXEL(0.05, +4.0);
|
|
|
|
return sum + i.color * alpha;
|
|
}
|
|
ENDCG
|
|
}
|
|
}
|
|
}
|
|
} |