Initial Commit

This commit is contained in:
Simeon Radivoev 2022-02-12 12:53:50 +02:00
commit ee5c2f922d
Signed by: simeonradivoev
GPG key ID: 7611A451D2A5D37A
2255 changed files with 547750 additions and 0 deletions

View file

@ -0,0 +1,137 @@
Shader "Distortion"
{
Properties
{
_Refraction ("Refraction", Range (0.00, 100.0)) = 1.0
_Power ("Power", Range (1.00, 10.0)) = 1.0
_AlphaPower ("Vertex Alpha Power", Range (1.00, 10.0)) = 1.0
_BumpMap( "Normal Map", 2D ) = "bump" {}
_Cull ( "Face Culling", Int ) = 2
}
SubShader
{
Tags { "Queue" = "Transparent+1" }
GrabPass
{
"_GrabTexture"
}
Pass
{
Cull [_Cull]
CGPROGRAM
#pragma target 3.0
#pragma vertex vert
#pragma fragment frag
#include "UnityCG.cginc"
#include "UnityLightingCommon.cginc"
#include "UnityStandardUtils.cginc"
#include "UnityStandardInput.cginc"
// From Valve's Lab Renderer, Copyright (c) Valve Corporation, All rights reserved.
float3 Vec3TsToWs( float3 vVectorTs, float3 vNormalWs, float3 vTangentUWs, float3 vTangentVWs )
{
float3 vVectorWs;
vVectorWs.xyz = vVectorTs.x * vTangentUWs.xyz;
vVectorWs.xyz += vVectorTs.y * vTangentVWs.xyz;
vVectorWs.xyz += vVectorTs.z * vNormalWs.xyz;
return vVectorWs.xyz; // Return without normalizing
}
// From Valve's Lab Renderer, Copyright (c) Valve Corporation, All rights reserved.
float3 Vec3TsToWsNormalized( float3 vVectorTs, float3 vNormalWs, float3 vTangentUWs, float3 vTangentVWs )
{
return normalize( Vec3TsToWs( vVectorTs.xyz, vNormalWs.xyz, vTangentUWs.xyz, vTangentVWs.xyz ) );
}
struct VS_INPUT
{
float4 vPosition : POSITION;
float3 vNormal : NORMAL;
float2 vTexcoord0 : TEXCOORD0;
float4 vTangentUOs_flTangentVSign : TANGENT;
float4 vColor : COLOR;
};
struct PS_INPUT
{
float4 vGrabPos : TEXCOORD0;
float4 vPos : SV_POSITION;
float4 vColor : COLOR;
float2 vTexCoord0 : TEXCOORD1;
float3 vNormalWs : TEXCOORD2;
float3 vTangentUWs : TEXCOORD3;
float3 vTangentVWs : TEXCOORD4;
};
PS_INPUT vert(VS_INPUT i)
{
PS_INPUT o;
// Clip space position
o.vPos = UnityObjectToClipPos(i.vPosition);
// Grab position
o.vGrabPos = ComputeGrabScreenPos(o.vPos);
// World space normal
o.vNormalWs = UnityObjectToWorldNormal(i.vNormal);
// Tangent
o.vTangentUWs.xyz = UnityObjectToWorldDir( i.vTangentUOs_flTangentVSign.xyz ); // World space tangentU
o.vTangentVWs.xyz = cross( o.vNormalWs.xyz, o.vTangentUWs.xyz ) * i.vTangentUOs_flTangentVSign.w;
// Texture coordinates
o.vTexCoord0.xy = i.vTexcoord0.xy;
// Color
o.vColor = i.vColor;
return o;
}
sampler2D _GrabTexture;
float _Refraction;
float _Power;
float _AlphaPower;
float4 frag(PS_INPUT i) : SV_Target
{
// Tangent space normals
float3 vNormalTs = UnpackScaleNormal( tex2D( _BumpMap, i.vTexCoord0.xy ), 1 );
// Tangent space -> World space
float3 vNormalWs = Vec3TsToWsNormalized( vNormalTs.xyz, i.vNormalWs.xyz, i.vTangentUWs.xyz, i.vTangentVWs.xyz );
// World space -> View space
float3 vNormalVs = normalize(mul((float3x3)UNITY_MATRIX_V, vNormalWs));
// Calculate offset
float2 offset = vNormalVs.xy * _Refraction;
offset *= pow(length(vNormalVs.xy), _Power);
// Scale to pixel size
offset /= float2(_ScreenParams.x, _ScreenParams.y);
// Scale with screen depth
offset /= i.vPos.z;
// Scale with vertex alpha
offset *= pow(i.vColor.a, _AlphaPower);
// Sample grab texture
float4 vDistortColor = tex2Dproj(_GrabTexture, i.vGrabPos + float4(offset, 0.0, 0.0));
// Debug normals
// return float4(vNormalVs * 0.5 + 0.5, 1);
return vDistortColor;
}
ENDCG
}
}
}

View file

@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 7fb7a552557bbda44a7386dc86c97e1d
ShaderImporter:
externalObjects: {}
defaultTextures: []
nonModifiableTextures: []
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,78 @@
#include "UnityCG.cginc"
// Object rendering things
float4x4 _NonJitteredVP;
float4x4 _PreviousVP;
float4x4 _PreviousM;
bool _HasLastPositionData;
bool _ForceNoMotion;
float _MotionVectorDepthBias;
struct MotionVectorData
{
float4 transferPos : TEXCOORD0;
float4 transferPosOld : TEXCOORD1;
float4 pos : SV_POSITION;
UNITY_VERTEX_OUTPUT_STEREO
};
struct MotionVertexInput
{
float4 vertex : POSITION;
float3 oldPos : TEXCOORD4;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
MotionVectorData VertMotionVectors(MotionVertexInput v)
{
MotionVectorData o;
UNITY_SETUP_INSTANCE_ID(v);
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
o.pos = UnityFlipSprite(v.vertex, _Flip);
o.pos = UnityObjectToClipPos(o.pos);
#ifdef PIXELSNAP_ON
o.pos = UnityPixelSnap (o.pos);
#endif
// this works around an issue with dynamic batching
// potentially remove in 5.4 when we use instancing
#if defined(UNITY_REVERSED_Z)
o.pos.z -= _MotionVectorDepthBias * o.pos.w;
#else
o.pos.z += _MotionVectorDepthBias * o.pos.w;
#endif
o.transferPos = UnityFlipSprite(v.vertex, _Flip);
o.transferPosOld = UnityFlipSprite(v.vertex, _Flip);
#if defined(USING_STEREO_MATRICES)
o.transferPos = mul(_StereoNonJitteredVP[unity_StereoEyeIndex], mul(unity_ObjectToWorld, o.transferPosOld));
o.transferPosOld = mul(_StereoPreviousVP[unity_StereoEyeIndex], mul(_PreviousM, _HasLastPositionData ? float4(v.oldPos, 1) : o.transferPosOld));
#else
o.transferPos = mul(_NonJitteredVP, mul(unity_ObjectToWorld, o.transferPos));
o.transferPosOld = mul(_PreviousVP, mul(_PreviousM, _HasLastPositionData ? float4(v.oldPos, 1) : o.transferPosOld));
#endif
#ifdef PIXELSNAP_ON
o.transferPos = UnityPixelSnap (o.transferPos);
o.transferPosOld = UnityPixelSnap (o.transferPos);
#endif
return o;
}
half4 FragMotionVectors(MotionVectorData i) : SV_Target
{
float3 hPos = (i.transferPos.xyz / i.transferPos.w);
float3 hPosOld = (i.transferPosOld.xyz / i.transferPosOld.w);
// V is the viewport position at this pixel in the range 0 to 1.
float2 vPos = (hPos.xy + 1.0f) / 2.0f;
float2 vPosOld = (hPosOld.xy + 1.0f) / 2.0f;
#if UNITY_UV_STARTS_AT_TOP
vPos.y = 1.0 - vPos.y;
vPosOld.y = 1.0 - vPosOld.y;
#endif
half2 uvDiff = vPos - vPosOld;
return lerp(half4(uvDiff, 0, 1), 0, (half)_ForceNoMotion);
}

View file

@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 26c7d3652df0c3345bffe73025a8f0f2
ShaderImporter:
externalObjects: {}
defaultTextures: []
nonModifiableTextures: []
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,48 @@
Shader "Sprites/Default (HDR)"
{
Properties
{
[PerRendererData] _MainTex("Sprite Texture", 2D) = "white" {}
[HDR]_Color("Tint", Color) = (1,1,1,1)
[MaterialToggle] PixelSnap("Pixel snap", Float) = 0
[HideInInspector] _RendererColor("RendererColor", Color) = (1,1,1,1)
[HideInInspector] _Flip("Flip", Vector) = (1,1,1,1)
[PerRendererData] _AlphaTex("External Alpha", 2D) = "white" {}
[PerRendererData] _EnableExternalAlpha("Enable External Alpha", Float) = 0
}
SubShader
{
Tags
{
"IgnoreProjector" = "True"
"RenderType" = "Transparent"
"PreviewType" = "Plane"
"CanUseSpriteAtlas" = "True"
}
Cull Off
Pass
{
Name "Sprite"
Tags
{
"Queue" = "Transparent"
"LightMode" = "ForwardBase"
}
Lighting Off
ZWrite Off
Blend One OneMinusSrcAlpha
CGPROGRAM
#pragma vertex SpriteVert
#pragma fragment SpriteFrag
#pragma target 2.0
#pragma multi_compile_instancing
#pragma multi_compile _ PIXELSNAP_ON
#pragma multi_compile _ ETC1_EXTERNAL_ALPHA
#include "UnitySprites.cginc"
ENDCG
}
}
}

View file

@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 17fc704a6c14bb043a9f976309cd51d3
ShaderImporter:
externalObjects: {}
defaultTextures: []
nonModifiableTextures: []
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,65 @@
// Unity built-in shader source. Copyright (c) 2016 Unity Technologies. MIT license (see license.txt)
Shader "Sprites/Default (Motion Blured, Light Blocker)"
{
Properties
{
[PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {}
_Color ("Tint", Color) = (1,1,1,1)
[MaterialToggle] PixelSnap ("Pixel snap", Float) = 0
[HideInInspector] _RendererColor ("RendererColor", Color) = (1,1,1,1)
[HideInInspector] _Flip ("Flip", Vector) = (1,1,1,1)
[PerRendererData] _AlphaTex ("External Alpha", 2D) = "white" {}
[PerRendererData] _EnableExternalAlpha ("Enable External Alpha", Float) = 0
_LightBlockColor ("Light Block Color",Color) = (1,1,1,1)
_TextureWeight ("Texture Weight",Range(0,1)) = 1
}
SubShader
{
Tags
{
"RenderType" = "LightBlocker"
"IgnoreProjector" = "True"
"PreviewType" = "Plane"
"CanUseSpriteAtlas" = "True"
}
Cull Off
Pass
{
Name "LightBlock"
Tags
{
"LightMode" = "LightBlocker"
}
Lighting Off
ZWrite Off
Blend One OneMinusSrcAlpha
CGPROGRAM
#pragma vertex SpriteVert
#pragma fragment SpriteFragCustom
#pragma target 2.0
#pragma multi_compile_instancing
#pragma multi_compile _ PIXELSNAP_ON
#pragma multi_compile _ ETC1_EXTERNAL_ALPHA
#include "UnitySprites.cginc"
half4 _LightBlockColor;
fixed4 SpriteFragCustom(v2f IN) : SV_Target
{
fixed4 c = SpriteFrag(IN);
c *= _LightBlockColor;
return c;
}
ENDCG
}
UsePass "Sprites/Default (Motion Blured)/Sprite"
UsePass "Sprites/Default (Motion Blured)/SpriteMotionVectors"
}
}

View file

@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: 1a1a9d4463d8896498dc1a9442b59c92
ShaderImporter:
externalObjects: {}
defaultTextures: []
nonModifiableTextures: []
userData:
assetBundleName:
assetBundleVariant:

View file

@ -0,0 +1,73 @@
// Unity built-in shader source. Copyright (c) 2016 Unity Technologies. MIT license (see license.txt)
Shader "Sprites/Default (Motion Blured)"
{
Properties
{
[PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {}
_Color ("Tint", Color) = (1,1,1,1)
[MaterialToggle] PixelSnap ("Pixel snap", Float) = 0
[HideInInspector] _RendererColor ("RendererColor", Color) = (1,1,1,1)
[HideInInspector] _Flip ("Flip", Vector) = (1,1,1,1)
[PerRendererData] _AlphaTex ("External Alpha", 2D) = "white" {}
[PerRendererData] _EnableExternalAlpha ("Enable External Alpha", Float) = 0
_LightBlockColor("Light Block Color",Color) = (1,1,1,1)
}
SubShader
{
Tags
{
"IgnoreProjector"="True"
"RenderType"="Transparent"
"PreviewType"="Plane"
"CanUseSpriteAtlas"="True"
}
Cull Off
Pass
{
Name "Sprite"
Tags
{
"Queue"="Geometry"
"LightMode" = "ForwardBase"
}
Lighting Off
ZWrite Off
Blend One OneMinusSrcAlpha
CGPROGRAM
#pragma vertex SpriteVert
#pragma fragment SpriteFrag
#pragma target 2.0
#pragma multi_compile_instancing
#pragma multi_compile _ PIXELSNAP_ON
#pragma multi_compile _ ETC1_EXTERNAL_ALPHA
#include "UnitySprites.cginc"
ENDCG
}
Pass
{
Name "SpriteMotionVectors"
Tags
{
"LightMode" = "MotionVectors"
"Queue"="Transparent"
}
ZTest LEqual
ZWrite Off
CGPROGRAM
#pragma vertex VertMotionVectors
#pragma fragment FragMotionVectors
#pragma target 3.5
#pragma multi_compile_instancing
#include "UnitySprites.cginc"
#include "Motion.cginc"
ENDCG
}
}
}

View file

@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: d34c3265a1a712646889f4cc5cc2301b
ShaderImporter:
externalObjects: {}
defaultTextures: []
nonModifiableTextures: []
userData:
assetBundleName:
assetBundleVariant: