diff --git a/TheCauldron/Assembly-CSharp-Editor.csproj b/TheCauldron/Assembly-CSharp-Editor.csproj
index a3ba8f8..14e42cd 100644
--- a/TheCauldron/Assembly-CSharp-Editor.csproj
+++ b/TheCauldron/Assembly-CSharp-Editor.csproj
@@ -19,7 +19,7 @@
full
false
Temp\bin\Debug\
- DEBUG;TRACE;UNITY_5_3_1;UNITY_5_3;UNITY_5;ENABLE_NEW_BUGREPORTER;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_FRAME_DEBUGGER;ENABLE_GENERICS;ENABLE_HOME_SCREEN;ENABLE_IMAGEEFFECTS;ENABLE_LIGHT_PROBES_LEGACY;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_PLUGIN_INSPECTOR;ENABLE_SHADOWS;ENABLE_SINGLE_INSTANCE_BUILD_SETTING;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_SPRITE_POLYGON;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;INCLUDE_IL2CPP;INCLUDE_DIRECTX12;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_LOCALIZATION;ENABLE_ANDROID_ATLAS_ETC1_COMPRESSION;ENABLE_EDITOR_TESTS_RUNNER;UNITY_STANDALONE_OSX;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_GAMECENTER;ENABLE_TEXTUREID_MAP;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_LOG_MIXED_STACKTRACE;ENABLE_UNITYWEBREQUEST;ENABLE_CLUSTERINPUT;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;ENABLE_PROFILER;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_OSX
+ DEBUG;TRACE;UNITY_5_3_2;UNITY_5_3;UNITY_5;ENABLE_NEW_BUGREPORTER;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_FRAME_DEBUGGER;ENABLE_GENERICS;ENABLE_HOME_SCREEN;ENABLE_IMAGEEFFECTS;ENABLE_LIGHT_PROBES_LEGACY;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_PLUGIN_INSPECTOR;ENABLE_SHADOWS;ENABLE_SINGLE_INSTANCE_BUILD_SETTING;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_SPRITE_POLYGON;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;INCLUDE_IL2CPP;INCLUDE_DIRECTX12;PLATFORM_SUPPORTS_MONO;ENABLE_LOCALIZATION;ENABLE_ANDROID_ATLAS_ETC1_COMPRESSION;ENABLE_EDITOR_TESTS_RUNNER;UNITY_ANDROID;UNITY_ANDROID_API;ENABLE_SUBSTANCE;ENABLE_TEXTUREID_MAP;ENABLE_EGL;ENABLE_NETWORK;ENABLE_RUNTIME_GI;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_LOG_MIXED_STACKTRACE;ENABLE_UNITYWEBREQUEST;PLATFORM_SUPPORTS_ADS_ID;ENABLE_UNITYADS_RUNTIME;UNITY_UNITYADS_API;ENABLE_MONO;ENABLE_PROFILER;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_OSX;ENABLE_DUCK_TYPING
prompt
4
0169
@@ -45,6 +45,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -52,28 +74,134 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
- /Applications/Unity/Unity.app/Contents/UnityExtensions/Unity/Networking/UnityEngine.Networking.dll
+
+
+
+
+
+
+ /Applications/Unity/Unity.app/Contents/UnityExtensions/Unity/Advertisements/Editor/UnityEditor.Advertisements.dll
-
- /Applications/Unity/Unity.app/Contents/UnityExtensions/Unity/Networking/Editor/UnityEditor.Networking.dll
+
+ /Applications/Unity/Unity.app/Contents/UnityExtensions/Unity/EditorTestsRunner/Editor/nunit.framework.dll
+
+
+ /Applications/Unity/Unity.app/Contents/UnityExtensions/Unity/EditorTestsRunner/Editor/UnityEditor.EditorTestsRunner.dll
/Applications/Unity/Unity.app/Contents/UnityExtensions/Unity/GUISystem/UnityEngine.UI.dll
@@ -81,14 +209,11 @@
/Applications/Unity/Unity.app/Contents/UnityExtensions/Unity/GUISystem/Editor/UnityEditor.UI.dll
-
- /Applications/Unity/Unity.app/Contents/UnityExtensions/Unity/Advertisements/Editor/UnityEditor.Advertisements.dll
-
-
- /Applications/Unity/Unity.app/Contents/UnityExtensions/Unity/EditorTestsRunner/Editor/nunit.framework.dll
+
+ /Applications/Unity/Unity.app/Contents/UnityExtensions/Unity/Networking/UnityEngine.Networking.dll
-
- /Applications/Unity/Unity.app/Contents/UnityExtensions/Unity/EditorTestsRunner/Editor/UnityEditor.EditorTestsRunner.dll
+
+ /Applications/Unity/Unity.app/Contents/UnityExtensions/Unity/Networking/Editor/UnityEditor.Networking.dll
/Applications/Unity/Unity.app/Contents/UnityExtensions/Unity/TreeEditor/Editor/UnityEditor.TreeEditor.dll
@@ -116,6 +241,8 @@
+
+ {12F8B266-CCBD-8AC2-01D4-3820EDE4347E} Assembly-CSharp-firstpass
{C8BE2B5A-A1A7-FEA1-7152-C2165E8E6A60} Assembly-CSharp
diff --git a/TheCauldron/Assembly-CSharp-firstpass.csproj b/TheCauldron/Assembly-CSharp-firstpass.csproj
new file mode 100644
index 0000000..966838d
--- /dev/null
+++ b/TheCauldron/Assembly-CSharp-firstpass.csproj
@@ -0,0 +1,206 @@
+
+
+
+ Debug
+ AnyCPU
+ 10.0.20506
+ 2.0
+
+ {12F8B266-CCBD-8AC2-01D4-3820EDE4347E}
+ Library
+ Properties
+ Assembly-CSharp-firstpass
+ v3.5
+ 512
+ Assets
+
+
+ true
+ full
+ false
+ Temp\bin\Debug\
+ DEBUG;TRACE;UNITY_5_3_2;UNITY_5_3;UNITY_5;ENABLE_NEW_BUGREPORTER;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_FRAME_DEBUGGER;ENABLE_GENERICS;ENABLE_HOME_SCREEN;ENABLE_IMAGEEFFECTS;ENABLE_LIGHT_PROBES_LEGACY;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_PLUGIN_INSPECTOR;ENABLE_SHADOWS;ENABLE_SINGLE_INSTANCE_BUILD_SETTING;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_SPRITE_POLYGON;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;INCLUDE_IL2CPP;INCLUDE_DIRECTX12;PLATFORM_SUPPORTS_MONO;ENABLE_LOCALIZATION;ENABLE_ANDROID_ATLAS_ETC1_COMPRESSION;ENABLE_EDITOR_TESTS_RUNNER;UNITY_ANDROID;UNITY_ANDROID_API;ENABLE_SUBSTANCE;ENABLE_TEXTUREID_MAP;ENABLE_EGL;ENABLE_NETWORK;ENABLE_RUNTIME_GI;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_LOG_MIXED_STACKTRACE;ENABLE_UNITYWEBREQUEST;PLATFORM_SUPPORTS_ADS_ID;ENABLE_UNITYADS_RUNTIME;UNITY_UNITYADS_API;ENABLE_MONO;ENABLE_PROFILER;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_OSX
+ prompt
+ 4
+ 0169
+
+
+ pdbonly
+ true
+ Temp\bin\Release\
+ prompt
+ 4
+ 0169
+
+
+
+
+
+
+
+ /Applications/Unity/Unity.app/Contents/Frameworks/Managed/UnityEngine.dll
+
+
+ /Applications/Unity/Unity.app/Contents/Frameworks/Managed/UnityEditor.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ /Applications/Unity/Unity.app/Contents/UnityExtensions/Unity/GUISystem/UnityEngine.UI.dll
+
+
+ /Applications/Unity/Unity.app/Contents/UnityExtensions/Unity/Networking/UnityEngine.Networking.dll
+
+
+
+
+
+
diff --git a/TheCauldron/Assembly-CSharp.csproj b/TheCauldron/Assembly-CSharp.csproj
index 142f83d..8839ad6 100644
--- a/TheCauldron/Assembly-CSharp.csproj
+++ b/TheCauldron/Assembly-CSharp.csproj
@@ -19,7 +19,7 @@
full
false
Temp\bin\Debug\
- DEBUG;TRACE;UNITY_5_3_1;UNITY_5_3;UNITY_5;ENABLE_NEW_BUGREPORTER;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_FRAME_DEBUGGER;ENABLE_GENERICS;ENABLE_HOME_SCREEN;ENABLE_IMAGEEFFECTS;ENABLE_LIGHT_PROBES_LEGACY;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_PLUGIN_INSPECTOR;ENABLE_SHADOWS;ENABLE_SINGLE_INSTANCE_BUILD_SETTING;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_SPRITE_POLYGON;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;INCLUDE_IL2CPP;INCLUDE_DIRECTX12;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_LOCALIZATION;ENABLE_ANDROID_ATLAS_ETC1_COMPRESSION;ENABLE_EDITOR_TESTS_RUNNER;UNITY_STANDALONE_OSX;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_GAMECENTER;ENABLE_TEXTUREID_MAP;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_LOG_MIXED_STACKTRACE;ENABLE_UNITYWEBREQUEST;ENABLE_CLUSTERINPUT;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;ENABLE_PROFILER;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_OSX
+ DEBUG;TRACE;UNITY_5_3_2;UNITY_5_3;UNITY_5;ENABLE_NEW_BUGREPORTER;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_FRAME_DEBUGGER;ENABLE_GENERICS;ENABLE_HOME_SCREEN;ENABLE_IMAGEEFFECTS;ENABLE_LIGHT_PROBES_LEGACY;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_PLUGIN_INSPECTOR;ENABLE_SHADOWS;ENABLE_SINGLE_INSTANCE_BUILD_SETTING;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_SPRITE_POLYGON;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;INCLUDE_IL2CPP;INCLUDE_DIRECTX12;PLATFORM_SUPPORTS_MONO;ENABLE_LOCALIZATION;ENABLE_ANDROID_ATLAS_ETC1_COMPRESSION;ENABLE_EDITOR_TESTS_RUNNER;UNITY_ANDROID;UNITY_ANDROID_API;ENABLE_SUBSTANCE;ENABLE_TEXTUREID_MAP;ENABLE_EGL;ENABLE_NETWORK;ENABLE_RUNTIME_GI;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_LOG_MIXED_STACKTRACE;ENABLE_UNITYWEBREQUEST;PLATFORM_SUPPORTS_ADS_ID;ENABLE_UNITYADS_RUNTIME;UNITY_UNITYADS_API;ENABLE_MONO;ENABLE_PROFILER;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_OSX
prompt
4
0169
@@ -45,6 +45,17 @@
+
+
+
+
+
+
+
+
+
+
+
@@ -120,27 +131,120 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
- /Applications/Unity/Unity.app/Contents/UnityExtensions/Unity/Networking/UnityEngine.Networking.dll
-
+
+
+
+
+
/Applications/Unity/Unity.app/Contents/UnityExtensions/Unity/GUISystem/UnityEngine.UI.dll
+
+ /Applications/Unity/Unity.app/Contents/UnityExtensions/Unity/Networking/UnityEngine.Networking.dll
+
+
+
+
+ {12F8B266-CCBD-8AC2-01D4-3820EDE4347E} Assembly-CSharp-firstpass
|<---------dstP---------->|
+ |
+ span center
+
+----------------------------------------------------------------------------*/
+ float dstN = horzSpan ? pos.x - posN.x : pos.y - posN.y;
+ float dstP = horzSpan ? posP.x - pos.x : posP.y - pos.y;
+ bool directionN = dstN < dstP;
+ #if FXAA_DEBUG_NEGPOS
+ if(directionN) return FxaaFilterReturn(FxaaFloat3(1.0, 0.0, 0.0));
+ else return FxaaFilterReturn(FxaaFloat3(0.0, 0.0, 1.0));
+ #endif
+ lumaEndN = directionN ? lumaEndN : lumaEndP;
+
+/*----------------------------------------------------------------------------
+ CHECK IF PIXEL IS IN SECTION OF SPAN WHICH GETS NO FILTERING
+------------------------------------------------------------------------------
+If both the pair luma at the end of the span (lumaEndN)
+and middle pixel luma (lumaM)
+are on the same side of the middle pair average luma (lumaN),
+then don't filter.
+
+Cases,
+
+(1.) "L",
+
+ lumaM
+ |
+ V XXXXXXXX <- other line averaged
+ XXXXXXX[X]XXXXXXXXXXX <- source pixel line
+ | . |
+ --------------------------
+ [ ]xxxxxx[x]xx[X]XXXXXX <- pair average
+ --------------------------
+ ^ ^ ^ ^
+ | | | |
+ . |<---->|<---------- no filter region
+ . | | |
+ . center | |
+ . | lumaEndN
+ . | .
+ . lumaN .
+ . .
+ |<--- span -->|
+
+
+(2.) "^" and "-",
+
+ <- other line averaged
+ XXXXX[X]XXX <- source pixel line
+ | | |
+ --------------------------
+ [ ]xxxx[x]xx[ ] <- pair average
+ --------------------------
+ | | |
+ |<--->|<--->|<---------- filter both sides
+
+
+(3.) "v" and inverse of "-",
+
+ XXXXXX XXXXXXXXX <- other line averaged
+ XXXXXXXXXXX[X]XXXXXXXXXXXX <- source pixel line
+ | | |
+ --------------------------
+ XXXX[X]xxxx[x]xx[X]XXXXXXX <- pair average
+ --------------------------
+ | | |
+ |<--->|<--->|<---------- don't filter both!
+
+
+Note the "v" case for FXAA requires no filtering.
+This is because the inverse of the "-" case is the "v".
+Filtering "v" case turns open spans like this,
+
+ XXXXXXXXX
+
+Into this (which is not desired),
+
+ x+. .+x
+ XXXXXXXXX
+
+----------------------------------------------------------------------------*/
+ if(((lumaM - lumaN) < 0.0) == ((lumaEndN - lumaN) < 0.0))
+ lengthSign = 0.0;
+
+/*----------------------------------------------------------------------------
+ COMPUTE SUB-PIXEL OFFSET AND FILTER SPAN
+------------------------------------------------------------------------------
+FXAA filters using a bilinear texture fetch offset
+from the middle pixel M towards the center of the pair (NM below).
+Maximum filtering will be half way between pair.
+Reminder, at this point in the code,
+the {N,M} pair is also reused for all cases: {S,M}, {W,M}, and {E,M}.
+
+ +-------+
+ | | 0.5 offset
+ | N | |
+ | | V
+ +-------+....---
+ | |
+ | M...|....---
+ | | ^
+ +-------+ |
+ . . 0.0 offset
+ . S .
+ . .
+ .........
+
+Position on span is used to compute sub-pixel filter offset using simple ramp,
+
+ posN posP
+ |\ |<------- 0.5 pixel offset into pair pixel
+ | \ |
+ | \ |
+ ---.......|...\..........|<------- 0.25 pixel offset into pair pixel
+ ^ | ^\ |
+ | | | \ |
+ V | | \ |
+ ---.......|===|==========|<------- 0.0 pixel offset (ie M pixel)
+ ^ . | ^ .
+ | . pos | .
+ | . . | .
+ | . . center .
+ | . . .
+ | |<->|<---------.-------- dstN
+ | . . .
+ | . |<-------->|<------- dstP
+ | . .
+ | |<------------>|<------- spanLength
+ |
+ subPixelOffset
+
+----------------------------------------------------------------------------*/
+ float spanLength = (dstP + dstN);
+ dstN = directionN ? dstN : dstP;
+ float subPixelOffset = (0.5 + (dstN * (-1.0/spanLength))) * lengthSign;
+ #if FXAA_DEBUG_OFFSET
+ float ox = horzSpan ? 0.0 : subPixelOffset*2.0/rcpFrame.x;
+ float oy = horzSpan ? subPixelOffset*2.0/rcpFrame.y : 0.0;
+ if(ox < 0.0) return FxaaFilterReturn(
+ FxaaLerp3(FxaaToFloat3(lumaO),
+ FxaaFloat3(1.0, 0.0, 0.0), -ox));
+ if(ox > 0.0) return FxaaFilterReturn(
+ FxaaLerp3(FxaaToFloat3(lumaO),
+ FxaaFloat3(0.0, 0.0, 1.0), ox));
+ if(oy < 0.0) return FxaaFilterReturn(
+ FxaaLerp3(FxaaToFloat3(lumaO),
+ FxaaFloat3(1.0, 0.6, 0.2), -oy));
+ if(oy > 0.0) return FxaaFilterReturn(
+ FxaaLerp3(FxaaToFloat3(lumaO),
+ FxaaFloat3(0.2, 0.6, 1.0), oy));
+ return FxaaFilterReturn(FxaaFloat3(lumaO, lumaO, lumaO));
+ #endif
+ float3 rgbF = FxaaTexLod0(tex, FxaaFloat2(
+ pos.x + (horzSpan ? 0.0 : subPixelOffset),
+ pos.y + (horzSpan ? subPixelOffset : 0.0))).xyz;
+ #if FXAA_SUBPIX == 0
+ return FxaaFilterReturn(rgbF);
+ #else
+ return FxaaFilterReturn(FxaaLerp3(rgbL, rgbF, blendL));
+ #endif
+}
+
+
+
+struct v2f {
+ float4 pos : SV_POSITION;
+ float2 uv : TEXCOORD0;
+};
+
+v2f vert (appdata_img v)
+{
+ v2f o;
+ o.pos = mul (UNITY_MATRIX_MVP, v.vertex);
+ o.uv = v.texcoord.xy;
+ return o;
+}
+
+sampler2D _MainTex;
+float4 _MainTex_TexelSize;
+
+float4 frag (v2f i) : SV_Target
+{
+ return float4(FxaaPixelShader(i.uv.xy, _MainTex, _MainTex_TexelSize.xy).xyz, 0.0f);
+}
+
+ENDCG
+ }
+}
+
+Fallback "Hidden/FXAA II"
+}
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/FXAAPreset2.shader.meta b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/FXAAPreset2.shader.meta
new file mode 100644
index 0000000..a0d603d
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/FXAAPreset2.shader.meta
@@ -0,0 +1,4 @@
+fileFormatVersion: 2
+guid: 6f1418cffd12146f2a83be795f6fa5a7
+ShaderImporter:
+ userData:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/FXAAPreset3.shader b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/FXAAPreset3.shader
new file mode 100644
index 0000000..787acd6
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/FXAAPreset3.shader
@@ -0,0 +1,826 @@
+Shader "Hidden/FXAA Preset 3" {
+Properties {
+ _MainTex ("Base (RGB)", 2D) = "white" {}
+}
+
+SubShader {
+ Pass {
+ ZTest Always Cull Off ZWrite Off
+
+CGPROGRAM
+#pragma vertex vert
+#pragma fragment frag
+#include "UnityCG.cginc"
+#pragma target 3.0
+
+// Not very practical on consoles/mobile, and PS3 Cg takes ages to compile this :(
+#pragma exclude_renderers xbox360 ps3 gles
+
+#define FXAA_HLSL_3 1
+#define FXAA_PRESET 3
+
+
+// Copyright (c) 2010 NVIDIA Corporation. All rights reserved.
+//
+// TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, THIS SOFTWARE IS PROVIDED
+// *AS IS* AND NVIDIA AND ITS SUPPLIERS DISCLAIM ALL WARRANTIES, EITHER EXPRESS
+// OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY
+// AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL NVIDIA OR ITS SUPPLIERS
+// BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT, OR CONSEQUENTIAL DAMAGES
+// WHATSOEVER (INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS,
+// BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR ANY OTHER PECUNIARY LOSS)
+// ARISING OUT OF THE USE OF OR INABILITY TO USE THIS SOFTWARE, EVEN IF NVIDIA HAS
+// BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
+
+/*============================================================================
+
+ FXAA
+
+============================================================================*/
+
+/*============================================================================
+ API PORTING
+============================================================================*/
+#ifndef FXAA_GLSL_120
+ #define FXAA_GLSL_120 0
+#endif
+#ifndef FXAA_GLSL_130
+ #define FXAA_GLSL_130 0
+#endif
+#ifndef FXAA_HLSL_3
+ #define FXAA_HLSL_3 0
+#endif
+#ifndef FXAA_HLSL_4
+ #define FXAA_HLSL_4 0
+#endif
+/*--------------------------------------------------------------------------*/
+#if FXAA_GLSL_120
+ // Requires,
+ // #version 120
+ // #extension GL_EXT_gpu_shader4 : enable
+ #define int2 ivec2
+ #define float2 vec2
+ #define float3 vec3
+ #define float4 vec4
+ #define FxaaBool3 bvec3
+ #define FxaaInt2 ivec2
+ #define FxaaFloat2 vec2
+ #define FxaaFloat3 vec3
+ #define FxaaFloat4 vec4
+ #define FxaaBool2Float(a) mix(0.0, 1.0, (a))
+ #define FxaaPow3(x, y) pow(x, y)
+ #define FxaaSel3(f, t, b) mix((f), (t), (b))
+ #define FxaaTex sampler2D
+#endif
+/*--------------------------------------------------------------------------*/
+#if FXAA_GLSL_130
+ // Requires "#version 130" or better
+ #define int2 ivec2
+ #define float2 vec2
+ #define float3 vec3
+ #define float4 vec4
+ #define FxaaBool3 bvec3
+ #define FxaaInt2 ivec2
+ #define FxaaFloat2 vec2
+ #define FxaaFloat3 vec3
+ #define FxaaFloat4 vec4
+ #define FxaaBool2Float(a) mix(0.0, 1.0, (a))
+ #define FxaaPow3(x, y) pow(x, y)
+ #define FxaaSel3(f, t, b) mix((f), (t), (b))
+ #define FxaaTex sampler2D
+#endif
+/*--------------------------------------------------------------------------*/
+#if FXAA_HLSL_3
+ #define int2 float2
+ #define FxaaInt2 float2
+ #define FxaaFloat2 float2
+ #define FxaaFloat3 float3
+ #define FxaaFloat4 float4
+ #define FxaaBool2Float(a) (a)
+ #define FxaaPow3(x, y) pow(x, y)
+ #define FxaaSel3(f, t, b) ((f)*(!b) + (t)*(b))
+ #define FxaaTex sampler2D
+#endif
+/*--------------------------------------------------------------------------*/
+#if FXAA_HLSL_4
+ #define FxaaInt2 int2
+ #define FxaaFloat2 float2
+ #define FxaaFloat3 float3
+ #define FxaaFloat4 float4
+ #define FxaaBool2Float(a) (a)
+ #define FxaaPow3(x, y) pow(x, y)
+ #define FxaaSel3(f, t, b) ((f)*(!b) + (t)*(b))
+ struct FxaaTex { SamplerState smpl; Texture2D tex; };
+#endif
+/*--------------------------------------------------------------------------*/
+#define FxaaToFloat3(a) FxaaFloat3((a), (a), (a))
+/*--------------------------------------------------------------------------*/
+float4 FxaaTexLod0(FxaaTex tex, float2 pos) {
+ #if FXAA_GLSL_120
+ return texture2DLod(tex, pos.xy, 0.0);
+ #endif
+ #if FXAA_GLSL_130
+ return textureLod(tex, pos.xy, 0.0);
+ #endif
+ #if FXAA_HLSL_3
+ return tex2Dlod(tex, float4(pos.xy, 0.0, 0.0));
+ #endif
+ #if FXAA_HLSL_4
+ return tex.tex.SampleLevel(tex.smpl, pos.xy, 0.0);
+ #endif
+}
+/*--------------------------------------------------------------------------*/
+float4 FxaaTexGrad(FxaaTex tex, float2 pos, float2 grad) {
+ #if FXAA_GLSL_120
+ return texture2DGrad(tex, pos.xy, grad, grad);
+ #endif
+ #if FXAA_GLSL_130
+ return textureGrad(tex, pos.xy, grad, grad);
+ #endif
+ #if FXAA_HLSL_3
+ return tex2Dgrad(tex, pos.xy, grad, grad);
+ #endif
+ #if FXAA_HLSL_4
+ return tex.tex.SampleGrad(tex.smpl, pos.xy, grad, grad);
+ #endif
+}
+/*--------------------------------------------------------------------------*/
+float4 FxaaTexOff(FxaaTex tex, float2 pos, int2 off, float2 rcpFrame) {
+ #if FXAA_GLSL_120
+ return texture2DLodOffset(tex, pos.xy, 0.0, off.xy);
+ #endif
+ #if FXAA_GLSL_130
+ return textureLodOffset(tex, pos.xy, 0.0, off.xy);
+ #endif
+ #if FXAA_HLSL_3
+ return tex2Dlod(tex, float4(pos.xy + (off * rcpFrame), 0, 0));
+ #endif
+ #if FXAA_HLSL_4
+ return tex.tex.SampleLevel(tex.smpl, pos.xy, 0.0, off.xy);
+ #endif
+}
+
+/*============================================================================
+ SRGB KNOBS
+------------------------------------------------------------------------------
+FXAA_SRGB_ROP - Set to 1 when applying FXAA to an sRGB back buffer (DX10/11).
+ This will do the sRGB to linear transform,
+ as ROP will expect linear color from this shader,
+ and this shader works in non-linear color.
+============================================================================*/
+#define FXAA_SRGB_ROP 0
+
+/*============================================================================
+ DEBUG KNOBS
+------------------------------------------------------------------------------
+All debug knobs draw FXAA-untouched pixels in FXAA computed luma (monochrome).
+
+FXAA_DEBUG_PASSTHROUGH - Red for pixels which are filtered by FXAA with a
+ yellow tint on sub-pixel aliasing filtered by FXAA.
+FXAA_DEBUG_HORZVERT - Blue for horizontal edges, gold for vertical edges.
+FXAA_DEBUG_PAIR - Blue/green for the 2 pixel pair choice.
+FXAA_DEBUG_NEGPOS - Red/blue for which side of center of span.
+FXAA_DEBUG_OFFSET - Red/blue for -/+ x, gold/skyblue for -/+ y.
+============================================================================*/
+#ifndef FXAA_DEBUG_PASSTHROUGH
+ #define FXAA_DEBUG_PASSTHROUGH 0
+#endif
+#ifndef FXAA_DEBUG_HORZVERT
+ #define FXAA_DEBUG_HORZVERT 0
+#endif
+#ifndef FXAA_DEBUG_PAIR
+ #define FXAA_DEBUG_PAIR 0
+#endif
+#ifndef FXAA_DEBUG_NEGPOS
+ #define FXAA_DEBUG_NEGPOS 0
+#endif
+#ifndef FXAA_DEBUG_OFFSET
+ #define FXAA_DEBUG_OFFSET 0
+#endif
+/*--------------------------------------------------------------------------*/
+#if FXAA_DEBUG_PASSTHROUGH || FXAA_DEBUG_HORZVERT || FXAA_DEBUG_PAIR
+ #define FXAA_DEBUG 1
+#endif
+#if FXAA_DEBUG_NEGPOS || FXAA_DEBUG_OFFSET
+ #define FXAA_DEBUG 1
+#endif
+#ifndef FXAA_DEBUG
+ #define FXAA_DEBUG 0
+#endif
+
+/*============================================================================
+ COMPILE-IN KNOBS
+------------------------------------------------------------------------------
+FXAA_PRESET - Choose compile-in knob preset 0-5.
+------------------------------------------------------------------------------
+FXAA_EDGE_THRESHOLD - The minimum amount of local contrast required
+ to apply algorithm.
+ 1.0/3.0 - too little
+ 1.0/4.0 - good start
+ 1.0/8.0 - applies to more edges
+ 1.0/16.0 - overkill
+------------------------------------------------------------------------------
+FXAA_EDGE_THRESHOLD_MIN - Trims the algorithm from processing darks.
+ Perf optimization.
+ 1.0/32.0 - visible limit (smaller isn't visible)
+ 1.0/16.0 - good compromise
+ 1.0/12.0 - upper limit (seeing artifacts)
+------------------------------------------------------------------------------
+FXAA_SEARCH_STEPS - Maximum number of search steps for end of span.
+------------------------------------------------------------------------------
+FXAA_SEARCH_ACCELERATION - How much to accelerate search,
+ 1 - no acceleration
+ 2 - skip by 2 pixels
+ 3 - skip by 3 pixels
+ 4 - skip by 4 pixels
+------------------------------------------------------------------------------
+FXAA_SEARCH_THRESHOLD - Controls when to stop searching.
+ 1.0/4.0 - seems to be the best quality wise
+------------------------------------------------------------------------------
+FXAA_SUBPIX_FASTER - Turn on lower quality but faster subpix path.
+ Not recomended, but used in preset 0.
+------------------------------------------------------------------------------
+FXAA_SUBPIX - Toggle subpix filtering.
+ 0 - turn off
+ 1 - turn on
+ 2 - turn on full (ignores FXAA_SUBPIX_TRIM and CAP)
+------------------------------------------------------------------------------
+FXAA_SUBPIX_TRIM - Controls sub-pixel aliasing removal.
+ 1.0/2.0 - low removal
+ 1.0/3.0 - medium removal
+ 1.0/4.0 - default removal
+ 1.0/8.0 - high removal
+ 0.0 - complete removal
+------------------------------------------------------------------------------
+FXAA_SUBPIX_CAP - Insures fine detail is not completely removed.
+ This is important for the transition of sub-pixel detail,
+ like fences and wires.
+ 3.0/4.0 - default (medium amount of filtering)
+ 7.0/8.0 - high amount of filtering
+ 1.0 - no capping of sub-pixel aliasing removal
+============================================================================*/
+#ifndef FXAA_PRESET
+ #define FXAA_PRESET 3
+#endif
+/*--------------------------------------------------------------------------*/
+#if (FXAA_PRESET == 0)
+ #define FXAA_EDGE_THRESHOLD (1.0/4.0)
+ #define FXAA_EDGE_THRESHOLD_MIN (1.0/12.0)
+ #define FXAA_SEARCH_STEPS 2
+ #define FXAA_SEARCH_ACCELERATION 4
+ #define FXAA_SEARCH_THRESHOLD (1.0/4.0)
+ #define FXAA_SUBPIX 1
+ #define FXAA_SUBPIX_FASTER 1
+ #define FXAA_SUBPIX_CAP (2.0/3.0)
+ #define FXAA_SUBPIX_TRIM (1.0/4.0)
+#endif
+/*--------------------------------------------------------------------------*/
+#if (FXAA_PRESET == 1)
+ #define FXAA_EDGE_THRESHOLD (1.0/8.0)
+ #define FXAA_EDGE_THRESHOLD_MIN (1.0/16.0)
+ #define FXAA_SEARCH_STEPS 4
+ #define FXAA_SEARCH_ACCELERATION 3
+ #define FXAA_SEARCH_THRESHOLD (1.0/4.0)
+ #define FXAA_SUBPIX 1
+ #define FXAA_SUBPIX_FASTER 0
+ #define FXAA_SUBPIX_CAP (3.0/4.0)
+ #define FXAA_SUBPIX_TRIM (1.0/4.0)
+#endif
+/*--------------------------------------------------------------------------*/
+#if (FXAA_PRESET == 2)
+ #define FXAA_EDGE_THRESHOLD (1.0/8.0)
+ #define FXAA_EDGE_THRESHOLD_MIN (1.0/24.0)
+ #define FXAA_SEARCH_STEPS 8
+ #define FXAA_SEARCH_ACCELERATION 2
+ #define FXAA_SEARCH_THRESHOLD (1.0/4.0)
+ #define FXAA_SUBPIX 1
+ #define FXAA_SUBPIX_FASTER 0
+ #define FXAA_SUBPIX_CAP (3.0/4.0)
+ #define FXAA_SUBPIX_TRIM (1.0/4.0)
+#endif
+/*--------------------------------------------------------------------------*/
+#if (FXAA_PRESET == 3)
+ #define FXAA_EDGE_THRESHOLD (1.0/8.0)
+ #define FXAA_EDGE_THRESHOLD_MIN (1.0/24.0)
+ #define FXAA_SEARCH_STEPS 16
+ #define FXAA_SEARCH_ACCELERATION 1
+ #define FXAA_SEARCH_THRESHOLD (1.0/4.0)
+ #define FXAA_SUBPIX 1
+ #define FXAA_SUBPIX_FASTER 0
+ #define FXAA_SUBPIX_CAP (3.0/4.0)
+ #define FXAA_SUBPIX_TRIM (1.0/4.0)
+#endif
+/*--------------------------------------------------------------------------*/
+#if (FXAA_PRESET == 4)
+ #define FXAA_EDGE_THRESHOLD (1.0/8.0)
+ #define FXAA_EDGE_THRESHOLD_MIN (1.0/24.0)
+ #define FXAA_SEARCH_STEPS 24
+ #define FXAA_SEARCH_ACCELERATION 1
+ #define FXAA_SEARCH_THRESHOLD (1.0/4.0)
+ #define FXAA_SUBPIX 1
+ #define FXAA_SUBPIX_FASTER 0
+ #define FXAA_SUBPIX_CAP (3.0/4.0)
+ #define FXAA_SUBPIX_TRIM (1.0/4.0)
+#endif
+/*--------------------------------------------------------------------------*/
+#if (FXAA_PRESET == 5)
+ #define FXAA_EDGE_THRESHOLD (1.0/8.0)
+ #define FXAA_EDGE_THRESHOLD_MIN (1.0/24.0)
+ #define FXAA_SEARCH_STEPS 32
+ #define FXAA_SEARCH_ACCELERATION 1
+ #define FXAA_SEARCH_THRESHOLD (1.0/4.0)
+ #define FXAA_SUBPIX 1
+ #define FXAA_SUBPIX_FASTER 0
+ #define FXAA_SUBPIX_CAP (3.0/4.0)
+ #define FXAA_SUBPIX_TRIM (1.0/4.0)
+#endif
+/*--------------------------------------------------------------------------*/
+#define FXAA_SUBPIX_TRIM_SCALE (1.0/(1.0 - FXAA_SUBPIX_TRIM))
+
+/*============================================================================
+ HELPERS
+============================================================================*/
+// Return the luma, the estimation of luminance from rgb inputs.
+// This approximates luma using one FMA instruction,
+// skipping normalization and tossing out blue.
+// FxaaLuma() will range 0.0 to 2.963210702.
+float FxaaLuma(float3 rgb) {
+ return rgb.y * (0.587/0.299) + rgb.x; }
+/*--------------------------------------------------------------------------*/
+float3 FxaaLerp3(float3 a, float3 b, float amountOfA) {
+ return (FxaaToFloat3(-amountOfA) * b) +
+ ((a * FxaaToFloat3(amountOfA)) + b); }
+/*--------------------------------------------------------------------------*/
+// Support any extra filtering before returning color.
+float3 FxaaFilterReturn(float3 rgb) {
+ #if FXAA_SRGB_ROP
+ // Do sRGB encoded value to linear conversion.
+ return FxaaSel3(
+ rgb * FxaaToFloat3(1.0/12.92),
+ FxaaPow3(
+ rgb * FxaaToFloat3(1.0/1.055) + FxaaToFloat3(0.055/1.055),
+ FxaaToFloat3(2.4)),
+ rgb > FxaaToFloat3(0.04045));
+ #else
+ return rgb;
+ #endif
+}
+
+/*============================================================================
+ VERTEX SHADER
+============================================================================*/
+float2 FxaaVertexShader(
+// Both x and y range {-1.0 to 1.0 across screen}.
+float2 inPos) {
+ float2 pos;
+ pos.xy = (inPos.xy * FxaaFloat2(0.5, 0.5)) + FxaaFloat2(0.5, 0.5);
+ return pos; }
+
+/*============================================================================
+
+ PIXEL SHADER
+
+============================================================================*/
+float3 FxaaPixelShader(
+// Output of FxaaVertexShader interpolated across screen.
+// xy -> actual texture position {0.0 to 1.0}
+float2 pos,
+// Input texture.
+FxaaTex tex,
+// RCPFRAME SHOULD PIXEL SHADER CONSTANTS!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
+// {1.0/frameWidth, 1.0/frameHeight}
+float2 rcpFrame) {
+
+/*----------------------------------------------------------------------------
+ EARLY EXIT IF LOCAL CONTRAST BELOW EDGE DETECT LIMIT
+------------------------------------------------------------------------------
+Majority of pixels of a typical image do not require filtering,
+often pixels are grouped into blocks which could benefit from early exit
+right at the beginning of the algorithm.
+Given the following neighborhood,
+
+ N
+ W M E
+ S
+
+If the difference in local maximum and minimum luma (contrast "range")
+is lower than a threshold proportional to the maximum local luma ("rangeMax"),
+then the shader early exits (no visible aliasing).
+This threshold is clamped at a minimum value ("FXAA_EDGE_THRESHOLD_MIN")
+to avoid processing in really dark areas.
+----------------------------------------------------------------------------*/
+ float3 rgbN = FxaaTexOff(tex, pos.xy, FxaaInt2( 0,-1), rcpFrame).xyz;
+ float3 rgbW = FxaaTexOff(tex, pos.xy, FxaaInt2(-1, 0), rcpFrame).xyz;
+ float3 rgbM = FxaaTexOff(tex, pos.xy, FxaaInt2( 0, 0), rcpFrame).xyz;
+ float3 rgbE = FxaaTexOff(tex, pos.xy, FxaaInt2( 1, 0), rcpFrame).xyz;
+ float3 rgbS = FxaaTexOff(tex, pos.xy, FxaaInt2( 0, 1), rcpFrame).xyz;
+ float lumaN = FxaaLuma(rgbN);
+ float lumaW = FxaaLuma(rgbW);
+ float lumaM = FxaaLuma(rgbM);
+ float lumaE = FxaaLuma(rgbE);
+ float lumaS = FxaaLuma(rgbS);
+ float rangeMin = min(lumaM, min(min(lumaN, lumaW), min(lumaS, lumaE)));
+ float rangeMax = max(lumaM, max(max(lumaN, lumaW), max(lumaS, lumaE)));
+ float range = rangeMax - rangeMin;
+ #if FXAA_DEBUG
+ float lumaO = lumaM / (1.0 + (0.587/0.299));
+ #endif
+ if(range < max(FXAA_EDGE_THRESHOLD_MIN, rangeMax * FXAA_EDGE_THRESHOLD)) {
+ #if FXAA_DEBUG
+ return FxaaFilterReturn(FxaaToFloat3(lumaO));
+ #endif
+ return FxaaFilterReturn(rgbM); }
+ #if FXAA_SUBPIX > 0
+ #if FXAA_SUBPIX_FASTER
+ float3 rgbL = (rgbN + rgbW + rgbE + rgbS + rgbM) *
+ FxaaToFloat3(1.0/5.0);
+ #else
+ float3 rgbL = rgbN + rgbW + rgbM + rgbE + rgbS;
+ #endif
+ #endif
+
+/*----------------------------------------------------------------------------
+ COMPUTE LOWPASS
+------------------------------------------------------------------------------
+FXAA computes a local neighborhood lowpass value as follows,
+
+ (N + W + E + S)/4
+
+Then uses the ratio of the contrast range of the lowpass
+and the range found in the early exit check,
+as a sub-pixel aliasing detection filter.
+When FXAA detects sub-pixel aliasing (such as single pixel dots),
+it later blends in "blendL" amount
+of a lowpass value (computed in the next section) to the final result.
+----------------------------------------------------------------------------*/
+ #if FXAA_SUBPIX != 0
+ float lumaL = (lumaN + lumaW + lumaE + lumaS) * 0.25;
+ float rangeL = abs(lumaL - lumaM);
+ #endif
+ #if FXAA_SUBPIX == 1
+ float blendL = max(0.0,
+ (rangeL / range) - FXAA_SUBPIX_TRIM) * FXAA_SUBPIX_TRIM_SCALE;
+ blendL = min(FXAA_SUBPIX_CAP, blendL);
+ #endif
+ #if FXAA_SUBPIX == 2
+ float blendL = rangeL / range;
+ #endif
+ #if FXAA_DEBUG_PASSTHROUGH
+ #if FXAA_SUBPIX == 0
+ float blendL = 0.0;
+ #endif
+ return FxaaFilterReturn(
+ FxaaFloat3(1.0, blendL/FXAA_SUBPIX_CAP, 0.0));
+ #endif
+
+/*----------------------------------------------------------------------------
+ CHOOSE VERTICAL OR HORIZONTAL SEARCH
+------------------------------------------------------------------------------
+FXAA uses the following local neighborhood,
+
+ NW N NE
+ W M E
+ SW S SE
+
+To compute an edge amount for both vertical and horizontal directions.
+Note edge detect filters like Sobel fail on single pixel lines through M.
+FXAA takes the weighted average magnitude of the high-pass values
+for rows and columns as an indication of local edge amount.
+
+A lowpass value for anti-sub-pixel-aliasing is computed as
+ (N+W+E+S+M+NW+NE+SW+SE)/9.
+This full box pattern has higher quality than other options.
+
+Note following this block, both vertical and horizontal cases
+flow in parallel (reusing the horizontal variables).
+----------------------------------------------------------------------------*/
+ float3 rgbNW = FxaaTexOff(tex, pos.xy, FxaaInt2(-1,-1), rcpFrame).xyz;
+ float3 rgbNE = FxaaTexOff(tex, pos.xy, FxaaInt2( 1,-1), rcpFrame).xyz;
+ float3 rgbSW = FxaaTexOff(tex, pos.xy, FxaaInt2(-1, 1), rcpFrame).xyz;
+ float3 rgbSE = FxaaTexOff(tex, pos.xy, FxaaInt2( 1, 1), rcpFrame).xyz;
+ #if (FXAA_SUBPIX_FASTER == 0) && (FXAA_SUBPIX > 0)
+ rgbL += (rgbNW + rgbNE + rgbSW + rgbSE);
+ rgbL *= FxaaToFloat3(1.0/9.0);
+ #endif
+ float lumaNW = FxaaLuma(rgbNW);
+ float lumaNE = FxaaLuma(rgbNE);
+ float lumaSW = FxaaLuma(rgbSW);
+ float lumaSE = FxaaLuma(rgbSE);
+ float edgeVert =
+ abs((0.25 * lumaNW) + (-0.5 * lumaN) + (0.25 * lumaNE)) +
+ abs((0.50 * lumaW ) + (-1.0 * lumaM) + (0.50 * lumaE )) +
+ abs((0.25 * lumaSW) + (-0.5 * lumaS) + (0.25 * lumaSE));
+ float edgeHorz =
+ abs((0.25 * lumaNW) + (-0.5 * lumaW) + (0.25 * lumaSW)) +
+ abs((0.50 * lumaN ) + (-1.0 * lumaM) + (0.50 * lumaS )) +
+ abs((0.25 * lumaNE) + (-0.5 * lumaE) + (0.25 * lumaSE));
+ bool horzSpan = edgeHorz >= edgeVert;
+ #if FXAA_DEBUG_HORZVERT
+ if(horzSpan) return FxaaFilterReturn(FxaaFloat3(1.0, 0.75, 0.0));
+ else return FxaaFilterReturn(FxaaFloat3(0.0, 0.50, 1.0));
+ #endif
+ float lengthSign = horzSpan ? -rcpFrame.y : -rcpFrame.x;
+ if(!horzSpan) lumaN = lumaW;
+ if(!horzSpan) lumaS = lumaE;
+ float gradientN = abs(lumaN - lumaM);
+ float gradientS = abs(lumaS - lumaM);
+ lumaN = (lumaN + lumaM) * 0.5;
+ lumaS = (lumaS + lumaM) * 0.5;
+
+/*----------------------------------------------------------------------------
+ CHOOSE SIDE OF PIXEL WHERE GRADIENT IS HIGHEST
+------------------------------------------------------------------------------
+This chooses a pixel pair.
+For "horzSpan == true" this will be a vertical pair,
+
+ [N] N
+ [M] or [M]
+ S [S]
+
+Note following this block, both {N,M} and {S,M} cases
+flow in parallel (reusing the {N,M} variables).
+
+This pair of image rows or columns is searched below
+in the positive and negative direction
+until edge status changes
+(or the maximum number of search steps is reached).
+----------------------------------------------------------------------------*/
+ bool pairN = gradientN >= gradientS;
+ #if FXAA_DEBUG_PAIR
+ if(pairN) return FxaaFilterReturn(FxaaFloat3(0.0, 0.0, 1.0));
+ else return FxaaFilterReturn(FxaaFloat3(0.0, 1.0, 0.0));
+ #endif
+ if(!pairN) lumaN = lumaS;
+ if(!pairN) gradientN = gradientS;
+ if(!pairN) lengthSign *= -1.0;
+ float2 posN;
+ posN.x = pos.x + (horzSpan ? 0.0 : lengthSign * 0.5);
+ posN.y = pos.y + (horzSpan ? lengthSign * 0.5 : 0.0);
+
+/*----------------------------------------------------------------------------
+ CHOOSE SEARCH LIMITING VALUES
+------------------------------------------------------------------------------
+Search limit (+/- gradientN) is a function of local gradient.
+----------------------------------------------------------------------------*/
+ gradientN *= FXAA_SEARCH_THRESHOLD;
+
+/*----------------------------------------------------------------------------
+ SEARCH IN BOTH DIRECTIONS UNTIL FIND LUMA PAIR AVERAGE IS OUT OF RANGE
+------------------------------------------------------------------------------
+This loop searches either in vertical or horizontal directions,
+and in both the negative and positive direction in parallel.
+This loop fusion is faster than searching separately.
+
+The search is accelerated using FXAA_SEARCH_ACCELERATION length box filter
+via anisotropic filtering with specified texture gradients.
+----------------------------------------------------------------------------*/
+ float2 posP = posN;
+ float2 offNP = horzSpan ?
+ FxaaFloat2(rcpFrame.x, 0.0) :
+ FxaaFloat2(0.0f, rcpFrame.y);
+ float lumaEndN = lumaN;
+ float lumaEndP = lumaN;
+ bool doneN = false;
+ bool doneP = false;
+ #if FXAA_SEARCH_ACCELERATION == 1
+ posN += offNP * FxaaFloat2(-1.0, -1.0);
+ posP += offNP * FxaaFloat2( 1.0, 1.0);
+ #endif
+ #if FXAA_SEARCH_ACCELERATION == 2
+ posN += offNP * FxaaFloat2(-1.5, -1.5);
+ posP += offNP * FxaaFloat2( 1.5, 1.5);
+ offNP *= FxaaFloat2(2.0, 2.0);
+ #endif
+ #if FXAA_SEARCH_ACCELERATION == 3
+ posN += offNP * FxaaFloat2(-2.0, -2.0);
+ posP += offNP * FxaaFloat2( 2.0, 2.0);
+ offNP *= FxaaFloat2(3.0, 3.0);
+ #endif
+ #if FXAA_SEARCH_ACCELERATION == 4
+ posN += offNP * FxaaFloat2(-2.5, -2.5);
+ posP += offNP * FxaaFloat2( 2.5, 2.5);
+ offNP *= FxaaFloat2(4.0, 4.0);
+ #endif
+ for(int i = 0; i < FXAA_SEARCH_STEPS; i++) {
+ #if FXAA_SEARCH_ACCELERATION == 1
+ if(!doneN) lumaEndN =
+ FxaaLuma(FxaaTexLod0(tex, posN.xy).xyz);
+ if(!doneP) lumaEndP =
+ FxaaLuma(FxaaTexLod0(tex, posP.xy).xyz);
+ #else
+ if(!doneN) lumaEndN =
+ FxaaLuma(FxaaTexGrad(tex, posN.xy, offNP).xyz);
+ if(!doneP) lumaEndP =
+ FxaaLuma(FxaaTexGrad(tex, posP.xy, offNP).xyz);
+ #endif
+ doneN = doneN || (abs(lumaEndN - lumaN) >= gradientN);
+ doneP = doneP || (abs(lumaEndP - lumaN) >= gradientN);
+ if(doneN && doneP) break;
+ if(!doneN) posN -= offNP;
+ if(!doneP) posP += offNP; }
+
+/*----------------------------------------------------------------------------
+ HANDLE IF CENTER IS ON POSITIVE OR NEGATIVE SIDE
+------------------------------------------------------------------------------
+FXAA uses the pixel's position in the span
+in combination with the values (lumaEnd*) at the ends of the span,
+to determine filtering.
+
+This step computes which side of the span the pixel is on.
+On negative side if dstN < dstP,
+
+ posN pos posP
+ |-----------|------|------------------|
+ | | | |
+ |<--dstN--->|<---------dstP---------->|
+ |
+ span center
+
+----------------------------------------------------------------------------*/
+ float dstN = horzSpan ? pos.x - posN.x : pos.y - posN.y;
+ float dstP = horzSpan ? posP.x - pos.x : posP.y - pos.y;
+ bool directionN = dstN < dstP;
+ #if FXAA_DEBUG_NEGPOS
+ if(directionN) return FxaaFilterReturn(FxaaFloat3(1.0, 0.0, 0.0));
+ else return FxaaFilterReturn(FxaaFloat3(0.0, 0.0, 1.0));
+ #endif
+ lumaEndN = directionN ? lumaEndN : lumaEndP;
+
+/*----------------------------------------------------------------------------
+ CHECK IF PIXEL IS IN SECTION OF SPAN WHICH GETS NO FILTERING
+------------------------------------------------------------------------------
+If both the pair luma at the end of the span (lumaEndN)
+and middle pixel luma (lumaM)
+are on the same side of the middle pair average luma (lumaN),
+then don't filter.
+
+Cases,
+
+(1.) "L",
+
+ lumaM
+ |
+ V XXXXXXXX <- other line averaged
+ XXXXXXX[X]XXXXXXXXXXX <- source pixel line
+ | . |
+ --------------------------
+ [ ]xxxxxx[x]xx[X]XXXXXX <- pair average
+ --------------------------
+ ^ ^ ^ ^
+ | | | |
+ . |<---->|<---------- no filter region
+ . | | |
+ . center | |
+ . | lumaEndN
+ . | .
+ . lumaN .
+ . .
+ |<--- span -->|
+
+
+(2.) "^" and "-",
+
+ <- other line averaged
+ XXXXX[X]XXX <- source pixel line
+ | | |
+ --------------------------
+ [ ]xxxx[x]xx[ ] <- pair average
+ --------------------------
+ | | |
+ |<--->|<--->|<---------- filter both sides
+
+
+(3.) "v" and inverse of "-",
+
+ XXXXXX XXXXXXXXX <- other line averaged
+ XXXXXXXXXXX[X]XXXXXXXXXXXX <- source pixel line
+ | | |
+ --------------------------
+ XXXX[X]xxxx[x]xx[X]XXXXXXX <- pair average
+ --------------------------
+ | | |
+ |<--->|<--->|<---------- don't filter both!
+
+
+Note the "v" case for FXAA requires no filtering.
+This is because the inverse of the "-" case is the "v".
+Filtering "v" case turns open spans like this,
+
+ XXXXXXXXX
+
+Into this (which is not desired),
+
+ x+. .+x
+ XXXXXXXXX
+
+----------------------------------------------------------------------------*/
+ if(((lumaM - lumaN) < 0.0) == ((lumaEndN - lumaN) < 0.0))
+ lengthSign = 0.0;
+
+/*----------------------------------------------------------------------------
+ COMPUTE SUB-PIXEL OFFSET AND FILTER SPAN
+------------------------------------------------------------------------------
+FXAA filters using a bilinear texture fetch offset
+from the middle pixel M towards the center of the pair (NM below).
+Maximum filtering will be half way between pair.
+Reminder, at this point in the code,
+the {N,M} pair is also reused for all cases: {S,M}, {W,M}, and {E,M}.
+
+ +-------+
+ | | 0.5 offset
+ | N | |
+ | | V
+ +-------+....---
+ | |
+ | M...|....---
+ | | ^
+ +-------+ |
+ . . 0.0 offset
+ . S .
+ . .
+ .........
+
+Position on span is used to compute sub-pixel filter offset using simple ramp,
+
+ posN posP
+ |\ |<------- 0.5 pixel offset into pair pixel
+ | \ |
+ | \ |
+ ---.......|...\..........|<------- 0.25 pixel offset into pair pixel
+ ^ | ^\ |
+ | | | \ |
+ V | | \ |
+ ---.......|===|==========|<------- 0.0 pixel offset (ie M pixel)
+ ^ . | ^ .
+ | . pos | .
+ | . . | .
+ | . . center .
+ | . . .
+ | |<->|<---------.-------- dstN
+ | . . .
+ | . |<-------->|<------- dstP
+ | . .
+ | |<------------>|<------- spanLength
+ |
+ subPixelOffset
+
+----------------------------------------------------------------------------*/
+ float spanLength = (dstP + dstN);
+ dstN = directionN ? dstN : dstP;
+ float subPixelOffset = (0.5 + (dstN * (-1.0/spanLength))) * lengthSign;
+ #if FXAA_DEBUG_OFFSET
+ float ox = horzSpan ? 0.0 : subPixelOffset*2.0/rcpFrame.x;
+ float oy = horzSpan ? subPixelOffset*2.0/rcpFrame.y : 0.0;
+ if(ox < 0.0) return FxaaFilterReturn(
+ FxaaLerp3(FxaaToFloat3(lumaO),
+ FxaaFloat3(1.0, 0.0, 0.0), -ox));
+ if(ox > 0.0) return FxaaFilterReturn(
+ FxaaLerp3(FxaaToFloat3(lumaO),
+ FxaaFloat3(0.0, 0.0, 1.0), ox));
+ if(oy < 0.0) return FxaaFilterReturn(
+ FxaaLerp3(FxaaToFloat3(lumaO),
+ FxaaFloat3(1.0, 0.6, 0.2), -oy));
+ if(oy > 0.0) return FxaaFilterReturn(
+ FxaaLerp3(FxaaToFloat3(lumaO),
+ FxaaFloat3(0.2, 0.6, 1.0), oy));
+ return FxaaFilterReturn(FxaaFloat3(lumaO, lumaO, lumaO));
+ #endif
+ float3 rgbF = FxaaTexLod0(tex, FxaaFloat2(
+ pos.x + (horzSpan ? 0.0 : subPixelOffset),
+ pos.y + (horzSpan ? subPixelOffset : 0.0))).xyz;
+ #if FXAA_SUBPIX == 0
+ return FxaaFilterReturn(rgbF);
+ #else
+ return FxaaFilterReturn(FxaaLerp3(rgbL, rgbF, blendL));
+ #endif
+}
+
+
+
+struct v2f {
+ float4 pos : SV_POSITION;
+ float2 uv : TEXCOORD0;
+};
+
+v2f vert (appdata_img v)
+{
+ v2f o;
+ o.pos = mul (UNITY_MATRIX_MVP, v.vertex);
+ o.uv = v.texcoord.xy;
+ return o;
+}
+
+sampler2D _MainTex;
+float4 _MainTex_TexelSize;
+
+float4 frag (v2f i) : SV_Target
+{
+ return float4(FxaaPixelShader(i.uv.xy, _MainTex, _MainTex_TexelSize.xy).xyz, 0.0f);
+}
+
+ENDCG
+ }
+}
+
+Fallback "Hidden/FXAA II"
+}
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/FXAAPreset3.shader.meta b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/FXAAPreset3.shader.meta
new file mode 100644
index 0000000..053bdbf
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/FXAAPreset3.shader.meta
@@ -0,0 +1,4 @@
+fileFormatVersion: 2
+guid: c182fa94a5a0a4c02870641efcd38cd5
+ShaderImporter:
+ userData:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/NFAA.shader b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/NFAA.shader
new file mode 100644
index 0000000..6467c0b
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/NFAA.shader
@@ -0,0 +1,148 @@
+
+Shader "Hidden/NFAA" {
+Properties {
+ _MainTex ("Base (RGB)", 2D) = "white" {}
+ _BlurTex ("Base (RGB)", 2D) = "white" {}
+
+}
+
+CGINCLUDE
+
+#include "UnityCG.cginc"
+
+uniform sampler2D _MainTex;
+uniform float4 _MainTex_TexelSize;
+uniform float _OffsetScale;
+uniform float _BlurRadius;
+
+struct v2f {
+ float4 pos : SV_POSITION;
+ float2 uv[8] : TEXCOORD0;
+};
+
+ v2f vert( appdata_img v )
+ {
+ v2f o;
+ o.pos = mul (UNITY_MATRIX_MVP, v.vertex);
+
+ float2 uv = v.texcoord.xy;
+
+ float2 up = float2(0.0, _MainTex_TexelSize.y) * _OffsetScale;
+ float2 right = float2(_MainTex_TexelSize.x, 0.0) * _OffsetScale;
+
+ o.uv[0].xy = uv + up;
+ o.uv[1].xy = uv - up;
+ o.uv[2].xy = uv + right;
+ o.uv[3].xy = uv - right;
+ o.uv[4].xy = uv - right + up;
+ o.uv[5].xy = uv - right -up;
+ o.uv[6].xy = uv + right + up;
+ o.uv[7].xy = uv + right -up;
+
+ return o;
+ }
+
+ half4 frag (v2f i) : SV_Target
+ {
+ // get luminance values
+ // maybe: experiment with different luminance calculations
+ float topL = Luminance( tex2D(_MainTex, i.uv[0]).rgb );
+ float bottomL = Luminance( tex2D(_MainTex, i.uv[1]).rgb );
+ float rightL = Luminance( tex2D(_MainTex, i.uv[2]).rgb );
+ float leftL = Luminance( tex2D(_MainTex, i.uv[3]).rgb );
+ float leftTopL = Luminance( tex2D(_MainTex, i.uv[4]).rgb );
+ float leftBottomL = Luminance( tex2D(_MainTex, i.uv[5]).rgb );
+ float rightBottomL = Luminance( tex2D(_MainTex, i.uv[6]).rgb );
+ float rightTopL = Luminance( tex2D(_MainTex, i.uv[7]).rgb );
+
+ // 2 triangle subtractions
+ float sum0 = dot(float3(1,1,1), float3(rightTopL,bottomL,leftTopL));
+ float sum1 = dot(float3(1,1,1), float3(leftBottomL,topL,rightBottomL));
+ float sum2 = dot(float3(1,1,1), float3(leftTopL,rightL,leftBottomL));
+ float sum3 = dot(float3(1,1,1), float3(rightBottomL,leftL,rightTopL));
+
+ // figure out "normal"
+ float2 blurDir = half2((sum0-sum1), (sum3-sum2));
+ blurDir *= _MainTex_TexelSize.xy * _BlurRadius;
+
+ // reconstruct normal uv
+ float2 uv_ = (i.uv[0] + i.uv[1]) * 0.5;
+
+ float4 returnColor = tex2D(_MainTex, uv_);
+ returnColor += tex2D(_MainTex, uv_+ blurDir.xy);
+ returnColor += tex2D(_MainTex, uv_ - blurDir.xy);
+ returnColor += tex2D(_MainTex, uv_ + float2(blurDir.x, -blurDir.y));
+ returnColor += tex2D(_MainTex, uv_ - float2(blurDir.x, -blurDir.y));
+
+ return returnColor * 0.2;
+ }
+
+ half4 fragDebug (v2f i) : SV_Target
+ {
+ // get luminance values
+ // maybe: experiment with different luminance calculations
+ float topL = Luminance( tex2D(_MainTex, i.uv[0]).rgb );
+ float bottomL = Luminance( tex2D(_MainTex, i.uv[1]).rgb );
+ float rightL = Luminance( tex2D(_MainTex, i.uv[2]).rgb );
+ float leftL = Luminance( tex2D(_MainTex, i.uv[3]).rgb );
+ float leftTopL = Luminance( tex2D(_MainTex, i.uv[4]).rgb );
+ float leftBottomL = Luminance( tex2D(_MainTex, i.uv[5]).rgb );
+ float rightBottomL = Luminance( tex2D(_MainTex, i.uv[6]).rgb );
+ float rightTopL = Luminance( tex2D(_MainTex, i.uv[7]).rgb );
+
+ // 2 triangle subtractions
+ float sum0 = dot(float3(1,1,1), float3(rightTopL,bottomL,leftTopL));
+ float sum1 = dot(float3(1,1,1), float3(leftBottomL,topL,rightBottomL));
+ float sum2 = dot(float3(1,1,1), float3(leftTopL,rightL,leftBottomL));
+ float sum3 = dot(float3(1,1,1), float3(rightBottomL,leftL,rightTopL));
+
+ // figure out "normal"
+ float2 blurDir = half2((sum0-sum1), (sum3-sum2));
+ blurDir *= _MainTex_TexelSize.xy * _BlurRadius;
+
+ // reconstruct normal uv
+ float2 uv_ = (i.uv[0] + i.uv[1]) * 0.5;
+
+ float4 returnColor = tex2D(_MainTex, uv_);
+ returnColor += tex2D(_MainTex, uv_+ blurDir.xy);
+ returnColor += tex2D(_MainTex, uv_ - blurDir.xy);
+ returnColor += tex2D(_MainTex, uv_ + float2(blurDir.x, -blurDir.y));
+ returnColor += tex2D(_MainTex, uv_ - float2(blurDir.x, -blurDir.y));
+
+ blurDir = half2((sum0-sum1), (sum3-sum2)) * _BlurRadius;
+ return half4(normalize( half3(blurDir,1) * 0.5 + 0.5), 1);
+ return returnColor * 0.2;
+ }
+
+ENDCG
+
+SubShader {
+ Pass {
+ ZTest Always Cull Off ZWrite Off
+
+ CGPROGRAM
+
+ #pragma vertex vert
+ #pragma fragment frag
+ #pragma target 3.0
+ #pragma exclude_renderers d3d11_9x
+
+ ENDCG
+ }
+ Pass {
+ ZTest Always Cull Off ZWrite Off
+
+ CGPROGRAM
+
+ #pragma vertex vert
+ #pragma fragment fragDebug
+ #pragma target 3.0
+ #pragma exclude_renderers d3d11_9x
+
+ ENDCG
+ }
+}
+
+Fallback off
+
+}
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/NFAA.shader.meta b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/NFAA.shader.meta
new file mode 100644
index 0000000..af7b4b6
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/NFAA.shader.meta
@@ -0,0 +1,4 @@
+fileFormatVersion: 2
+guid: ce0cb2621f6d84e21a87414e471a3cce
+ShaderImporter:
+ userData:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/SSAA.shader b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/SSAA.shader
new file mode 100644
index 0000000..cf3f938
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/SSAA.shader
@@ -0,0 +1,85 @@
+
+Shader "Hidden/SSAA" {
+Properties {
+ _MainTex ("Base (RGB)", 2D) = "white" {}
+}
+
+// very simple & fast AA by Emmanuel Julien
+
+SubShader {
+ Pass {
+
+ ZTest Always Cull Off ZWrite Off
+
+ CGPROGRAM
+
+ #pragma vertex vert
+ #pragma fragment frag
+
+ #include "UnityCG.cginc"
+
+ uniform sampler2D _MainTex;
+ uniform float4 _MainTex_TexelSize;
+
+ struct v2f {
+ float4 pos : SV_POSITION;
+ float2 uv[5] : TEXCOORD0;
+ };
+
+ v2f vert( appdata_img v ) {
+ v2f o;
+ o.pos = mul (UNITY_MATRIX_MVP, v.vertex);
+
+ float2 uv = v.texcoord.xy;
+
+ float w = 1.75;
+
+ float2 up = float2(0.0, _MainTex_TexelSize.y) * w;
+ float2 right = float2(_MainTex_TexelSize.x, 0.0) * w;
+
+ o.uv[0].xy = uv - up;
+ o.uv[1].xy = uv - right;
+ o.uv[2].xy = uv + right;
+ o.uv[3].xy = uv + up;
+
+ o.uv[4].xy = uv;
+
+ return o;
+ }
+
+ half4 frag (v2f i) : SV_Target
+ {
+ half4 outColor;
+
+ float t = Luminance( tex2D( _MainTex, i.uv[0] ).xyz );
+ float l = Luminance( tex2D( _MainTex, i.uv[1] ).xyz);
+ float r = Luminance( tex2D( _MainTex, i.uv[2] ).xyz);
+ float b = Luminance( tex2D( _MainTex, i.uv[3] ).xyz);
+
+ half2 n = half2( -( t - b ), r - l );
+ float nl = length( n );
+
+ if ( nl < (1.0 / 16.0) )
+ outColor = tex2D( _MainTex, i.uv[4] );
+ else {
+ n *= _MainTex_TexelSize.xy / nl;
+
+ half4 o = tex2D( _MainTex, i.uv[4]);
+ half4 t0 = tex2D( _MainTex, i.uv[4] + n * 0.5) * 0.9;
+ half4 t1 = tex2D( _MainTex, i.uv[4] - n * 0.5) * 0.9;
+ half4 t2 = tex2D( _MainTex, i.uv[4] + n) * 0.75;
+ half4 t3 = tex2D( _MainTex, i.uv[4] - n) * 0.75;
+
+ outColor = (o + t0 + t1 + t2 + t3) / 4.3;
+ }
+
+ return outColor;
+ }
+
+ ENDCG
+ }
+}
+
+Fallback off
+
+}
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/SSAA.shader.meta b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/SSAA.shader.meta
new file mode 100644
index 0000000..e972317
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_Antialiasing/SSAA.shader.meta
@@ -0,0 +1,4 @@
+fileFormatVersion: 2
+guid: b3728d1488b02490cbd196c7941bf1f8
+ShaderImporter:
+ userData:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares.meta b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares.meta
new file mode 100644
index 0000000..3bdce38
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: d6ef58fc6f637406bbe6814a19c377f8
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/Blend.shader b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/Blend.shader
new file mode 100644
index 0000000..91c891e
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/Blend.shader
@@ -0,0 +1,114 @@
+Shader "Hidden/Blend" {
+ Properties {
+ _MainTex ("Screen Blended", 2D) = "" {}
+ _ColorBuffer ("Color", 2D) = "" {}
+ }
+
+ CGINCLUDE
+
+ #include "UnityCG.cginc"
+
+ struct v2f {
+ float4 pos : SV_POSITION;
+ float2 uv[2] : TEXCOORD0;
+ };
+ struct v2f_mt {
+ float4 pos : SV_POSITION;
+ float2 uv[4] : TEXCOORD0;
+ };
+
+ sampler2D _ColorBuffer;
+ sampler2D _MainTex;
+
+ half _Intensity;
+ half4 _ColorBuffer_TexelSize;
+ half4 _MainTex_TexelSize;
+
+ v2f vert( appdata_img v ) {
+ v2f o;
+ o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
+ o.uv[0] = v.texcoord.xy;
+ o.uv[1] = v.texcoord.xy;
+
+ #if UNITY_UV_STARTS_AT_TOP
+ if (_ColorBuffer_TexelSize.y < 0)
+ o.uv[1].y = 1-o.uv[1].y;
+ #endif
+
+ return o;
+ }
+
+ v2f_mt vertMultiTap( appdata_img v ) {
+ v2f_mt o;
+ o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
+ o.uv[0] = v.texcoord.xy + _MainTex_TexelSize.xy * 0.5;
+ o.uv[1] = v.texcoord.xy - _MainTex_TexelSize.xy * 0.5;
+ o.uv[2] = v.texcoord.xy - _MainTex_TexelSize.xy * half2(1,-1) * 0.5;
+ o.uv[3] = v.texcoord.xy + _MainTex_TexelSize.xy * half2(1,-1) * 0.5;
+ return o;
+ }
+
+ half4 fragScreen (v2f i) : SV_Target {
+ half4 toBlend = saturate (tex2D(_MainTex, i.uv[0]) * _Intensity);
+ return 1-(1-toBlend)*(1-tex2D(_ColorBuffer, i.uv[1]));
+ }
+
+ half4 fragAdd (v2f i) : SV_Target {
+ return tex2D(_MainTex, i.uv[0].xy) * _Intensity + tex2D(_ColorBuffer, i.uv[1]);
+ }
+
+ half4 fragVignetteBlend (v2f i) : SV_Target {
+ return tex2D(_MainTex, i.uv[0].xy) * tex2D(_ColorBuffer, i.uv[0]);
+ }
+
+ half4 fragMultiTap (v2f_mt i) : SV_Target {
+ half4 outColor = tex2D(_MainTex, i.uv[0].xy);
+ outColor += tex2D(_MainTex, i.uv[1].xy);
+ outColor += tex2D(_MainTex, i.uv[2].xy);
+ outColor += tex2D(_MainTex, i.uv[3].xy);
+ return outColor * 0.25;
+ }
+
+ ENDCG
+
+Subshader {
+ ZTest Always Cull Off ZWrite Off
+
+ // 0: nicer & softer "screen" blend mode
+ Pass {
+
+ CGPROGRAM
+ #pragma vertex vert
+ #pragma fragment fragScreen
+ ENDCG
+ }
+
+ // 1: simple "add" blend mode
+ Pass {
+
+ CGPROGRAM
+ #pragma vertex vert
+ #pragma fragment fragAdd
+ ENDCG
+ }
+ // 2: used for "stable" downsampling
+ Pass {
+
+ CGPROGRAM
+ #pragma vertex vertMultiTap
+ #pragma fragment fragMultiTap
+ ENDCG
+ }
+ // 3: vignette blending
+ Pass {
+
+ CGPROGRAM
+ #pragma vertex vert
+ #pragma fragment fragVignetteBlend
+ ENDCG
+ }
+}
+
+Fallback off
+
+} // shader
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/Blend.shader.meta b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/Blend.shader.meta
new file mode 100644
index 0000000..e9a742b
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/Blend.shader.meta
@@ -0,0 +1,4 @@
+fileFormatVersion: 2
+guid: 53b3960ee3d3d4a5caa8d5473d120187
+ShaderImporter:
+ userData:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BlendForBloom.shader b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BlendForBloom.shader
new file mode 100644
index 0000000..e88fba0
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BlendForBloom.shader
@@ -0,0 +1,220 @@
+Shader "Hidden/BlendForBloom" {
+ Properties {
+ _MainTex ("Screen Blended", 2D) = "" {}
+ _ColorBuffer ("Color", 2D) = "" {}
+ }
+
+ CGINCLUDE
+
+ #include "UnityCG.cginc"
+
+ struct v2f {
+ float4 pos : SV_POSITION;
+ float2 uv[2] : TEXCOORD0;
+ };
+ struct v2f_mt {
+ float4 pos : SV_POSITION;
+ float2 uv[5] : TEXCOORD0;
+ };
+
+ sampler2D _ColorBuffer;
+ sampler2D _MainTex;
+
+ half _Intensity;
+ half4 _ColorBuffer_TexelSize;
+ half4 _MainTex_TexelSize;
+
+ v2f vert( appdata_img v ) {
+ v2f o;
+ o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
+ o.uv[0] = v.texcoord.xy;
+ o.uv[1] = v.texcoord.xy;
+
+ #if UNITY_UV_STARTS_AT_TOP
+ if (_ColorBuffer_TexelSize.y < 0)
+ o.uv[1].y = 1-o.uv[1].y;
+ #endif
+
+ return o;
+ }
+
+ v2f_mt vertMultiTap( appdata_img v ) {
+ v2f_mt o;
+ o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
+ o.uv[4] = v.texcoord.xy;
+ o.uv[0] = v.texcoord.xy + _MainTex_TexelSize.xy * 0.5;
+ o.uv[1] = v.texcoord.xy - _MainTex_TexelSize.xy * 0.5;
+ o.uv[2] = v.texcoord.xy - _MainTex_TexelSize.xy * half2(1,-1) * 0.5;
+ o.uv[3] = v.texcoord.xy + _MainTex_TexelSize.xy * half2(1,-1) * 0.5;
+ return o;
+ }
+
+ half4 fragScreen (v2f i) : SV_Target {
+ half4 addedbloom = tex2D(_MainTex, i.uv[0].xy) * _Intensity;
+ half4 screencolor = tex2D(_ColorBuffer, i.uv[1]);
+ return 1-(1-addedbloom)*(1-screencolor);
+ }
+
+ half4 fragScreenCheap(v2f i) : SV_Target {
+ half4 addedbloom = tex2D(_MainTex, i.uv[0].xy) * _Intensity;
+ half4 screencolor = tex2D(_ColorBuffer, i.uv[1]);
+ return 1-(1-addedbloom)*(1-screencolor);
+ }
+
+ half4 fragAdd (v2f i) : SV_Target {
+ half4 addedbloom = tex2D(_MainTex, i.uv[0].xy);
+ half4 screencolor = tex2D(_ColorBuffer, i.uv[1]);
+ return _Intensity * addedbloom + screencolor;
+ }
+
+ half4 fragAddCheap (v2f i) : SV_Target {
+ half4 addedbloom = tex2D(_MainTex, i.uv[0].xy);
+ half4 screencolor = tex2D(_ColorBuffer, i.uv[1]);
+ return _Intensity * addedbloom + screencolor;
+ }
+
+ half4 fragVignetteMul (v2f i) : SV_Target {
+ return tex2D(_MainTex, i.uv[0].xy) * tex2D(_ColorBuffer, i.uv[0]);
+ }
+
+ half4 fragVignetteBlend (v2f i) : SV_Target {
+ return half4(1,1,1, tex2D(_ColorBuffer, i.uv[0]).r);
+ }
+
+ half4 fragClear (v2f i) : SV_Target {
+ return 0;
+ }
+
+ half4 fragAddOneOne (v2f i) : SV_Target {
+ half4 addedColors = tex2D(_MainTex, i.uv[0].xy);
+ return addedColors * _Intensity;
+ }
+
+ half4 frag1Tap (v2f i) : SV_Target {
+ return tex2D(_MainTex, i.uv[0].xy);
+ }
+
+ half4 fragMultiTapMax (v2f_mt i) : SV_Target {
+ half4 outColor = tex2D(_MainTex, i.uv[4].xy);
+ outColor = max(outColor, tex2D(_MainTex, i.uv[0].xy));
+ outColor = max(outColor, tex2D(_MainTex, i.uv[1].xy));
+ outColor = max(outColor, tex2D(_MainTex, i.uv[2].xy));
+ outColor = max(outColor, tex2D(_MainTex, i.uv[3].xy));
+ return outColor;
+ }
+
+ half4 fragMultiTapBlur (v2f_mt i) : SV_Target {
+ half4 outColor = 0;
+ outColor += tex2D(_MainTex, i.uv[0].xy);
+ outColor += tex2D(_MainTex, i.uv[1].xy);
+ outColor += tex2D(_MainTex, i.uv[2].xy);
+ outColor += tex2D(_MainTex, i.uv[3].xy);
+ return outColor/4;
+ }
+
+ ENDCG
+
+Subshader {
+ ZTest Always Cull Off ZWrite Off
+
+ // 0: nicer & softer "screen" blend mode
+ Pass {
+
+ CGPROGRAM
+ #pragma vertex vert
+ #pragma fragment fragScreen
+ ENDCG
+ }
+
+ // 1: "add" blend mode
+ Pass {
+
+ CGPROGRAM
+ #pragma vertex vert
+ #pragma fragment fragAdd
+ ENDCG
+ }
+ // 2: several taps, maxxed
+ Pass {
+
+ CGPROGRAM
+ #pragma vertex vertMultiTap
+ #pragma fragment fragMultiTapMax
+ ENDCG
+ }
+ // 3: vignette blending
+ Pass {
+
+ CGPROGRAM
+ #pragma vertex vert
+ #pragma fragment fragVignetteMul
+ ENDCG
+ }
+ // 4: nicer & softer "screen" blend mode(cheapest)
+ Pass {
+
+ CGPROGRAM
+ #pragma vertex vert
+ #pragma fragment fragScreenCheap
+ ENDCG
+ }
+ // 5: "add" blend mode (cheapest)
+ Pass {
+
+ CGPROGRAM
+ #pragma vertex vert
+ #pragma fragment fragAddCheap
+ ENDCG
+ }
+ // 6: used for "stable" downsampling (blur)
+ Pass {
+
+ CGPROGRAM
+ #pragma vertex vertMultiTap
+ #pragma fragment fragMultiTapBlur
+ ENDCG
+ }
+ // 7: vignette blending (blend to dest)
+ Pass {
+
+ Blend Zero SrcAlpha
+
+ CGPROGRAM
+ #pragma vertex vert
+ #pragma fragment fragVignetteBlend
+ ENDCG
+ }
+ // 8: clear
+ Pass {
+
+ CGPROGRAM
+ #pragma vertex vert
+ #pragma fragment fragClear
+ ENDCG
+ }
+ // 9: fragAddOneOne
+ Pass {
+
+ Blend One One
+
+ CGPROGRAM
+ #pragma vertex vert
+ #pragma fragment fragAddOneOne
+ ENDCG
+ }
+ // 10: max blend
+ Pass {
+
+ BlendOp Max
+ Blend One One
+
+ CGPROGRAM
+ #pragma vertex vert
+ #pragma fragment frag1Tap
+ ENDCG
+ }
+}
+
+Fallback off
+
+} // shader
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BlendForBloom.shader.meta b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BlendForBloom.shader.meta
new file mode 100644
index 0000000..1737d9f
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BlendForBloom.shader.meta
@@ -0,0 +1,4 @@
+fileFormatVersion: 2
+guid: 7856cbff0a0ca45c787d5431eb805bb0
+ShaderImporter:
+ userData:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BlendOneOne.shader b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BlendOneOne.shader
new file mode 100644
index 0000000..650f016
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BlendOneOne.shader
@@ -0,0 +1,48 @@
+Shader "Hidden/BlendOneOne" {
+ Properties {
+ _MainTex ("-", 2D) = "" {}
+ }
+
+ CGINCLUDE
+
+ #include "UnityCG.cginc"
+
+ struct v2f {
+ float4 pos : SV_POSITION;
+ float2 uv : TEXCOORD0;
+ };
+
+ sampler2D _MainTex;
+ half _Intensity;
+
+ v2f vert( appdata_img v ) {
+ v2f o;
+ o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
+ o.uv = v.texcoord.xy;
+ return o;
+ }
+
+ half4 frag(v2f i) : SV_Target {
+ return tex2D(_MainTex, i.uv) * _Intensity;
+ }
+
+ ENDCG
+
+Subshader {
+
+ Pass {
+ BlendOp Add
+ Blend One One
+
+ ZTest Always Cull Off ZWrite Off
+
+ CGPROGRAM
+ #pragma vertex vert
+ #pragma fragment frag
+ ENDCG
+ }
+}
+
+Fallback off
+
+}
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BlendOneOne.shader.meta b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BlendOneOne.shader.meta
new file mode 100644
index 0000000..007df7f
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BlendOneOne.shader.meta
@@ -0,0 +1,4 @@
+fileFormatVersion: 2
+guid: f7898d203e9b94c0dbe2bf9dd5cb32c0
+ShaderImporter:
+ userData:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BlurAndFlares.shader b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BlurAndFlares.shader
new file mode 100644
index 0000000..ec16958
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BlurAndFlares.shader
@@ -0,0 +1,202 @@
+Shader "Hidden/BlurAndFlares" {
+ Properties {
+ _MainTex ("Base (RGB)", 2D) = "" {}
+ _NonBlurredTex ("Base (RGB)", 2D) = "" {}
+ }
+
+ CGINCLUDE
+
+ #include "UnityCG.cginc"
+
+ struct v2f {
+ half4 pos : SV_POSITION;
+ half2 uv : TEXCOORD0;
+ };
+
+ struct v2f_opts {
+ half4 pos : SV_POSITION;
+ half2 uv[7] : TEXCOORD0;
+ };
+
+ struct v2f_blur {
+ half4 pos : SV_POSITION;
+ half2 uv : TEXCOORD0;
+ half4 uv01 : TEXCOORD1;
+ half4 uv23 : TEXCOORD2;
+ half4 uv45 : TEXCOORD3;
+ half4 uv67 : TEXCOORD4;
+ };
+
+ half4 _Offsets;
+ half4 _TintColor;
+
+ half _StretchWidth;
+ half2 _Threshhold;
+ half _Saturation;
+
+ half4 _MainTex_TexelSize;
+
+ sampler2D _MainTex;
+ sampler2D _NonBlurredTex;
+
+ v2f vert (appdata_img v) {
+ v2f o;
+ o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
+ o.uv = v.texcoord.xy;
+ return o;
+ }
+
+ v2f_blur vertWithMultiCoords2 (appdata_img v) {
+ v2f_blur o;
+ o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
+ o.uv.xy = v.texcoord.xy;
+ o.uv01 = v.texcoord.xyxy + _Offsets.xyxy * half4(1,1, -1,-1);
+ o.uv23 = v.texcoord.xyxy + _Offsets.xyxy * half4(1,1, -1,-1) * 2.0;
+ o.uv45 = v.texcoord.xyxy + _Offsets.xyxy * half4(1,1, -1,-1) * 3.0;
+ o.uv67 = v.texcoord.xyxy + _Offsets.xyxy * half4(1,1, -1,-1) * 4.0;
+ o.uv67 = v.texcoord.xyxy + _Offsets.xyxy * half4(1,1, -1,-1) * 5.0;
+ return o;
+ }
+
+ v2f_opts vertStretch (appdata_img v) {
+ v2f_opts o;
+ o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
+ half b = _StretchWidth;
+ o.uv[0] = v.texcoord.xy;
+ o.uv[1] = v.texcoord.xy + b * 2.0 * _Offsets.xy;
+ o.uv[2] = v.texcoord.xy - b * 2.0 * _Offsets.xy;
+ o.uv[3] = v.texcoord.xy + b * 4.0 * _Offsets.xy;
+ o.uv[4] = v.texcoord.xy - b * 4.0 * _Offsets.xy;
+ o.uv[5] = v.texcoord.xy + b * 6.0 * _Offsets.xy;
+ o.uv[6] = v.texcoord.xy - b * 6.0 * _Offsets.xy;
+ return o;
+ }
+
+ v2f_opts vertWithMultiCoords (appdata_img v) {
+ v2f_opts o;
+ o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
+ o.uv[0] = v.texcoord.xy;
+ o.uv[1] = v.texcoord.xy + 0.5 * _MainTex_TexelSize.xy * _Offsets.xy;
+ o.uv[2] = v.texcoord.xy - 0.5 * _MainTex_TexelSize.xy * _Offsets.xy;
+ o.uv[3] = v.texcoord.xy + 1.5 * _MainTex_TexelSize.xy * _Offsets.xy;
+ o.uv[4] = v.texcoord.xy - 1.5 * _MainTex_TexelSize.xy * _Offsets.xy;
+ o.uv[5] = v.texcoord.xy + 2.5 * _MainTex_TexelSize.xy * _Offsets.xy;
+ o.uv[6] = v.texcoord.xy - 2.5 * _MainTex_TexelSize.xy * _Offsets.xy;
+ return o;
+ }
+
+ half4 fragPostNoBlur (v2f i) : SV_Target {
+ half4 color = tex2D (_MainTex, i.uv);
+ return color * 1.0/(1.0 + Luminance(color.rgb) + 0.5); // this also makes it a little noisy
+ }
+
+ half4 fragGaussBlur (v2f_blur i) : SV_Target {
+ half4 color = half4 (0,0,0,0);
+ color += 0.225 * tex2D (_MainTex, i.uv);
+ color += 0.150 * tex2D (_MainTex, i.uv01.xy);
+ color += 0.150 * tex2D (_MainTex, i.uv01.zw);
+ color += 0.110 * tex2D (_MainTex, i.uv23.xy);
+ color += 0.110 * tex2D (_MainTex, i.uv23.zw);
+ color += 0.075 * tex2D (_MainTex, i.uv45.xy);
+ color += 0.075 * tex2D (_MainTex, i.uv45.zw);
+ color += 0.0525 * tex2D (_MainTex, i.uv67.xy);
+ color += 0.0525 * tex2D (_MainTex, i.uv67.zw);
+ return color;
+ }
+
+ half4 fragPreAndCut (v2f_opts i) : SV_Target {
+ half4 color = tex2D (_MainTex, i.uv[0]);
+ color += tex2D (_MainTex, i.uv[1]);
+ color += tex2D (_MainTex, i.uv[2]);
+ color += tex2D (_MainTex, i.uv[3]);
+ color += tex2D (_MainTex, i.uv[4]);
+ color += tex2D (_MainTex, i.uv[5]);
+ color += tex2D (_MainTex, i.uv[6]);
+ color = max(color / 7.0 - _Threshhold.xxxx, float4(0,0,0,0));
+ half lum = Luminance(color.rgb);
+ color.rgb = lerp(half3(lum,lum,lum), color.rgb, _Saturation) * _TintColor.rgb;
+ return color;
+ }
+
+ half4 fragStretch (v2f_opts i) : SV_Target {
+ half4 color = tex2D (_MainTex, i.uv[0]);
+ color = max (color, tex2D (_MainTex, i.uv[1]));
+ color = max (color, tex2D (_MainTex, i.uv[2]));
+ color = max (color, tex2D (_MainTex, i.uv[3]));
+ color = max (color, tex2D (_MainTex, i.uv[4]));
+ color = max (color, tex2D (_MainTex, i.uv[5]));
+ color = max (color, tex2D (_MainTex, i.uv[6]));
+ return color;
+ }
+
+ half4 fragPost (v2f_opts i) : SV_Target {
+ half4 color = tex2D (_MainTex, i.uv[0]);
+ color += tex2D (_MainTex, i.uv[1]);
+ color += tex2D (_MainTex, i.uv[2]);
+ color += tex2D (_MainTex, i.uv[3]);
+ color += tex2D (_MainTex, i.uv[4]);
+ color += tex2D (_MainTex, i.uv[5]);
+ color += tex2D (_MainTex, i.uv[6]);
+ return color * 1.0/(7.0 + Luminance(color.rgb) + 0.5); // this also makes it a little noisy
+ }
+
+ ENDCG
+
+Subshader {
+ ZTest Always Cull Off ZWrite Off
+ Pass {
+
+ CGPROGRAM
+
+ #pragma vertex vert
+ #pragma fragment fragPostNoBlur
+
+ ENDCG
+ }
+
+ Pass {
+
+ CGPROGRAM
+
+ #pragma vertex vertStretch
+ #pragma fragment fragStretch
+
+ ENDCG
+ }
+
+ // 2
+ Pass {
+
+ CGPROGRAM
+
+ #pragma vertex vertWithMultiCoords
+ #pragma fragment fragPreAndCut
+
+ ENDCG
+ }
+
+ // 3
+ Pass {
+
+ CGPROGRAM
+
+ #pragma vertex vertWithMultiCoords
+ #pragma fragment fragPost
+
+ ENDCG
+ }
+ // 4
+ Pass {
+
+ CGPROGRAM
+
+ #pragma vertex vertWithMultiCoords2
+ #pragma fragment fragGaussBlur
+
+ ENDCG
+ }
+}
+
+Fallback off
+
+}
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BlurAndFlares.shader.meta b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BlurAndFlares.shader.meta
new file mode 100644
index 0000000..a0ed0ba
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BlurAndFlares.shader.meta
@@ -0,0 +1,4 @@
+fileFormatVersion: 2
+guid: be6e39cf196f146d5be72fbefb18ed75
+ShaderImporter:
+ userData:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BrightPassFilter.shader b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BrightPassFilter.shader
new file mode 100644
index 0000000..7af0789
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BrightPassFilter.shader
@@ -0,0 +1,57 @@
+Shader "Hidden/BrightPassFilterForBloom"
+{
+ Properties
+ {
+ _MainTex ("Base (RGB)", 2D) = "" {}
+ }
+
+ CGINCLUDE
+
+ #include "UnityCG.cginc"
+
+ struct v2f
+ {
+ float4 pos : SV_POSITION;
+ float2 uv : TEXCOORD0;
+ };
+
+ sampler2D _MainTex;
+
+ half4 threshold;
+ half useSrcAlphaAsMask;
+
+ v2f vert( appdata_img v )
+ {
+ v2f o;
+ o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
+ o.uv = v.texcoord.xy;
+ return o;
+ }
+
+ half4 frag(v2f i) : SV_Target
+ {
+ half4 color = tex2D(_MainTex, i.uv);
+ //color = color * saturate((color-threshhold.x) * 75.0); // didn't go well with HDR and din't make sense
+ color = color * lerp(1.0, color.a, useSrcAlphaAsMask);
+ color = max(half4(0,0,0,0), color-threshold.x);
+ return color;
+ }
+
+ ENDCG
+
+ Subshader
+ {
+ Pass
+ {
+ ZTest Always Cull Off ZWrite Off
+
+ CGPROGRAM
+
+ #pragma vertex vert
+ #pragma fragment frag
+
+ ENDCG
+ }
+ }
+ Fallback off
+}
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BrightPassFilter.shader.meta b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BrightPassFilter.shader.meta
new file mode 100644
index 0000000..35204d1
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BrightPassFilter.shader.meta
@@ -0,0 +1,4 @@
+fileFormatVersion: 2
+guid: 186c4c0d31e314f049595dcbaf4ca129
+ShaderImporter:
+ userData:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BrightPassFilter2.shader b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BrightPassFilter2.shader
new file mode 100644
index 0000000..b202a23
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BrightPassFilter2.shader
@@ -0,0 +1,74 @@
+Shader "Hidden/BrightPassFilter2"
+{
+ Properties
+ {
+ _MainTex ("Base (RGB)", 2D) = "" {}
+ }
+
+ CGINCLUDE
+
+ #include "UnityCG.cginc"
+
+ struct v2f
+ {
+ float4 pos : SV_POSITION;
+ float2 uv : TEXCOORD0;
+ };
+
+ sampler2D _MainTex;
+
+ half4 _Threshhold;
+
+ v2f vert( appdata_img v )
+ {
+ v2f o;
+ o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
+ o.uv = v.texcoord.xy;
+ return o;
+ }
+
+ half4 fragScalarThresh(v2f i) : SV_Target
+ {
+ half4 color = tex2D(_MainTex, i.uv);
+ color.rgb = color.rgb;
+ color.rgb = max(half3(0,0,0), color.rgb-_Threshhold.xxx);
+ return color;
+ }
+
+ half4 fragColorThresh(v2f i) : SV_Target
+ {
+ half4 color = tex2D(_MainTex, i.uv);
+ color.rgb = max(half3(0,0,0), color.rgb-_Threshhold.rgb);
+ return color;
+ }
+
+ ENDCG
+
+ Subshader
+ {
+ Pass
+ {
+ ZTest Always Cull Off ZWrite Off
+
+ CGPROGRAM
+
+ #pragma vertex vert
+ #pragma fragment fragScalarThresh
+
+ ENDCG
+ }
+
+ Pass
+ {
+ ZTest Always Cull Off ZWrite Off
+
+ CGPROGRAM
+
+ #pragma vertex vert
+ #pragma fragment fragColorThresh
+
+ ENDCG
+ }
+ }
+ Fallback off
+}
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BrightPassFilter2.shader.meta b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BrightPassFilter2.shader.meta
new file mode 100644
index 0000000..b55de0e
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/BrightPassFilter2.shader.meta
@@ -0,0 +1,4 @@
+fileFormatVersion: 2
+guid: 0aeaa4cb29f5d4e9c8455f04c8575c8c
+ShaderImporter:
+ userData:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/LensFlareCreate.shader b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/LensFlareCreate.shader
new file mode 100644
index 0000000..135efe6
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/LensFlareCreate.shader
@@ -0,0 +1,60 @@
+Shader "Hidden/LensFlareCreate" {
+ Properties {
+ _MainTex ("Base (RGB)", 2D) = "" {}
+ }
+
+ CGINCLUDE
+
+ #include "UnityCG.cginc"
+
+ struct v2f {
+ float4 pos : SV_POSITION;
+ float2 uv[4] : TEXCOORD0;
+ };
+
+ fixed4 colorA;
+ fixed4 colorB;
+ fixed4 colorC;
+ fixed4 colorD;
+
+ sampler2D _MainTex;
+
+ v2f vert( appdata_img v ) {
+ v2f o;
+ o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
+
+ o.uv[0] = ( ( v.texcoord.xy - 0.5 ) * -0.85 ) + 0.5;
+ o.uv[1] = ( ( v.texcoord.xy - 0.5 ) * -1.45 ) + 0.5;
+ o.uv[2] = ( ( v.texcoord.xy - 0.5 ) * -2.55 ) + 0.5;
+ o.uv[3] = ( ( v.texcoord.xy - 0.5 ) * -4.15 ) + 0.5;
+ return o;
+ }
+
+ fixed4 frag(v2f i) : SV_Target {
+ fixed4 color = float4 (0,0,0,0);
+ color += tex2D(_MainTex, i.uv[0] ) * colorA;
+ color += tex2D(_MainTex, i.uv[1] ) * colorB;
+ color += tex2D(_MainTex, i.uv[2] ) * colorC;
+ color += tex2D(_MainTex, i.uv[3] ) * colorD;
+ return color;
+ }
+
+ ENDCG
+
+Subshader {
+ Blend One One
+ Pass {
+ ZTest Always Cull Off ZWrite Off
+
+ CGPROGRAM
+
+ #pragma vertex vert
+ #pragma fragment frag
+
+ ENDCG
+ }
+}
+
+Fallback off
+
+} // shader
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/LensFlareCreate.shader.meta b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/LensFlareCreate.shader.meta
new file mode 100644
index 0000000..cd9c241
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/LensFlareCreate.shader.meta
@@ -0,0 +1,4 @@
+fileFormatVersion: 2
+guid: 459fe69d2f6d74ddb92f04dbf45a866b
+ShaderImporter:
+ userData:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/MobileBloom.shader b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/MobileBloom.shader
new file mode 100644
index 0000000..6fe10b1
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/MobileBloom.shader
@@ -0,0 +1,292 @@
+
+Shader "Hidden/FastBloom" {
+ Properties {
+ _MainTex ("Base (RGB)", 2D) = "white" {}
+ _Bloom ("Bloom (RGB)", 2D) = "black" {}
+ }
+
+ CGINCLUDE
+
+ #include "UnityCG.cginc"
+
+ sampler2D _MainTex;
+ sampler2D _Bloom;
+
+ uniform half4 _MainTex_TexelSize;
+
+ uniform half4 _Parameter;
+ uniform half4 _OffsetsA;
+ uniform half4 _OffsetsB;
+
+ #define ONE_MINUS_THRESHHOLD_TIMES_INTENSITY _Parameter.w
+ #define THRESHHOLD _Parameter.z
+
+ struct v2f_simple
+ {
+ float4 pos : SV_POSITION;
+ half2 uv : TEXCOORD0;
+
+ #if UNITY_UV_STARTS_AT_TOP
+ half2 uv2 : TEXCOORD1;
+ #endif
+ };
+
+ v2f_simple vertBloom ( appdata_img v )
+ {
+ v2f_simple o;
+
+ o.pos = mul (UNITY_MATRIX_MVP, v.vertex);
+ o.uv = v.texcoord;
+
+ #if UNITY_UV_STARTS_AT_TOP
+ o.uv2 = v.texcoord;
+ if (_MainTex_TexelSize.y < 0.0)
+ o.uv.y = 1.0 - o.uv.y;
+ #endif
+
+ return o;
+ }
+
+ struct v2f_tap
+ {
+ float4 pos : SV_POSITION;
+ half2 uv20 : TEXCOORD0;
+ half2 uv21 : TEXCOORD1;
+ half2 uv22 : TEXCOORD2;
+ half2 uv23 : TEXCOORD3;
+ };
+
+ v2f_tap vert4Tap ( appdata_img v )
+ {
+ v2f_tap o;
+
+ o.pos = mul (UNITY_MATRIX_MVP, v.vertex);
+ o.uv20 = v.texcoord + _MainTex_TexelSize.xy;
+ o.uv21 = v.texcoord + _MainTex_TexelSize.xy * half2(-0.5h,-0.5h);
+ o.uv22 = v.texcoord + _MainTex_TexelSize.xy * half2(0.5h,-0.5h);
+ o.uv23 = v.texcoord + _MainTex_TexelSize.xy * half2(-0.5h,0.5h);
+
+ return o;
+ }
+
+ fixed4 fragBloom ( v2f_simple i ) : SV_Target
+ {
+ #if UNITY_UV_STARTS_AT_TOP
+
+ fixed4 color = tex2D(_MainTex, i.uv2);
+ return color + tex2D(_Bloom, i.uv);
+
+ #else
+
+ fixed4 color = tex2D(_MainTex, i.uv);
+ return color + tex2D(_Bloom, i.uv);
+
+ #endif
+ }
+
+ fixed4 fragDownsample ( v2f_tap i ) : SV_Target
+ {
+ fixed4 color = tex2D (_MainTex, i.uv20);
+ color += tex2D (_MainTex, i.uv21);
+ color += tex2D (_MainTex, i.uv22);
+ color += tex2D (_MainTex, i.uv23);
+ return max(color/4 - THRESHHOLD, 0) * ONE_MINUS_THRESHHOLD_TIMES_INTENSITY;
+ }
+
+ // weight curves
+
+ static const half curve[7] = { 0.0205, 0.0855, 0.232, 0.324, 0.232, 0.0855, 0.0205 }; // gauss'ish blur weights
+
+ static const half4 curve4[7] = { half4(0.0205,0.0205,0.0205,0), half4(0.0855,0.0855,0.0855,0), half4(0.232,0.232,0.232,0),
+ half4(0.324,0.324,0.324,1), half4(0.232,0.232,0.232,0), half4(0.0855,0.0855,0.0855,0), half4(0.0205,0.0205,0.0205,0) };
+
+ struct v2f_withBlurCoords8
+ {
+ float4 pos : SV_POSITION;
+ half4 uv : TEXCOORD0;
+ half2 offs : TEXCOORD1;
+ };
+
+ struct v2f_withBlurCoordsSGX
+ {
+ float4 pos : SV_POSITION;
+ half2 uv : TEXCOORD0;
+ half4 offs[3] : TEXCOORD1;
+ };
+
+ v2f_withBlurCoords8 vertBlurHorizontal (appdata_img v)
+ {
+ v2f_withBlurCoords8 o;
+ o.pos = mul (UNITY_MATRIX_MVP, v.vertex);
+
+ o.uv = half4(v.texcoord.xy,1,1);
+ o.offs = _MainTex_TexelSize.xy * half2(1.0, 0.0) * _Parameter.x;
+
+ return o;
+ }
+
+ v2f_withBlurCoords8 vertBlurVertical (appdata_img v)
+ {
+ v2f_withBlurCoords8 o;
+ o.pos = mul (UNITY_MATRIX_MVP, v.vertex);
+
+ o.uv = half4(v.texcoord.xy,1,1);
+ o.offs = _MainTex_TexelSize.xy * half2(0.0, 1.0) * _Parameter.x;
+
+ return o;
+ }
+
+ half4 fragBlur8 ( v2f_withBlurCoords8 i ) : SV_Target
+ {
+ half2 uv = i.uv.xy;
+ half2 netFilterWidth = i.offs;
+ half2 coords = uv - netFilterWidth * 3.0;
+
+ half4 color = 0;
+ for( int l = 0; l < 7; l++ )
+ {
+ half4 tap = tex2D(_MainTex, coords);
+ color += tap * curve4[l];
+ coords += netFilterWidth;
+ }
+ return color;
+ }
+
+
+ v2f_withBlurCoordsSGX vertBlurHorizontalSGX (appdata_img v)
+ {
+ v2f_withBlurCoordsSGX o;
+ o.pos = mul (UNITY_MATRIX_MVP, v.vertex);
+
+ o.uv = v.texcoord.xy;
+ half2 netFilterWidth = _MainTex_TexelSize.xy * half2(1.0, 0.0) * _Parameter.x;
+ half4 coords = -netFilterWidth.xyxy * 3.0;
+
+ o.offs[0] = v.texcoord.xyxy + coords * half4(1.0h,1.0h,-1.0h,-1.0h);
+ coords += netFilterWidth.xyxy;
+ o.offs[1] = v.texcoord.xyxy + coords * half4(1.0h,1.0h,-1.0h,-1.0h);
+ coords += netFilterWidth.xyxy;
+ o.offs[2] = v.texcoord.xyxy + coords * half4(1.0h,1.0h,-1.0h,-1.0h);
+
+ return o;
+ }
+
+ v2f_withBlurCoordsSGX vertBlurVerticalSGX (appdata_img v)
+ {
+ v2f_withBlurCoordsSGX o;
+ o.pos = mul (UNITY_MATRIX_MVP, v.vertex);
+
+ o.uv = half4(v.texcoord.xy,1,1);
+ half2 netFilterWidth = _MainTex_TexelSize.xy * half2(0.0, 1.0) * _Parameter.x;
+ half4 coords = -netFilterWidth.xyxy * 3.0;
+
+ o.offs[0] = v.texcoord.xyxy + coords * half4(1.0h,1.0h,-1.0h,-1.0h);
+ coords += netFilterWidth.xyxy;
+ o.offs[1] = v.texcoord.xyxy + coords * half4(1.0h,1.0h,-1.0h,-1.0h);
+ coords += netFilterWidth.xyxy;
+ o.offs[2] = v.texcoord.xyxy + coords * half4(1.0h,1.0h,-1.0h,-1.0h);
+
+ return o;
+ }
+
+ half4 fragBlurSGX ( v2f_withBlurCoordsSGX i ) : SV_Target
+ {
+ half2 uv = i.uv.xy;
+
+ half4 color = tex2D(_MainTex, i.uv) * curve4[3];
+
+ for( int l = 0; l < 3; l++ )
+ {
+ half4 tapA = tex2D(_MainTex, i.offs[l].xy);
+ half4 tapB = tex2D(_MainTex, i.offs[l].zw);
+ color += (tapA + tapB) * curve4[l];
+ }
+
+ return color;
+
+ }
+
+ ENDCG
+
+ SubShader {
+ ZTest Off Cull Off ZWrite Off Blend Off
+
+ // 0
+ Pass {
+
+ CGPROGRAM
+ #pragma vertex vertBloom
+ #pragma fragment fragBloom
+
+ ENDCG
+
+ }
+
+ // 1
+ Pass {
+
+ CGPROGRAM
+
+ #pragma vertex vert4Tap
+ #pragma fragment fragDownsample
+
+ ENDCG
+
+ }
+
+ // 2
+ Pass {
+ ZTest Always
+ Cull Off
+
+ CGPROGRAM
+
+ #pragma vertex vertBlurVertical
+ #pragma fragment fragBlur8
+
+ ENDCG
+ }
+
+ // 3
+ Pass {
+ ZTest Always
+ Cull Off
+
+ CGPROGRAM
+
+ #pragma vertex vertBlurHorizontal
+ #pragma fragment fragBlur8
+
+ ENDCG
+ }
+
+ // alternate blur
+ // 4
+ Pass {
+ ZTest Always
+ Cull Off
+
+ CGPROGRAM
+
+ #pragma vertex vertBlurVerticalSGX
+ #pragma fragment fragBlurSGX
+
+ ENDCG
+ }
+
+ // 5
+ Pass {
+ ZTest Always
+ Cull Off
+
+ CGPROGRAM
+
+ #pragma vertex vertBlurHorizontalSGX
+ #pragma fragment fragBlurSGX
+
+ ENDCG
+ }
+ }
+
+ FallBack Off
+}
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/MobileBloom.shader.meta b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/MobileBloom.shader.meta
new file mode 100644
index 0000000..db93b36
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/MobileBloom.shader.meta
@@ -0,0 +1,4 @@
+fileFormatVersion: 2
+guid: 68a00c837b82e4c6d92e7da765dc5f1d
+ShaderImporter:
+ userData:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/MobileBlur.shader b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/MobileBlur.shader
new file mode 100644
index 0000000..bb89465
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/MobileBlur.shader
@@ -0,0 +1,234 @@
+
+Shader "Hidden/FastBlur" {
+ Properties {
+ _MainTex ("Base (RGB)", 2D) = "white" {}
+ _Bloom ("Bloom (RGB)", 2D) = "black" {}
+ }
+
+ CGINCLUDE
+
+ #include "UnityCG.cginc"
+
+ sampler2D _MainTex;
+ sampler2D _Bloom;
+
+ uniform half4 _MainTex_TexelSize;
+ uniform half4 _Parameter;
+
+ struct v2f_tap
+ {
+ float4 pos : SV_POSITION;
+ half2 uv20 : TEXCOORD0;
+ half2 uv21 : TEXCOORD1;
+ half2 uv22 : TEXCOORD2;
+ half2 uv23 : TEXCOORD3;
+ };
+
+ v2f_tap vert4Tap ( appdata_img v )
+ {
+ v2f_tap o;
+
+ o.pos = mul (UNITY_MATRIX_MVP, v.vertex);
+ o.uv20 = v.texcoord + _MainTex_TexelSize.xy;
+ o.uv21 = v.texcoord + _MainTex_TexelSize.xy * half2(-0.5h,-0.5h);
+ o.uv22 = v.texcoord + _MainTex_TexelSize.xy * half2(0.5h,-0.5h);
+ o.uv23 = v.texcoord + _MainTex_TexelSize.xy * half2(-0.5h,0.5h);
+
+ return o;
+ }
+
+ fixed4 fragDownsample ( v2f_tap i ) : SV_Target
+ {
+ fixed4 color = tex2D (_MainTex, i.uv20);
+ color += tex2D (_MainTex, i.uv21);
+ color += tex2D (_MainTex, i.uv22);
+ color += tex2D (_MainTex, i.uv23);
+ return color / 4;
+ }
+
+ // weight curves
+
+ static const half curve[7] = { 0.0205, 0.0855, 0.232, 0.324, 0.232, 0.0855, 0.0205 }; // gauss'ish blur weights
+
+ static const half4 curve4[7] = { half4(0.0205,0.0205,0.0205,0), half4(0.0855,0.0855,0.0855,0), half4(0.232,0.232,0.232,0),
+ half4(0.324,0.324,0.324,1), half4(0.232,0.232,0.232,0), half4(0.0855,0.0855,0.0855,0), half4(0.0205,0.0205,0.0205,0) };
+
+ struct v2f_withBlurCoords8
+ {
+ float4 pos : SV_POSITION;
+ half4 uv : TEXCOORD0;
+ half2 offs : TEXCOORD1;
+ };
+
+ struct v2f_withBlurCoordsSGX
+ {
+ float4 pos : SV_POSITION;
+ half2 uv : TEXCOORD0;
+ half4 offs[3] : TEXCOORD1;
+ };
+
+ v2f_withBlurCoords8 vertBlurHorizontal (appdata_img v)
+ {
+ v2f_withBlurCoords8 o;
+ o.pos = mul (UNITY_MATRIX_MVP, v.vertex);
+
+ o.uv = half4(v.texcoord.xy,1,1);
+ o.offs = _MainTex_TexelSize.xy * half2(1.0, 0.0) * _Parameter.x;
+
+ return o;
+ }
+
+ v2f_withBlurCoords8 vertBlurVertical (appdata_img v)
+ {
+ v2f_withBlurCoords8 o;
+ o.pos = mul (UNITY_MATRIX_MVP, v.vertex);
+
+ o.uv = half4(v.texcoord.xy,1,1);
+ o.offs = _MainTex_TexelSize.xy * half2(0.0, 1.0) * _Parameter.x;
+
+ return o;
+ }
+
+ half4 fragBlur8 ( v2f_withBlurCoords8 i ) : SV_Target
+ {
+ half2 uv = i.uv.xy;
+ half2 netFilterWidth = i.offs;
+ half2 coords = uv - netFilterWidth * 3.0;
+
+ half4 color = 0;
+ for( int l = 0; l < 7; l++ )
+ {
+ half4 tap = tex2D(_MainTex, coords);
+ color += tap * curve4[l];
+ coords += netFilterWidth;
+ }
+ return color;
+ }
+
+
+ v2f_withBlurCoordsSGX vertBlurHorizontalSGX (appdata_img v)
+ {
+ v2f_withBlurCoordsSGX o;
+ o.pos = mul (UNITY_MATRIX_MVP, v.vertex);
+
+ o.uv = v.texcoord.xy;
+ half2 netFilterWidth = _MainTex_TexelSize.xy * half2(1.0, 0.0) * _Parameter.x;
+ half4 coords = -netFilterWidth.xyxy * 3.0;
+
+ o.offs[0] = v.texcoord.xyxy + coords * half4(1.0h,1.0h,-1.0h,-1.0h);
+ coords += netFilterWidth.xyxy;
+ o.offs[1] = v.texcoord.xyxy + coords * half4(1.0h,1.0h,-1.0h,-1.0h);
+ coords += netFilterWidth.xyxy;
+ o.offs[2] = v.texcoord.xyxy + coords * half4(1.0h,1.0h,-1.0h,-1.0h);
+
+ return o;
+ }
+
+ v2f_withBlurCoordsSGX vertBlurVerticalSGX (appdata_img v)
+ {
+ v2f_withBlurCoordsSGX o;
+ o.pos = mul (UNITY_MATRIX_MVP, v.vertex);
+
+ o.uv = half4(v.texcoord.xy,1,1);
+ half2 netFilterWidth = _MainTex_TexelSize.xy * half2(0.0, 1.0) * _Parameter.x;
+ half4 coords = -netFilterWidth.xyxy * 3.0;
+
+ o.offs[0] = v.texcoord.xyxy + coords * half4(1.0h,1.0h,-1.0h,-1.0h);
+ coords += netFilterWidth.xyxy;
+ o.offs[1] = v.texcoord.xyxy + coords * half4(1.0h,1.0h,-1.0h,-1.0h);
+ coords += netFilterWidth.xyxy;
+ o.offs[2] = v.texcoord.xyxy + coords * half4(1.0h,1.0h,-1.0h,-1.0h);
+
+ return o;
+ }
+
+ half4 fragBlurSGX ( v2f_withBlurCoordsSGX i ) : SV_Target
+ {
+ half2 uv = i.uv.xy;
+
+ half4 color = tex2D(_MainTex, i.uv) * curve4[3];
+
+ for( int l = 0; l < 3; l++ )
+ {
+ half4 tapA = tex2D(_MainTex, i.offs[l].xy);
+ half4 tapB = tex2D(_MainTex, i.offs[l].zw);
+ color += (tapA + tapB) * curve4[l];
+ }
+
+ return color;
+
+ }
+
+ ENDCG
+
+ SubShader {
+ ZTest Off Cull Off ZWrite Off Blend Off
+
+ // 0
+ Pass {
+
+ CGPROGRAM
+
+ #pragma vertex vert4Tap
+ #pragma fragment fragDownsample
+
+ ENDCG
+
+ }
+
+ // 1
+ Pass {
+ ZTest Always
+ Cull Off
+
+ CGPROGRAM
+
+ #pragma vertex vertBlurVertical
+ #pragma fragment fragBlur8
+
+ ENDCG
+ }
+
+ // 2
+ Pass {
+ ZTest Always
+ Cull Off
+
+ CGPROGRAM
+
+ #pragma vertex vertBlurHorizontal
+ #pragma fragment fragBlur8
+
+ ENDCG
+ }
+
+ // alternate blur
+ // 3
+ Pass {
+ ZTest Always
+ Cull Off
+
+ CGPROGRAM
+
+ #pragma vertex vertBlurVerticalSGX
+ #pragma fragment fragBlurSGX
+
+ ENDCG
+ }
+
+ // 4
+ Pass {
+ ZTest Always
+ Cull Off
+
+ CGPROGRAM
+
+ #pragma vertex vertBlurHorizontalSGX
+ #pragma fragment fragBlurSGX
+
+ ENDCG
+ }
+ }
+
+ FallBack Off
+}
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/MobileBlur.shader.meta b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/MobileBlur.shader.meta
new file mode 100644
index 0000000..6770288
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/MobileBlur.shader.meta
@@ -0,0 +1,4 @@
+fileFormatVersion: 2
+guid: f9d5fa183cd6b45eeb1491f74863cd91
+ShaderImporter:
+ userData:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/MultiPassHollywoodFlares.shader b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/MultiPassHollywoodFlares.shader
new file mode 100644
index 0000000..3f4b93f
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/MultiPassHollywoodFlares.shader
@@ -0,0 +1,154 @@
+Shader "Hidden/MultipassHollywoodFlares" {
+ Properties {
+ _MainTex ("Base (RGB)", 2D) = "" {}
+ _NonBlurredTex ("Base (RGB)", 2D) = "" {}
+ }
+
+ CGINCLUDE
+
+ #include "UnityCG.cginc"
+
+ struct v2f {
+ half4 pos : SV_POSITION;
+ half2 uv : TEXCOORD0;
+ };
+
+ struct v2f_opts {
+ half4 pos : SV_POSITION;
+ half2 uv[7] : TEXCOORD0;
+ };
+
+ half4 offsets;
+ half4 tintColor;
+
+ half stretchWidth;
+ half2 _Threshhold;
+
+ half4 _MainTex_TexelSize;
+
+ sampler2D _MainTex;
+ sampler2D _NonBlurredTex;
+
+ v2f vert (appdata_img v) {
+ v2f o;
+ o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
+ o.uv = v.texcoord.xy;
+ return o;
+ }
+
+ v2f_opts vertStretch (appdata_img v) {
+ v2f_opts o;
+ o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
+ half b = stretchWidth;
+ o.uv[0] = v.texcoord.xy;
+ o.uv[1] = v.texcoord.xy + b * 2.0 * offsets.xy;
+ o.uv[2] = v.texcoord.xy - b * 2.0 * offsets.xy;
+ o.uv[3] = v.texcoord.xy + b * 4.0 * offsets.xy;
+ o.uv[4] = v.texcoord.xy - b * 4.0 * offsets.xy;
+ o.uv[5] = v.texcoord.xy + b * 6.0 * offsets.xy;
+ o.uv[6] = v.texcoord.xy - b * 6.0 * offsets.xy;
+ return o;
+ }
+
+ v2f_opts vertVerticalCoords (appdata_img v) {
+ v2f_opts o;
+ o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
+ o.uv[0] = v.texcoord.xy;
+ o.uv[1] = v.texcoord.xy + 0.5 * _MainTex_TexelSize.xy * half2(0,1);
+ o.uv[2] = v.texcoord.xy - 0.5 * _MainTex_TexelSize.xy * half2(0,1);
+ o.uv[3] = v.texcoord.xy + 1.5 * _MainTex_TexelSize.xy * half2(0,1);
+ o.uv[4] = v.texcoord.xy - 1.5 * _MainTex_TexelSize.xy * half2(0,1);
+ o.uv[5] = v.texcoord.xy + 2.5 * _MainTex_TexelSize.xy * half2(0,1);
+ o.uv[6] = v.texcoord.xy - 2.5 * _MainTex_TexelSize.xy * half2(0,1);
+ return o;
+ }
+
+ // deprecated
+ half4 fragPrepare (v2f i) : SV_Target {
+ half4 color = tex2D (_MainTex, i.uv);
+ half4 colorNb = tex2D (_NonBlurredTex, i.uv);
+ return color * tintColor * 0.5 + colorNb * normalize (tintColor) * 0.5;
+ }
+
+
+ half4 fragPreAndCut (v2f_opts i) : SV_Target {
+ half4 color = tex2D (_MainTex, i.uv[0]);
+ color += tex2D (_MainTex, i.uv[1]);
+ color += tex2D (_MainTex, i.uv[2]);
+ color += tex2D (_MainTex, i.uv[3]);
+ color += tex2D (_MainTex, i.uv[4]);
+ color += tex2D (_MainTex, i.uv[5]);
+ color += tex2D (_MainTex, i.uv[6]);
+ return max(color / 7.0 - _Threshhold.x, 0.0) * _Threshhold.y * tintColor;
+ }
+
+ half4 fragStretch (v2f_opts i) : SV_Target {
+ half4 color = tex2D (_MainTex, i.uv[0]);
+ color = max (color, tex2D (_MainTex, i.uv[1]));
+ color = max (color, tex2D (_MainTex, i.uv[2]));
+ color = max (color, tex2D (_MainTex, i.uv[3]));
+ color = max (color, tex2D (_MainTex, i.uv[4]));
+ color = max (color, tex2D (_MainTex, i.uv[5]));
+ color = max (color, tex2D (_MainTex, i.uv[6]));
+ return color;
+ }
+
+ half4 fragPost (v2f_opts i) : SV_Target {
+ half4 color = tex2D (_MainTex, i.uv[0]);
+ color += tex2D (_MainTex, i.uv[1]);
+ color += tex2D (_MainTex, i.uv[2]);
+ color += tex2D (_MainTex, i.uv[3]);
+ color += tex2D (_MainTex, i.uv[4]);
+ color += tex2D (_MainTex, i.uv[5]);
+ color += tex2D (_MainTex, i.uv[6]);
+ return color * 1.0/(7.0 + Luminance(color.rgb) + 0.5); // this also makes it a little noisy
+ }
+
+ ENDCG
+
+Subshader {
+ ZTest Always Cull Off ZWrite Off
+ Pass {
+
+ CGPROGRAM
+
+ #pragma vertex vert
+ #pragma fragment fragPrepare
+
+ ENDCG
+ }
+
+ Pass {
+
+ CGPROGRAM
+
+ #pragma vertex vertStretch
+ #pragma fragment fragStretch
+
+ ENDCG
+ }
+
+ Pass {
+
+ CGPROGRAM
+
+ #pragma vertex vertVerticalCoords
+ #pragma fragment fragPreAndCut
+
+ ENDCG
+ }
+
+ Pass {
+
+ CGPROGRAM
+
+ #pragma vertex vertVerticalCoords
+ #pragma fragment fragPost
+
+ ENDCG
+ }
+}
+
+Fallback off
+
+}
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/MultiPassHollywoodFlares.shader.meta b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/MultiPassHollywoodFlares.shader.meta
new file mode 100644
index 0000000..62c6a79
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/MultiPassHollywoodFlares.shader.meta
@@ -0,0 +1,4 @@
+fileFormatVersion: 2
+guid: e2baf3cae8edc4daf94c9adc2154be00
+ShaderImporter:
+ userData:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/SeparableBlurPlus.shader b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/SeparableBlurPlus.shader
new file mode 100644
index 0000000..cc054f4
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/SeparableBlurPlus.shader
@@ -0,0 +1,69 @@
+Shader "Hidden/SeparableBlurPlus" {
+ Properties {
+ _MainTex ("Base (RGB)", 2D) = "" {}
+ }
+
+ CGINCLUDE
+
+ #include "UnityCG.cginc"
+
+ struct v2f {
+ half4 pos : SV_POSITION;
+ half2 uv : TEXCOORD0;
+ half4 uv01 : TEXCOORD1;
+ half4 uv23 : TEXCOORD2;
+ half4 uv45 : TEXCOORD3;
+ half4 uv67 : TEXCOORD4;
+ };
+
+ half4 offsets;
+
+ sampler2D _MainTex;
+
+ v2f vert (appdata_img v) {
+ v2f o;
+ o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
+
+ o.uv.xy = v.texcoord.xy;
+
+ o.uv01 = v.texcoord.xyxy + offsets.xyxy * half4(1,1, -1,-1);
+ o.uv23 = v.texcoord.xyxy + offsets.xyxy * half4(1,1, -1,-1) * 2.0;
+ o.uv45 = v.texcoord.xyxy + offsets.xyxy * half4(1,1, -1,-1) * 3.0;
+ o.uv67 = v.texcoord.xyxy + offsets.xyxy * half4(1,1, -1,-1) * 4.5;
+ o.uv67 = v.texcoord.xyxy + offsets.xyxy * half4(1,1, -1,-1) * 6.5;
+
+ return o;
+ }
+
+ half4 frag (v2f i) : SV_Target {
+ half4 color = half4 (0,0,0,0);
+
+ color += 0.225 * tex2D (_MainTex, i.uv);
+ color += 0.150 * tex2D (_MainTex, i.uv01.xy);
+ color += 0.150 * tex2D (_MainTex, i.uv01.zw);
+ color += 0.110 * tex2D (_MainTex, i.uv23.xy);
+ color += 0.110 * tex2D (_MainTex, i.uv23.zw);
+ color += 0.075 * tex2D (_MainTex, i.uv45.xy);
+ color += 0.075 * tex2D (_MainTex, i.uv45.zw);
+ color += 0.0525 * tex2D (_MainTex, i.uv67.xy);
+ color += 0.0525 * tex2D (_MainTex, i.uv67.zw);
+
+ return color;
+ }
+
+ ENDCG
+
+Subshader {
+ Pass {
+ ZTest Always Cull Off ZWrite Off
+
+ CGPROGRAM
+ #pragma vertex vert
+ #pragma fragment frag
+ ENDCG
+ }
+}
+
+Fallback off
+
+} // shader
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/SeparableBlurPlus.shader.meta b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/SeparableBlurPlus.shader.meta
new file mode 100644
index 0000000..f675def
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/SeparableBlurPlus.shader.meta
@@ -0,0 +1,4 @@
+fileFormatVersion: 2
+guid: a9df009a214e24a5ebbf271595f8d5b6
+ShaderImporter:
+ userData:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/VignetteShader.shader b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/VignetteShader.shader
new file mode 100644
index 0000000..4289b2d
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/VignetteShader.shader
@@ -0,0 +1,57 @@
+Shader "Hidden/VignetteShader" {
+ Properties {
+ _MainTex ("Base (RGB)", 2D) = "" {}
+ }
+
+ CGINCLUDE
+
+ #include "UnityCG.cginc"
+
+ struct v2f {
+ float4 pos : SV_POSITION;
+ float2 uv : TEXCOORD0;
+ };
+
+ sampler2D _MainTex;
+
+ float4 _MainTex_TexelSize;
+ float vignetteIntensity;
+
+ v2f vert( appdata_img v ) {
+ v2f o;
+ o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
+
+ o.uv = v.texcoord.xy;
+ return o;
+ }
+
+ half4 frag(v2f i) : SV_Target {
+ half2 coords = i.uv;
+ half2 uv = i.uv;
+
+ coords = (coords - 0.5) * 2.0;
+ half coordDot = dot (coords,coords);
+ half4 color = tex2D (_MainTex, uv);
+
+ float mask = 1.0 - coordDot * vignetteIntensity;
+ return color * mask;
+ }
+
+ ENDCG
+
+Subshader {
+ Pass {
+ ZTest Always Cull Off ZWrite Off
+
+ CGPROGRAM
+
+ #pragma vertex vert
+ #pragma fragment frag
+
+ ENDCG
+ }
+}
+
+Fallback off
+
+} // shader
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/VignetteShader.shader.meta b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/VignetteShader.shader.meta
new file mode 100644
index 0000000..63b6b76
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_BloomAndFlares/VignetteShader.shader.meta
@@ -0,0 +1,4 @@
+fileFormatVersion: 2
+guid: 562f620336e024ac99992ff05725a89a
+ShaderImporter:
+ userData:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField.meta b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField.meta
new file mode 100644
index 0000000..955cea4
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField.meta
@@ -0,0 +1,2 @@
+fileFormatVersion: 2
+guid: d9cccf980fcb7441d85b8b3b5c2d2c34
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/Bokeh34.shader b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/Bokeh34.shader
new file mode 100644
index 0000000..b691a11
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/Bokeh34.shader
@@ -0,0 +1,78 @@
+
+Shader "Hidden/Dof/Bokeh34" {
+Properties {
+ _MainTex ("Base (RGB)", 2D) = "white" {}
+ _Source ("Base (RGB)", 2D) = "black" {}
+}
+
+SubShader {
+ CGINCLUDE
+
+ #include "UnityCG.cginc"
+
+ sampler2D _MainTex;
+ sampler2D _Source;
+
+ uniform half4 _ArScale;
+ uniform half _Intensity;
+ uniform half4 _Source_TexelSize;
+
+ struct v2f {
+ half4 pos : SV_POSITION;
+ half2 uv2 : TEXCOORD0;
+ half4 source : TEXCOORD1;
+ };
+
+ #define COC bokeh.a
+
+ v2f vert (appdata_full v)
+ {
+ v2f o;
+
+ o.pos = v.vertex;
+
+ o.uv2.xy = v.texcoord.xy;// * 2.0; <- needed when using Triangles.js and not Quads.js
+
+ #if UNITY_UV_STARTS_AT_TOP
+ float4 bokeh = tex2Dlod (_Source, half4 (v.texcoord1.xy * half2(1,-1) + half2(0,1), 0, 0));
+ #else
+ float4 bokeh = tex2Dlod (_Source, half4 (v.texcoord1.xy, 0, 0));
+ #endif
+
+ o.source = bokeh;
+
+ o.pos.xy += (v.texcoord.xy * 2.0 - 1.0) * _ArScale.xy * COC;// + _ArScale.zw * coc;
+ o.source.rgb *= _Intensity;
+
+ return o;
+ }
+
+
+ half4 frag (v2f i) : SV_Target
+ {
+ half4 color = tex2D (_MainTex, i.uv2.xy);
+ color.rgb *= i.source.rgb;
+ color.a *= Luminance(i.source.rgb*0.25);
+ return color;
+ }
+
+ ENDCG
+
+ Pass {
+ Blend OneMinusDstColor One
+ ZTest Always Cull Off ZWrite Off
+
+ CGPROGRAM
+
+ #pragma target 3.0
+ #pragma vertex vert
+ #pragma fragment frag
+
+ ENDCG
+ }
+
+}
+
+Fallback off
+
+}
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/Bokeh34.shader.meta b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/Bokeh34.shader.meta
new file mode 100644
index 0000000..f8047da
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/Bokeh34.shader.meta
@@ -0,0 +1,4 @@
+fileFormatVersion: 2
+guid: 57cdacf9b217546aaa18edf39a6151c0
+ShaderImporter:
+ userData:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/DepthOfField34.shader b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/DepthOfField34.shader
new file mode 100644
index 0000000..146b502
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/DepthOfField34.shader
@@ -0,0 +1,486 @@
+ Shader "Hidden/Dof/DepthOfField34" {
+ Properties {
+ _MainTex ("Base", 2D) = "" {}
+ _TapLowBackground ("TapLowBackground", 2D) = "" {}
+ _TapLowForeground ("TapLowForeground", 2D) = "" {}
+ _TapMedium ("TapMedium", 2D) = "" {}
+ }
+
+ CGINCLUDE
+
+ #include "UnityCG.cginc"
+
+ struct v2f {
+ half4 pos : SV_POSITION;
+ half2 uv1 : TEXCOORD0;
+ };
+
+ struct v2fDofApply {
+ half4 pos : SV_POSITION;
+ half2 uv : TEXCOORD0;
+ };
+
+ struct v2fRadius {
+ half4 pos : SV_POSITION;
+ half2 uv : TEXCOORD0;
+ half4 uv1[4] : TEXCOORD1;
+ };
+
+ struct v2fDown {
+ half4 pos : SV_POSITION;
+ half2 uv0 : TEXCOORD0;
+ half2 uv[2] : TEXCOORD1;
+ };
+
+ sampler2D _MainTex;
+ sampler2D_float _CameraDepthTexture;
+ sampler2D _TapLowBackground;
+ sampler2D _TapLowForeground;
+ sampler2D _TapMedium;
+
+ half4 _CurveParams;
+ half _ForegroundBlurExtrude;
+ uniform half3 _Threshhold;
+ uniform float4 _MainTex_TexelSize;
+ uniform float2 _InvRenderTargetSize;
+
+ v2f vert( appdata_img v ) {
+ v2f o;
+ o.pos = mul (UNITY_MATRIX_MVP, v.vertex);
+ o.uv1.xy = v.texcoord.xy;
+ return o;
+ }
+
+ v2fRadius vertWithRadius( appdata_img v ) {
+ v2fRadius o;
+ o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
+ o.uv.xy = v.texcoord.xy;
+
+ const half2 blurOffsets[4] = {
+ half2(-0.5, +1.5),
+ half2(+0.5, -1.5),
+ half2(+1.5, +0.5),
+ half2(-1.5, -0.5)
+ };
+
+ o.uv1[0].xy = v.texcoord.xy + 5.0 * _MainTex_TexelSize.xy * blurOffsets[0];
+ o.uv1[1].xy = v.texcoord.xy + 5.0 * _MainTex_TexelSize.xy * blurOffsets[1];
+ o.uv1[2].xy = v.texcoord.xy + 5.0 * _MainTex_TexelSize.xy * blurOffsets[2];
+ o.uv1[3].xy = v.texcoord.xy + 5.0 * _MainTex_TexelSize.xy * blurOffsets[3];
+
+ o.uv1[0].zw = v.texcoord.xy + 3.0 * _MainTex_TexelSize.xy * blurOffsets[0];
+ o.uv1[1].zw = v.texcoord.xy + 3.0 * _MainTex_TexelSize.xy * blurOffsets[1];
+ o.uv1[2].zw = v.texcoord.xy + 3.0 * _MainTex_TexelSize.xy * blurOffsets[2];
+ o.uv1[3].zw = v.texcoord.xy + 3.0 * _MainTex_TexelSize.xy * blurOffsets[3];
+
+ return o;
+ }
+
+ v2fDofApply vertDofApply( appdata_img v ) {
+ v2fDofApply o;
+ o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
+ o.uv.xy = v.texcoord.xy;
+ return o;
+ }
+
+ v2fDown vertDownsampleWithCocConserve(appdata_img v) {
+ v2fDown o;
+ o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
+ o.uv0.xy = v.texcoord.xy;
+ o.uv[0].xy = v.texcoord.xy + half2(-1.0,-1.0) * _InvRenderTargetSize;
+ o.uv[1].xy = v.texcoord.xy + half2(1.0,-1.0) * _InvRenderTargetSize;
+ return o;
+ }
+
+ half4 BokehPrereqs (sampler2D tex, half4 uv1[4], half4 center, half considerCoc) {
+
+ // @NOTE 1:
+ // we are checking for 3 things in order to create a bokeh.
+ // goal is to get the highest bang for the buck.
+ // 1.) contrast/frequency should be very high (otherwise bokeh mostly unvisible)
+ // 2.) luminance should be high
+ // 3.) no occluder nearby (stored in alpha channel)
+
+ // @NOTE 2: about the alpha channel in littleBlur:
+ // the alpha channel stores an heuristic on how likely it is
+ // that there is no bokeh occluder nearby.
+ // if we didn't' check for that, we'd get very noise bokeh
+ // popping because of the sudden contrast changes
+
+ half4 sampleA = tex2D(tex, uv1[0].zw);
+ half4 sampleB = tex2D(tex, uv1[1].zw);
+ half4 sampleC = tex2D(tex, uv1[2].zw);
+ half4 sampleD = tex2D(tex, uv1[3].zw);
+
+ half4 littleBlur = 0.125 * (sampleA + sampleB + sampleC + sampleD);
+
+ sampleA = tex2D(tex, uv1[0].xy);
+ sampleB = tex2D(tex, uv1[1].xy);
+ sampleC = tex2D(tex, uv1[2].xy);
+ sampleD = tex2D(tex, uv1[3].xy);
+
+ littleBlur += 0.125 * (sampleA + sampleB + sampleC + sampleD);
+
+ littleBlur = lerp (littleBlur, center, saturate(100.0 * considerCoc * abs(littleBlur.a - center.a)));
+
+ return littleBlur;
+ }
+
+ half4 fragDownsampleWithCocConserve(v2fDown i) : SV_Target {
+ half2 rowOfs[4];
+
+ rowOfs[0] = half2(0.0, 0.0);
+ rowOfs[1] = half2(0.0, _InvRenderTargetSize.y);
+ rowOfs[2] = half2(0.0, _InvRenderTargetSize.y) * 2.0;
+ rowOfs[3] = half2(0.0, _InvRenderTargetSize.y) * 3.0;
+
+ half4 color = tex2D(_MainTex, i.uv0.xy);
+
+ half4 sampleA = tex2D(_MainTex, i.uv[0].xy + rowOfs[0]);
+ half4 sampleB = tex2D(_MainTex, i.uv[1].xy + rowOfs[0]);
+ half4 sampleC = tex2D(_MainTex, i.uv[0].xy + rowOfs[2]);
+ half4 sampleD = tex2D(_MainTex, i.uv[1].xy + rowOfs[2]);
+
+ color += sampleA + sampleB + sampleC + sampleD;
+ color *= 0.2;
+
+ // @NOTE we are doing max on the alpha channel for 2 reasons:
+ // 1) foreground blur likes a slightly bigger radius
+ // 2) otherwise we get an ugly outline between high blur- and medium blur-areas
+ // drawback: we get a little bit of color bleeding
+
+ color.a = max(max(sampleA.a, sampleB.a), max(sampleC.a, sampleD.a));
+
+ return color;
+ }
+
+ half4 fragDofApplyBg (v2fDofApply i) : SV_Target {
+ half4 tapHigh = tex2D (_MainTex, i.uv.xy);
+
+ #if UNITY_UV_STARTS_AT_TOP
+ if (_MainTex_TexelSize.y < 0)
+ i.uv.xy = i.uv.xy * half2(1,-1)+half2(0,1);
+ #endif
+
+ half4 tapLow = tex2D (_TapLowBackground, i.uv.xy); // already mixed with medium blur
+ tapHigh = lerp (tapHigh, tapLow, tapHigh.a);
+ return tapHigh;
+ }
+
+ half4 fragDofApplyBgDebug (v2fDofApply i) : SV_Target {
+ half4 tapHigh = tex2D (_MainTex, i.uv.xy);
+
+ half4 tapLow = tex2D (_TapLowBackground, i.uv.xy);
+
+ half4 tapMedium = tex2D (_TapMedium, i.uv.xy);
+ tapMedium.rgb = (tapMedium.rgb + half3 (1, 1, 0)) * 0.5;
+ tapLow.rgb = (tapLow.rgb + half3 (0, 1, 0)) * 0.5;
+
+ tapLow = lerp (tapMedium, tapLow, saturate (tapLow.a * tapLow.a));
+ tapLow = tapLow * 0.5 + tex2D (_TapLowBackground, i.uv.xy) * 0.5;
+
+ return lerp (tapHigh, tapLow, tapHigh.a);
+ }
+
+ half4 fragDofApplyFg (v2fDofApply i) : SV_Target {
+ half4 fgBlur = tex2D(_TapLowForeground, i.uv.xy);
+
+ #if UNITY_UV_STARTS_AT_TOP
+ if (_MainTex_TexelSize.y < 0)
+ i.uv.xy = i.uv.xy * half2(1,-1)+half2(0,1);
+ #endif
+
+ half4 fgColor = tex2D(_MainTex,i.uv.xy);
+
+ //fgBlur.a = saturate(fgBlur.a*_ForegroundBlurWeight+saturate(fgColor.a-fgBlur.a));
+ //fgBlur.a = max (fgColor.a, (2.0 * fgBlur.a - fgColor.a)) * _ForegroundBlurExtrude;
+ fgBlur.a = max(fgColor.a, fgBlur.a * _ForegroundBlurExtrude); //max (fgColor.a, (2.0*fgBlur.a-fgColor.a)) * _ForegroundBlurExtrude;
+
+ return lerp (fgColor, fgBlur, saturate(fgBlur.a));
+ }
+
+ half4 fragDofApplyFgDebug (v2fDofApply i) : SV_Target {
+ half4 fgBlur = tex2D(_TapLowForeground, i.uv.xy);
+
+ half4 fgColor = tex2D(_MainTex,i.uv.xy);
+
+ fgBlur.a = max(fgColor.a, fgBlur.a * _ForegroundBlurExtrude); //max (fgColor.a, (2.0*fgBlur.a-fgColor.a)) * _ForegroundBlurExtrude;
+
+ half4 tapMedium = half4 (1, 1, 0, fgBlur.a);
+ tapMedium.rgb = 0.5 * (tapMedium.rgb + fgColor.rgb);
+
+ fgBlur.rgb = 0.5 * (fgBlur.rgb + half3(0,1,0));
+ fgBlur.rgb = lerp (tapMedium.rgb, fgBlur.rgb, saturate (fgBlur.a * fgBlur.a));
+
+ return lerp ( fgColor, fgBlur, saturate(fgBlur.a));
+ }
+
+ half4 fragCocBg (v2f i) : SV_Target {
+
+ float d = SAMPLE_DEPTH_TEXTURE (_CameraDepthTexture, i.uv1.xy);
+ d = Linear01Depth (d);
+ half coc = 0.0;
+
+ half focalDistance01 = _CurveParams.w + _CurveParams.z;
+
+ if (d > focalDistance01)
+ coc = (d - focalDistance01);
+
+ coc = saturate (coc * _CurveParams.y);
+ return coc;
+ }
+
+ half4 fragCocFg (v2f i) : SV_Target {
+ half4 color = tex2D (_MainTex, i.uv1.xy);
+ color.a = 0.0;
+
+ #if UNITY_UV_STARTS_AT_TOP
+ if (_MainTex_TexelSize.y < 0)
+ i.uv1.xy = i.uv1.xy * half2(1,-1)+half2(0,1);
+ #endif
+
+ float d = SAMPLE_DEPTH_TEXTURE (_CameraDepthTexture, i.uv1.xy);
+ d = Linear01Depth (d);
+
+ half focalDistance01 = (_CurveParams.w - _CurveParams.z);
+
+ if (d < focalDistance01)
+ color.a = (focalDistance01 - d);
+
+ color.a = saturate (color.a * _CurveParams.x);
+ return color;
+ }
+
+ // not being used atm
+
+ half4 fragMask (v2f i) : SV_Target {
+ return half4(0,0,0,0);
+ }
+
+ // used for simple one one blend
+
+ half4 fragAddBokeh (v2f i) : SV_Target {
+ half4 from = tex2D( _MainTex, i.uv1.xy );
+ return from;
+ }
+
+ half4 fragAddFgBokeh (v2f i) : SV_Target {
+ half4 from = tex2D( _MainTex, i.uv1.xy );
+ return from;
+ }
+
+ half4 fragDarkenForBokeh(v2fRadius i) : SV_Target {
+ half4 fromOriginal = tex2D(_MainTex, i.uv.xy);
+ half4 lowRez = BokehPrereqs (_MainTex, i.uv1, fromOriginal, _Threshhold.z);
+ half4 outColor = half4(0,0,0, fromOriginal.a);
+ half modulate = fromOriginal.a;
+
+ // this code imitates the if-then-else conditions below
+ half2 conditionCheck = half2( dot(abs(fromOriginal.rgb-lowRez.rgb), half3(0.3,0.5,0.2)), Luminance(fromOriginal.rgb));
+ conditionCheck *= fromOriginal.a;
+ conditionCheck = saturate(_Threshhold.xy - conditionCheck);
+ outColor = lerp (outColor, fromOriginal, saturate (dot(conditionCheck, half2(1000.0,1000.0))));
+
+ /*
+ if ( abs(dot(fromOriginal.rgb - lowRez.rgb, half3 (0.3,0.5,0.2))) * modulate < _Threshhold.x)
+ outColor = fromOriginal; // no darkening
+ if (Luminance(fromOriginal.rgb) * modulate < _Threshhold.y)
+ outColor = fromOriginal; // no darkening
+ if (lowRez.a < _Threshhold.z) // need to make foreground not cast false bokeh's
+ outColor = fromOriginal; // no darkenin
+ */
+
+ return outColor;
+ }
+
+ half4 fragExtractAndAddToBokeh (v2fRadius i) : SV_Target {
+ half4 from = tex2D(_MainTex, i.uv.xy);
+ half4 lowRez = BokehPrereqs(_MainTex, i.uv1, from, _Threshhold.z);
+ half4 outColor = from;
+
+ // this code imitates the if-then-else conditions below
+ half2 conditionCheck = half2( dot(abs(from.rgb-lowRez.rgb), half3(0.3,0.5,0.2)), Luminance(from.rgb));
+ conditionCheck *= from.a;
+ conditionCheck = saturate(_Threshhold.xy - conditionCheck);
+ outColor = lerp (outColor, half4(0,0,0,0), saturate (dot(conditionCheck, half2(1000.0,1000.0))));
+
+ /*
+ if ( abs(dot(from.rgb - lowRez.rgb, half3 (0.3,0.5,0.2))) * modulate < _Threshhold.x)
+ outColor = half4(0,0,0,0); // don't add
+ if (Luminance(from.rgb) * modulate < _Threshhold.y)
+ outColor = half4(0,0,0,0); // don't add
+ if (lowRez.a < _Threshhold.z) // need to make foreground not cast false bokeh's
+ outColor = half4(0,0,0,0); // don't add
+ */
+
+ return outColor;
+ }
+
+ ENDCG
+
+Subshader {
+
+ // pass 0
+
+ Pass {
+ ZTest Always Cull Off ZWrite Off
+
+ CGPROGRAM
+ #pragma vertex vertDofApply
+ #pragma fragment fragDofApplyBg
+
+ ENDCG
+ }
+
+ // pass 1
+
+ Pass {
+ ZTest Always Cull Off ZWrite Off
+ ColorMask RGB
+
+ CGPROGRAM
+ #pragma vertex vertDofApply
+ #pragma fragment fragDofApplyFgDebug
+
+ ENDCG
+ }
+
+ // pass 2
+
+ Pass {
+ ZTest Always Cull Off ZWrite Off
+ ColorMask RGB
+
+ CGPROGRAM
+ #pragma vertex vertDofApply
+ #pragma fragment fragDofApplyBgDebug
+
+ ENDCG
+ }
+
+
+
+ // pass 3
+
+ Pass {
+ ZTest Always Cull Off ZWrite Off
+ ColorMask A
+
+ CGPROGRAM
+ #pragma vertex vert
+ #pragma fragment fragCocBg
+
+ ENDCG
+ }
+
+
+ // pass 4
+
+
+ Pass {
+ ZTest Always Cull Off ZWrite Off
+ ColorMask RGB
+ //Blend One One
+
+ CGPROGRAM
+ #pragma vertex vertDofApply
+ #pragma fragment fragDofApplyFg
+
+ ENDCG
+ }
+
+ // pass 5
+
+ Pass {
+ ZTest Always Cull Off ZWrite Off
+ ColorMask ARGB
+
+ CGPROGRAM
+ #pragma vertex vert
+ #pragma fragment fragCocFg
+
+ ENDCG
+ }
+
+ // pass 6
+
+ Pass {
+ ZTest Always Cull Off ZWrite Off
+
+ CGPROGRAM
+ #pragma vertex vertDownsampleWithCocConserve
+ #pragma fragment fragDownsampleWithCocConserve
+
+ ENDCG
+ }
+
+ // pass 7
+ // not being used atm
+
+ Pass {
+ ZTest Always Cull Off ZWrite Off
+ ColorMask RGBA
+
+ CGPROGRAM
+ #pragma vertex vert
+ #pragma fragment fragMask
+
+ ENDCG
+ }
+
+ // pass 8
+
+ Pass {
+ ZTest Always Cull Off ZWrite Off
+ Blend SrcAlpha OneMinusSrcAlpha
+ ColorMask RGB
+
+ CGPROGRAM
+ #pragma vertex vert
+ #pragma fragment fragAddBokeh
+
+ ENDCG
+ }
+
+ // pass 9
+
+ Pass {
+ ZTest Always Cull Off ZWrite Off
+ Blend One One
+ ColorMask RGB
+
+ CGPROGRAM
+ #pragma vertex vertWithRadius
+ #pragma fragment fragExtractAndAddToBokeh
+
+ ENDCG
+ }
+
+ // pass 10
+
+ Pass {
+ ZTest Always Cull Off ZWrite Off
+
+ CGPROGRAM
+ #pragma vertex vertWithRadius
+ #pragma fragment fragDarkenForBokeh
+
+ ENDCG
+ }
+
+ // pass 11
+
+ Pass {
+ ZTest Always Cull Off ZWrite Off
+
+ CGPROGRAM
+ #pragma vertex vertWithRadius
+ #pragma fragment fragExtractAndAddToBokeh
+
+ ENDCG
+ }
+ }
+
+Fallback off
+
+}
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/DepthOfField34.shader.meta b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/DepthOfField34.shader.meta
new file mode 100644
index 0000000..b86195b
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/DepthOfField34.shader.meta
@@ -0,0 +1,4 @@
+fileFormatVersion: 2
+guid: 987fb0677d01f43ce8a9dbf12271e668
+ShaderImporter:
+ userData:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/DepthOfFieldDX11.shader b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/DepthOfFieldDX11.shader
new file mode 100644
index 0000000..e36ba8c
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/DepthOfFieldDX11.shader
@@ -0,0 +1,257 @@
+
+/*
+ DX11 Depth Of Field
+ pretty much just does bokeh texture splatting
+
+ basic algorithm:
+
+ * find bright spots
+ * verify high frequency (otherwise dont care)
+ * if possitive, replace with black pixel and add to append buffer
+ * box blur buffer (thus smearing black pixels)
+ * blend bokeh texture sprites via append buffer on top of box blurred buffer
+ * composite with frame buffer
+*/
+
+Shader "Hidden/Dof/DX11Dof"
+{
+ Properties
+ {
+ _MainTex ("", 2D) = "white" {}
+ _BlurredColor ("", 2D) = "white" {}
+ _FgCocMask ("", 2D) = "white" {}
+ }
+
+ CGINCLUDE
+
+ #define BOKEH_ZERO_VEC (float4(0,0,0,0))
+ #define BOKEH_ONE_VEC (float4(1,1,1,1))
+
+ float4 _BokehParams; // legend: dx11BokehScale, dx11BokehIntensity,dx11BokehThreshhold, internalBlurWidth
+ float4 _MainTex_TexelSize;
+ float3 _Screen;
+ float _SpawnHeuristic;
+
+ sampler2D_float _CameraDepthTexture;
+ sampler2D _BlurredColor;
+ sampler2D _MainTex;
+ sampler2D _FgCocMask;
+
+ struct appendStruct {
+ float3 pos;
+ float4 color;
+ };
+
+ struct gs_out {
+ float4 pos : SV_POSITION;
+ float3 uv : TEXCOORD0;
+ float4 color : TEXCOORD1;
+ float4 misc : TEXCOORD2;
+ };
+
+ // TODO: activate border clamp tex sampler state instead?
+ inline float4 clampBorderColor(float2 uv)
+ {
+#if 1
+ if(uv.x<=0) return BOKEH_ZERO_VEC; if(uv.x>=1) return BOKEH_ZERO_VEC;
+ if(uv.y<=0) return BOKEH_ZERO_VEC; if(uv.y>=1) return BOKEH_ZERO_VEC;
+#endif
+ return BOKEH_ONE_VEC;
+ }
+
+ struct vs_out {
+ float4 pos : SV_POSITION;
+ float2 uv : TEXCOORD0;
+ float4 color : TEXCOORD1;
+ float cocOverlap : TEXCOORD2;
+ };
+
+ StructuredBuffer pointBuffer;
+
+ vs_out vertApply (uint id : SV_VertexID)
+ {
+ vs_out o;
+ float2 pos = pointBuffer[id].pos.xy ;
+ o.pos = float4(pos * 2.0 - 1.0, 0, 1);
+ o.color = pointBuffer[id].color;
+ #if UNITY_UV_STARTS_AT_TOP
+ o.pos.y *= -1;
+ #endif
+ o.cocOverlap = pointBuffer[id].pos.z;
+
+ return o;
+ }
+
+ [maxvertexcount(4)]
+ void geom (point vs_out input[1], inout TriangleStream outStream)
+ {
+ // NEW ENERGY CONSERVATION:
+
+ float2 scale2 = _BokehParams.ww * input[0].color.aa * _BokehParams.xx;
+ float4 offs = 0;
+ offs.xy = float2(3.0, 3.0) + 2.0f * floor(scale2 + float2(0.5,0.5));
+
+ float2 rs = ((float2(1.0, 1.0) + 2.0f * (scale2 + float2(0.5,0.5))));;
+ float2 f2 = offs.xy / rs;
+
+ float energyAdjustment = (_BokehParams.y) / (rs.x*rs.y);
+ offs.xy *= _Screen.xy;
+
+ gs_out output;
+
+ output.pos = input[0].pos + offs*float4(-1,1,0,0);
+ output.misc = float4(f2,0,0);
+ output.uv = float3(0, 1, input[0].cocOverlap);
+ output.color = input[0].color * energyAdjustment;
+ outStream.Append (output);
+
+ output.pos = input[0].pos + offs*float4(1,1,0,0);
+ output.misc = float4(f2,0,0);
+ output.uv = float3(1, 1, input[0].cocOverlap);
+ output.color = input[0].color * energyAdjustment;
+ outStream.Append (output);
+
+ output.pos = input[0].pos + offs*float4(-1,-1,0,0);
+ output.misc = float4(f2,0,0);
+ output.uv = float3(0, 0, input[0].cocOverlap);
+ output.color = input[0].color * energyAdjustment;
+ outStream.Append (output);
+
+ output.pos = input[0].pos + offs*float4(1,-1,0,0);
+ output.misc = float4(f2,0,0);
+ output.uv = float3(1, 0, input[0].cocOverlap);
+ output.color = input[0].color * energyAdjustment;
+ outStream.Append (output);
+
+ outStream.RestartStrip();
+ }
+
+ENDCG
+
+SubShader
+{
+
+// pass 0: append buffer "collect"
+
+Pass
+{
+ ZWrite Off ZTest Always Cull Off
+
+ CGPROGRAM
+
+ #pragma vertex vert
+ #pragma fragment frag
+ #pragma target 5.0
+
+ #include "UnityCG.cginc"
+
+ struct appdata {
+ float4 vertex : POSITION;
+ float2 texcoord : TEXCOORD0;
+ };
+
+ struct v2f {
+ float4 pos : SV_POSITION;
+ float2 uv_flip : TEXCOORD0;
+ float2 uv : TEXCOORD1;
+ };
+
+ v2f vert (appdata v)
+ {
+ v2f o;
+ o.pos = mul (UNITY_MATRIX_MVP, v.vertex);
+ o.uv = v.texcoord;
+ o.uv_flip = v.texcoord;
+ #if UNITY_UV_STARTS_AT_TOP
+ if(_MainTex_TexelSize.y<0)
+ o.uv_flip.y = 1.0-o.uv_flip.y;
+ if(_MainTex_TexelSize.y<0)
+ o.pos.y *= -1.0;
+ #endif
+ return o;
+ }
+
+ AppendStructuredBuffer pointBufferOutput : register(u1);
+
+ float4 frag (v2f i) : SV_Target
+ {
+ float4 c = tex2D (_MainTex, i.uv_flip);
+ float lumc = Luminance (c.rgb);
+
+ float4 cblurred = tex2D (_BlurredColor, i.uv);
+ float lumblurred = Luminance (cblurred.rgb);
+
+ float fgCoc = tex2D(_FgCocMask, i.uv).a;
+
+ [branch]
+ if (c.a * _BokehParams.w > 1 && cblurred.a > 0.1 && lumc > _BokehParams.z && abs(lumc-lumblurred) > _SpawnHeuristic)
+ {
+ appendStruct append;
+ append.pos = float3(i.uv, fgCoc);
+ append.color.rgba = float4(c.rgb * saturate(c.a*4), c.a);
+ pointBufferOutput.Append (append);
+ return float4(c.rgb * saturate(1-c.a*4), c.a);
+ }
+
+ return c;
+ }
+ ENDCG
+}
+
+// pass 1: bokeh splatting (low resolution)
+
+Pass {
+
+ ZWrite Off ZTest Always Cull Off
+ Blend One One, One One
+ ColorMask RGBA
+
+ CGPROGRAM
+
+ #pragma target 5.0
+ #pragma vertex vertApply
+ #pragma geometry geom
+ #pragma fragment frag
+
+ #include "UnityCG.cginc"
+
+ fixed4 frag (gs_out i) : SV_Target
+ {
+ float2 uv = (i.uv.xy) * i.misc.xy + (float2(1,1)-i.misc.xy) * 0.5; // smooth uv scale
+ return float4(i.color.rgb, 1) * float4(tex2D(_MainTex, uv.xy).rgb, i.uv.z) * clampBorderColor (uv);
+ }
+
+ ENDCG
+}
+
+// pass 2: bokeh splatting (high resolution)
+
+Pass {
+
+ ZWrite Off ZTest Always Cull Off
+ BlendOp Add, Add
+ Blend DstAlpha One, Zero One
+ ColorMask RGBA
+
+ CGPROGRAM
+
+ #pragma target 5.0
+ #pragma vertex vertApply
+ #pragma geometry geom
+ #pragma fragment frag
+
+ #include "UnityCG.cginc"
+
+ fixed4 frag (gs_out i) : SV_Target
+ {
+ float2 uv = (i.uv.xy) * i.misc.xy + (float2(1,1)-i.misc.xy) * 0.5; // smooth uv scale
+ return float4(i.color.rgb, 1) * float4(tex2D(_MainTex, uv.xy).rgb, i.uv.z) * clampBorderColor (uv);
+ }
+
+ ENDCG
+}
+
+}
+
+Fallback Off
+}
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/DepthOfFieldDX11.shader.meta b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/DepthOfFieldDX11.shader.meta
new file mode 100644
index 0000000..15935f1
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/DepthOfFieldDX11.shader.meta
@@ -0,0 +1,4 @@
+fileFormatVersion: 2
+guid: d8e82664aa8686642a424c88ab10164a
+ShaderImporter:
+ userData:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/DepthOfFieldScatter.shader b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/DepthOfFieldScatter.shader
new file mode 100644
index 0000000..fcfbeee
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/DepthOfFieldScatter.shader
@@ -0,0 +1,934 @@
+ Shader "Hidden/Dof/DepthOfFieldHdr" {
+ Properties {
+ _MainTex ("-", 2D) = "black" {}
+ _FgOverlap ("-", 2D) = "black" {}
+ _LowRez ("-", 2D) = "black" {}
+ }
+
+ CGINCLUDE
+
+ #include "UnityCG.cginc"
+
+ struct v2f {
+ float4 pos : SV_POSITION;
+ float2 uv : TEXCOORD0;
+ float2 uv1 : TEXCOORD1;
+ };
+
+ struct v2fRadius {
+ float4 pos : SV_POSITION;
+ float2 uv : TEXCOORD0;
+ float4 uv1[4] : TEXCOORD1;
+ };
+
+ struct v2fBlur {
+ float4 pos : SV_POSITION;
+ float2 uv : TEXCOORD0;
+ float4 uv01 : TEXCOORD1;
+ float4 uv23 : TEXCOORD2;
+ float4 uv45 : TEXCOORD3;
+ float4 uv67 : TEXCOORD4;
+ float4 uv89 : TEXCOORD5;
+ };
+
+ uniform sampler2D _MainTex;
+ uniform sampler2D_float _CameraDepthTexture;
+ uniform sampler2D _FgOverlap;
+ uniform sampler2D _LowRez;
+ uniform float4 _CurveParams;
+ uniform float4 _MainTex_TexelSize;
+ uniform float4 _Offsets;
+
+ v2f vert( appdata_img v )
+ {
+ v2f o;
+ o.pos = mul (UNITY_MATRIX_MVP, v.vertex);
+ o.uv1.xy = v.texcoord.xy;
+ o.uv.xy = v.texcoord.xy;
+
+ #if UNITY_UV_STARTS_AT_TOP
+ if (_MainTex_TexelSize.y < 0)
+ o.uv.y = 1-o.uv.y;
+ #endif
+
+ return o;
+ }
+
+ v2f vertFlip( appdata_img v )
+ {
+ v2f o;
+ o.pos = mul (UNITY_MATRIX_MVP, v.vertex);
+ o.uv1.xy = v.texcoord.xy;
+ o.uv.xy = v.texcoord.xy;
+
+ #if UNITY_UV_STARTS_AT_TOP
+ if (_MainTex_TexelSize.y < 0)
+ o.uv.y = 1-o.uv.y;
+ if (_MainTex_TexelSize.y < 0)
+ o.uv1.y = 1-o.uv1.y;
+ #endif
+
+ return o;
+ }
+
+ v2fBlur vertBlurPlusMinus (appdata_img v)
+ {
+ v2fBlur o;
+ o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
+ o.uv.xy = v.texcoord.xy;
+ o.uv01 = v.texcoord.xyxy + _Offsets.xyxy * float4(1,1, -1,-1) * _MainTex_TexelSize.xyxy / 6.0;
+ o.uv23 = v.texcoord.xyxy + _Offsets.xyxy * float4(2,2, -2,-2) * _MainTex_TexelSize.xyxy / 6.0;
+ o.uv45 = v.texcoord.xyxy + _Offsets.xyxy * float4(3,3, -3,-3) * _MainTex_TexelSize.xyxy / 6.0;
+ o.uv67 = v.texcoord.xyxy + _Offsets.xyxy * float4(4,4, -4,-4) * _MainTex_TexelSize.xyxy / 6.0;
+ o.uv89 = v.texcoord.xyxy + _Offsets.xyxy * float4(5,5, -5,-5) * _MainTex_TexelSize.xyxy / 6.0;
+ return o;
+ }
+
+ #define SCATTER_OVERLAP_SMOOTH (-0.265)
+
+ inline float BokehWeightDisc(float4 theSample, float sampleDistance, float4 centerSample)
+ {
+ return smoothstep(SCATTER_OVERLAP_SMOOTH, 0.0, theSample.a - centerSample.a*sampleDistance);
+ }
+
+ inline float2 BokehWeightDisc2(float4 sampleA, float4 sampleB, float2 sampleDistance2, float4 centerSample)
+ {
+ return smoothstep(float2(SCATTER_OVERLAP_SMOOTH, SCATTER_OVERLAP_SMOOTH), float2(0.0,0.0), float2(sampleA.a, sampleB.a) - centerSample.aa*sampleDistance2); }
+
+ static const int SmallDiscKernelSamples = 12;
+ static const float2 SmallDiscKernel[SmallDiscKernelSamples] =
+ {
+ float2(-0.326212,-0.40581),
+ float2(-0.840144,-0.07358),
+ float2(-0.695914,0.457137),
+ float2(-0.203345,0.620716),
+ float2(0.96234,-0.194983),
+ float2(0.473434,-0.480026),
+ float2(0.519456,0.767022),
+ float2(0.185461,-0.893124),
+ float2(0.507431,0.064425),
+ float2(0.89642,0.412458),
+ float2(-0.32194,-0.932615),
+ float2(-0.791559,-0.59771)
+ };
+
+ static const int NumDiscSamples = 28;
+ static const float3 DiscKernel[NumDiscSamples] =
+ {
+ float3(0.62463,0.54337,0.82790),
+ float3(-0.13414,-0.94488,0.95435),
+ float3(0.38772,-0.43475,0.58253),
+ float3(0.12126,-0.19282,0.22778),
+ float3(-0.20388,0.11133,0.23230),
+ float3(0.83114,-0.29218,0.88100),
+ float3(0.10759,-0.57839,0.58831),
+ float3(0.28285,0.79036,0.83945),
+ float3(-0.36622,0.39516,0.53876),
+ float3(0.75591,0.21916,0.78704),
+ float3(-0.52610,0.02386,0.52664),
+ float3(-0.88216,-0.24471,0.91547),
+ float3(-0.48888,-0.29330,0.57011),
+ float3(0.44014,-0.08558,0.44838),
+ float3(0.21179,0.51373,0.55567),
+ float3(0.05483,0.95701,0.95858),
+ float3(-0.59001,-0.70509,0.91938),
+ float3(-0.80065,0.24631,0.83768),
+ float3(-0.19424,-0.18402,0.26757),
+ float3(-0.43667,0.76751,0.88304),
+ float3(0.21666,0.11602,0.24577),
+ float3(0.15696,-0.85600,0.87027),
+ float3(-0.75821,0.58363,0.95682),
+ float3(0.99284,-0.02904,0.99327),
+ float3(-0.22234,-0.57907,0.62029),
+ float3(0.55052,-0.66984,0.86704),
+ float3(0.46431,0.28115,0.54280),
+ float3(-0.07214,0.60554,0.60982),
+ };
+
+ float4 fragBlurInsaneMQ (v2f i) : SV_Target
+ {
+ float4 centerTap = tex2D(_MainTex, i.uv1.xy);
+ float4 sum = centerTap;
+ float4 poissonScale = _MainTex_TexelSize.xyxy * centerTap.a * _Offsets.w;
+
+ float sampleCount = max(centerTap.a * 0.25, _Offsets.z); // <- weighing with 0.25 looks nicer for small high freq spec
+ sum *= sampleCount;
+
+ float weights = 0;
+
+ for(int l=0; l < NumDiscSamples; l++)
+ {
+ float2 sampleUV = i.uv1.xy + DiscKernel[l].xy * poissonScale.xy;
+ float4 sample0 = tex2D(_MainTex, sampleUV.xy);
+
+ if( sample0.a > 0.0 )
+ {
+ weights = BokehWeightDisc(sample0, DiscKernel[l].z, centerTap);
+ sum += sample0 * weights;
+ sampleCount += weights;
+ }
+ }
+
+ float4 returnValue = sum / sampleCount;
+ returnValue.a = centerTap.a;
+
+ return returnValue;
+ }
+
+ float4 fragBlurInsaneHQ (v2f i) : SV_Target
+ {
+ float4 centerTap = tex2D(_MainTex, i.uv1.xy);
+ float4 sum = centerTap;
+ float4 poissonScale = _MainTex_TexelSize.xyxy * centerTap.a * _Offsets.w;
+
+ float sampleCount = max(centerTap.a * 0.25, _Offsets.z); // <- weighing with 0.25 looks nicer for small high freq spec
+ sum *= sampleCount;
+
+ float2 weights = 0;
+
+ for(int l=0; l < NumDiscSamples; l++)
+ {
+ float4 sampleUV = i.uv1.xyxy + DiscKernel[l].xyxy * poissonScale.xyxy / float4(1.2,1.2,DiscKernel[l].zz);
+
+ float4 sample0 = tex2D(_MainTex, sampleUV.xy);
+ float4 sample1 = tex2D(_MainTex, sampleUV.zw);
+
+ if( (sample0.a + sample1.a) > 0.0 )
+ {
+ weights = BokehWeightDisc2(sample0, sample1, float2(DiscKernel[l].z/1.2, 1.0), centerTap);
+ sum += sample0 * weights.x + sample1 * weights.y;
+ sampleCount += dot(weights, 1);
+ }
+ }
+
+ float4 returnValue = sum / sampleCount;
+ returnValue.a = centerTap.a;
+
+ return returnValue;
+ }
+
+ inline float4 BlendLowWithHighHQ(float coc, float4 low, float4 high)
+ {
+ float blend = smoothstep(0.65,0.85, coc);
+ return lerp(low, high, blend);
+ }
+
+ inline float4 BlendLowWithHighMQ(float coc, float4 low, float4 high)
+ {
+ float blend = smoothstep(0.4,0.6, coc);
+ return lerp(low, high, blend);
+ }
+
+ float4 fragBlurUpsampleCombineHQ (v2f i) : SV_Target
+ {
+ float4 bigBlur = tex2D(_LowRez, i.uv1.xy);
+ float4 centerTap = tex2D(_MainTex, i.uv1.xy);
+
+ float4 smallBlur = centerTap;
+ float4 poissonScale = _MainTex_TexelSize.xyxy * centerTap.a * _Offsets.w ;
+
+ float sampleCount = max(centerTap.a * 0.25, 0.1f); // <- weighing with 0.25 looks nicer for small high freq spec
+ smallBlur *= sampleCount;
+
+ for(int l=0; l < NumDiscSamples; l++)
+ {
+ float2 sampleUV = i.uv1.xy + DiscKernel[l].xy * poissonScale.xy;
+
+ float4 sample0 = tex2D(_MainTex, sampleUV);
+ float weight0 = BokehWeightDisc(sample0, DiscKernel[l].z, centerTap);
+ smallBlur += sample0 * weight0; sampleCount += weight0;
+ }
+
+ smallBlur /= (sampleCount+1e-5f);
+ smallBlur = BlendLowWithHighHQ(centerTap.a, smallBlur, bigBlur);
+
+ return centerTap.a < 1e-2f ? centerTap : float4(smallBlur.rgb,centerTap.a);
+ }
+
+ float4 fragBlurUpsampleCombineMQ (v2f i) : SV_Target
+ {
+ float4 bigBlur = tex2D(_LowRez, i.uv1.xy);
+ float4 centerTap = tex2D(_MainTex, i.uv1.xy);
+
+ float4 smallBlur = centerTap;
+ float4 poissonScale = _MainTex_TexelSize.xyxy * centerTap.a * _Offsets.w ;
+
+ float sampleCount = max(centerTap.a * 0.25, 0.1f); // <- weighing with 0.25 looks nicer for small high freq spec
+ smallBlur *= sampleCount;
+
+ for(int l=0; l < SmallDiscKernelSamples; l++)
+ {
+ float2 sampleUV = i.uv1.xy + SmallDiscKernel[l].xy * poissonScale.xy*1.1;
+
+ float4 sample0 = tex2D(_MainTex, sampleUV);
+ float weight0 = BokehWeightDisc(sample0, length(SmallDiscKernel[l].xy*1.1), centerTap);
+ smallBlur += sample0 * weight0; sampleCount += weight0;
+ }
+
+ smallBlur /= (sampleCount+1e-5f);
+
+ smallBlur = BlendLowWithHighMQ(centerTap.a, smallBlur, bigBlur);
+
+ return centerTap.a < 1e-2f ? centerTap : float4(smallBlur.rgb,centerTap.a);
+ }
+
+ float4 fragBlurUpsampleCheap (v2f i) : SV_Target
+ {
+ float4 centerTap = tex2D(_MainTex, i.uv1.xy);
+ float4 bigBlur = tex2D(_LowRez, i.uv1.xy);
+
+ float fgCoc = tex2D(_FgOverlap, i.uv1.xy).a;
+ float4 smallBlur = lerp(centerTap, bigBlur, saturate( max(centerTap.a,fgCoc)*8.0 ));
+
+ return float4(smallBlur.rgb, centerTap.a);
+ }
+
+ float4 fragBlurBox (v2f i) : SV_Target
+ {
+ const int TAPS = 12;
+
+ float4 centerTap = tex2D(_MainTex, i.uv1.xy);
+
+ // TODO: important ? breaks when HR blur is being used
+ //centerTap.a = max(centerTap.a, 0.1f);
+
+ float sampleCount = centerTap.a;
+ float4 sum = centerTap * sampleCount;
+
+ float2 lenStep = centerTap.aa * (1.0 / (TAPS-1.0));
+ float4 steps = (_Offsets.xyxy * _MainTex_TexelSize.xyxy) * lenStep.xyxy * float4(1,1, -1,-1);
+
+ for(int l=1; l 1e-5f) outColor.rgb = color.rgb/sumWeights;
+
+ return outColor;
+ }
+
+ float4 fragCaptureColorAndSignedCoc (v2f i) : SV_Target
+ {
+ float4 color = tex2D (_MainTex, i.uv1.xy);
+ float d = SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, i.uv1.xy);
+ d = Linear01Depth (d);
+ color.a = _CurveParams.z * abs(d - _CurveParams.w) / (d + 1e-5f);
+ color.a = clamp( max(0.0, color.a - _CurveParams.y), 0.0, _CurveParams.x) * sign(d - _CurveParams.w);
+
+ return color;
+ }
+
+ float4 fragCaptureCoc (v2f i) : SV_Target
+ {
+ float4 color = float4(0,0,0,0); //tex2D (_MainTex, i.uv1.xy);
+ float d = SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, i.uv1.xy);
+ d = Linear01Depth (d);
+ color.a = _CurveParams.z * abs(d - _CurveParams.w) / (d + 1e-5f);
+ color.a = clamp( max(0.0, color.a - _CurveParams.y), 0.0, _CurveParams.x);
+
+ return color;
+ }
+
+ float4 AddFgCoc (v2f i) : SV_Target
+ {
+ return tex2D (_MainTex, i.uv1.xy);
+ }
+
+ float4 fragMergeCoc (v2f i) : SV_Target
+ {
+ float4 color = tex2D (_FgOverlap, i.uv.xy); // this is the foreground overlap value
+ float fgCoc = color.a;
+
+ float d = SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, i.uv1.xy);
+ d = Linear01Depth (d);
+ color.a = _CurveParams.z * abs(d - _CurveParams.w) / (d + 1e-5f);
+ color.a = clamp( max(0.0, color.a - _CurveParams.y), 0.0, _CurveParams.x);
+
+ return max(color.aaaa, float4(fgCoc,fgCoc,fgCoc,fgCoc));
+ }
+
+ float4 fragCombineCocWithMaskBlur (v2f i) : SV_Target
+ {
+ float bgAndFgCoc = tex2D (_MainTex, i.uv1.xy).a;
+ float fgOverlapCoc = tex2D (_FgOverlap, i.uv1.xy).a;
+
+ return (bgAndFgCoc < 0.01) * saturate(fgOverlapCoc-bgAndFgCoc);
+ }
+
+ float4 fragCaptureForegroundCoc (v2f i) : SV_Target
+ {
+ float4 color = float4(0,0,0,0); //tex2D (_MainTex, i.uv1.xy);
+ float d = SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, i.uv1.xy);
+ d = Linear01Depth (d);
+ color.a = _CurveParams.z * (_CurveParams.w-d) / (d + 1e-5f);
+ color.a = clamp(max(0.0, color.a - _CurveParams.y), 0.0, _CurveParams.x);
+
+ return color;
+ }
+
+ float4 fragCaptureForegroundCocMask (v2f i) : SV_Target
+ {
+ float4 color = float4(0,0,0,0);
+ float d = SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, i.uv1.xy);
+ d = Linear01Depth (d);
+ color.a = _CurveParams.z * (_CurveParams.w-d) / (d + 1e-5f);
+ color.a = clamp(max(0.0, color.a - _CurveParams.y), 0.0, _CurveParams.x);
+
+ return color.a > 0;
+ }
+
+ float4 fragBlendInHighRez (v2f i) : SV_Target
+ {
+ float4 tapHighRez = tex2D(_MainTex, i.uv.xy);
+ return float4(tapHighRez.rgb, 1.0-saturate(tapHighRez.a*5.0));
+ }
+
+ float4 fragBlendInLowRezParts (v2f i) : SV_Target
+ {
+ float4 from = tex2D(_MainTex, i.uv1.xy);
+ from.a = saturate(from.a * _Offsets.w) / (_CurveParams.x + 1e-5f);
+ float square = from.a * from.a;
+ from.a = square * square * _CurveParams.x;
+ return from;
+ }
+
+ float4 fragUpsampleWithAlphaMask(v2f i) : SV_Target
+ {
+ float4 c = tex2D(_MainTex, i.uv1.xy);
+ return c;
+ }
+
+ float4 fragAlphaMask(v2f i) : SV_Target
+ {
+ float4 c = tex2D(_MainTex, i.uv1.xy);
+ c.a = saturate(c.a*100.0);
+ return c;
+ }
+
+ ENDCG
+
+Subshader
+{
+
+ // pass 0
+
+ Pass {
+ ZTest Always Cull Off ZWrite Off
+ ColorMask A
+
+ CGPROGRAM
+
+ #pragma target 3.0
+ #pragma vertex vert
+ #pragma fragment fragCaptureCoc
+
+ ENDCG
+ }
+
+ // pass 1
+
+ Pass
+ {
+ ZTest Always Cull Off ZWrite Off
+
+ CGPROGRAM
+
+ #pragma target 3.0
+ #pragma vertex vertBlurPlusMinus
+ #pragma fragment fragGaussBlur
+
+ ENDCG
+ }
+
+ // pass 2
+
+ Pass {
+ ZTest Always Cull Off ZWrite Off
+
+ CGPROGRAM
+
+ #pragma target 3.0
+ #pragma vertex vertBlurPlusMinus
+ #pragma fragment fragBlurForFgCoc
+
+ ENDCG
+ }
+
+
+ // pass 3
+
+ Pass
+ {
+ ZTest Always Cull Off ZWrite Off
+ ColorMask A
+ BlendOp Max, Max
+ Blend One One, One One
+
+ CGPROGRAM
+
+ #pragma target 3.0
+ #pragma vertex vert
+ #pragma fragment AddFgCoc
+
+ ENDCG
+ }
+
+
+ // pass 4
+
+ Pass
+ {
+ ZTest Always Cull Off ZWrite Off
+ ColorMask A
+
+ CGPROGRAM
+
+ #pragma target 3.0
+ #pragma vertex vert
+ #pragma fragment fragCaptureForegroundCoc
+
+ ENDCG
+ }
+
+ // pass 5
+
+ Pass {
+ ZTest Always Cull Off ZWrite Off
+
+ CGPROGRAM
+
+ #pragma target 3.0
+ #pragma vertex vert
+ #pragma fragment fragBlurBox
+
+ ENDCG
+ }
+
+ // pass 6
+
+ Pass {
+ ZTest Always Cull Off ZWrite Off
+
+ CGPROGRAM
+
+ #pragma target 3.0
+ #pragma vertex vert
+ #pragma fragment frag4TapBlurForLRSpawn
+
+ ENDCG
+ }
+
+ // pass 7
+
+ Pass {
+ ZTest Always Cull Off ZWrite Off
+ ColorMask RGB
+ Blend SrcAlpha OneMinusSrcAlpha
+
+ CGPROGRAM
+
+ #pragma target 3.0
+ #pragma vertex vert
+ #pragma fragment fragBlendInHighRez
+
+ ENDCG
+ }
+
+ // pass 8
+
+ Pass
+ {
+ ZTest Always Cull Off ZWrite Off
+ ColorMask A
+
+ CGPROGRAM
+
+ #pragma target 3.0
+ #pragma vertex vert
+ #pragma fragment fragCaptureForegroundCocMask
+
+ ENDCG
+ }
+
+
+ // pass 9
+
+ Pass {
+ ZTest Always Cull Off ZWrite Off
+
+ CGPROGRAM
+
+ #pragma target 3.0
+ #pragma vertex vert
+ #pragma fragment fragBlurUpsampleCheap
+
+ ENDCG
+ }
+
+ // pass 10
+
+ Pass {
+ ZTest Always Cull Off ZWrite Off
+
+ CGPROGRAM
+
+ #pragma target 3.0
+ #pragma vertex vert
+ #pragma fragment fragCaptureColorAndSignedCoc
+
+ ENDCG
+ }
+
+ // pass 11
+
+ Pass {
+ ZTest Always Cull Off ZWrite Off
+
+ CGPROGRAM
+
+ #pragma target 3.0
+ #pragma vertex vert
+ #pragma fragment fragBlurInsaneMQ
+
+ ENDCG
+ }
+
+ // pass 12
+
+ Pass {
+ ZTest Always Cull Off ZWrite Off
+
+ CGPROGRAM
+
+ #pragma target 3.0
+ #pragma vertex vert
+ #pragma fragment fragBlurUpsampleCombineMQ
+
+ ENDCG
+ }
+
+ // pass 13
+ Pass {
+ ZTest Always Cull Off ZWrite Off
+
+ ColorMask A
+
+ CGPROGRAM
+
+ #pragma target 3.0
+ #pragma vertex vert
+ #pragma fragment fragMergeCoc
+
+ ENDCG
+ }
+
+ // pass 14
+
+ Pass {
+ ZTest Always Cull Off ZWrite Off
+
+ ColorMask A
+ BlendOp Max, Max
+ Blend One One, One One
+
+ CGPROGRAM
+
+ #pragma target 3.0
+ #pragma vertex vert
+ #pragma fragment fragCombineCocWithMaskBlur
+
+ ENDCG
+ }
+
+ // pass 15
+
+ Pass {
+ ZTest Always Cull Off ZWrite Off
+
+ CGPROGRAM
+
+ #pragma target 3.0
+ #pragma vertex vert
+ #pragma fragment fragBoxDownsample
+
+ ENDCG
+ }
+
+ // pass 16
+ Pass {
+ ZTest Always Cull Off ZWrite Off
+
+ CGPROGRAM
+
+ #pragma target 3.0
+ #pragma vertex vert
+ #pragma fragment fragVisualize
+
+ ENDCG
+ }
+
+ // pass 17
+
+ Pass {
+ ZTest Always Cull Off ZWrite Off
+
+ CGPROGRAM
+
+ #pragma target 3.0
+ #pragma vertex vert
+ #pragma fragment fragBlurInsaneHQ
+
+ ENDCG
+ }
+
+ // pass 18
+
+ Pass {
+ ZTest Always Cull Off ZWrite Off
+
+ CGPROGRAM
+
+ #pragma target 3.0
+ #pragma vertex vert
+ #pragma fragment fragBlurUpsampleCombineHQ
+
+ ENDCG
+ }
+
+ // pass 19
+
+ Pass {
+ ZTest Always Cull Off ZWrite Off
+
+ CGPROGRAM
+
+ #pragma target 3.0
+ #pragma vertex vertBlurPlusMinus
+ #pragma fragment fragBlurAlphaWeighted
+
+ ENDCG
+ }
+
+ // pass 20
+
+ Pass {
+ ZTest Always Cull Off ZWrite Off
+
+ CGPROGRAM
+
+ #pragma target 3.0
+ #pragma vertex vert
+ #pragma fragment fragAlphaMask
+
+ ENDCG
+ }
+
+ // pass 21
+
+ Pass {
+ ZTest Always Cull Off ZWrite Off
+
+ BlendOp Add, Add
+ Blend DstAlpha OneMinusDstAlpha, Zero One
+
+ CGPROGRAM
+
+ #pragma target 3.0
+ #pragma vertex vertFlip
+ #pragma fragment fragBlurBox
+
+ ENDCG
+ }
+
+ // pass 22
+
+ Pass {
+ ZTest Always Cull Off ZWrite Off
+
+ // destination alpha needs to stay intact as we have layed alpha before
+ BlendOp Add, Add
+ Blend DstAlpha One, Zero One
+
+ CGPROGRAM
+
+ #pragma target 3.0
+ #pragma vertex vert
+ #pragma fragment fragUpsampleWithAlphaMask
+
+ ENDCG
+ }
+}
+
+Fallback off
+
+}
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/DepthOfFieldScatter.shader.meta b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/DepthOfFieldScatter.shader.meta
new file mode 100644
index 0000000..b38c974
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/DepthOfFieldScatter.shader.meta
@@ -0,0 +1,4 @@
+fileFormatVersion: 2
+guid: acd613035ff3e455e8abf23fdc8c8c24
+ShaderImporter:
+ userData:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/SeparableBlur.shader b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/SeparableBlur.shader
new file mode 100644
index 0000000..3bf6cdf
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/SeparableBlur.shader
@@ -0,0 +1,66 @@
+Shader "Hidden/SeparableBlur" {
+ Properties {
+ _MainTex ("Base (RGB)", 2D) = "" {}
+ }
+
+ CGINCLUDE
+
+ #include "UnityCG.cginc"
+
+ struct v2f {
+ float4 pos : SV_POSITION;
+ float2 uv : TEXCOORD0;
+
+ float4 uv01 : TEXCOORD1;
+ float4 uv23 : TEXCOORD2;
+ float4 uv45 : TEXCOORD3;
+ };
+
+ float4 offsets;
+
+ sampler2D _MainTex;
+
+ v2f vert (appdata_img v) {
+ v2f o;
+ o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
+
+ o.uv.xy = v.texcoord.xy;
+
+ o.uv01 = v.texcoord.xyxy + offsets.xyxy * float4(1,1, -1,-1);
+ o.uv23 = v.texcoord.xyxy + offsets.xyxy * float4(1,1, -1,-1) * 2.0;
+ o.uv45 = v.texcoord.xyxy + offsets.xyxy * float4(1,1, -1,-1) * 3.0;
+
+ return o;
+ }
+
+ half4 frag (v2f i) : SV_Target {
+ half4 color = float4 (0,0,0,0);
+
+ color += 0.40 * tex2D (_MainTex, i.uv);
+ color += 0.15 * tex2D (_MainTex, i.uv01.xy);
+ color += 0.15 * tex2D (_MainTex, i.uv01.zw);
+ color += 0.10 * tex2D (_MainTex, i.uv23.xy);
+ color += 0.10 * tex2D (_MainTex, i.uv23.zw);
+ color += 0.05 * tex2D (_MainTex, i.uv45.xy);
+ color += 0.05 * tex2D (_MainTex, i.uv45.zw);
+
+ return color;
+ }
+
+ ENDCG
+
+Subshader {
+ Pass {
+ ZTest Always Cull Off ZWrite Off
+
+ CGPROGRAM
+ #pragma vertex vert
+ #pragma fragment frag
+ ENDCG
+ }
+}
+
+Fallback off
+
+
+} // shader
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/SeparableBlur.shader.meta b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/SeparableBlur.shader.meta
new file mode 100644
index 0000000..b9f6a84
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/SeparableBlur.shader.meta
@@ -0,0 +1,4 @@
+fileFormatVersion: 2
+guid: e97c14fbb5ea04c3a902cc533d7fc5d1
+ShaderImporter:
+ userData:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/SeparableWeightedBlurDof34.shader b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/SeparableWeightedBlurDof34.shader
new file mode 100644
index 0000000..fb6b37c
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/SeparableWeightedBlurDof34.shader
@@ -0,0 +1,242 @@
+Shader "Hidden/SeparableWeightedBlurDof34" {
+ Properties {
+ _MainTex ("Base (RGB)", 2D) = "" {}
+ _TapMedium ("TapMedium (RGB)", 2D) = "" {}
+ _TapLow ("TapLow (RGB)", 2D) = "" {}
+ _TapHigh ("TapHigh (RGB)", 2D) = "" {}
+ }
+
+ CGINCLUDE
+
+ #include "UnityCG.cginc"
+
+ half4 offsets;
+ half4 _Threshhold;
+ sampler2D _MainTex;
+ sampler2D _TapHigh;
+
+ struct v2f {
+ half4 pos : SV_POSITION;
+ half2 uv : TEXCOORD0;
+ half4 uv01 : TEXCOORD1;
+ half4 uv23 : TEXCOORD2;
+ half4 uv45 : TEXCOORD3;
+ };
+
+ struct v2fSingle {
+ half4 pos : SV_POSITION;
+ half2 uv : TEXCOORD0;
+ };
+
+ //
+ // VERT PROGRAMS
+ //
+
+ v2f vert (appdata_img v) {
+ v2f o;
+ o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
+ o.uv.xy = v.texcoord.xy;
+ o.uv01 = v.texcoord.xyxy + offsets.xyxy * half4(1,1, -1,-1);
+ o.uv23 = v.texcoord.xyxy + offsets.xyxy * half4(1,1, -1,-1) * 2.0;
+ o.uv45 = v.texcoord.xyxy + offsets.xyxy * half4(1,1, -1,-1) * 3.0;
+
+ return o;
+ }
+
+ v2fSingle vertSingleTex (appdata_img v) {
+ v2fSingle o;
+ o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
+ o.uv.xy = v.texcoord.xy;
+ return o;
+ }
+
+ //
+ // FRAG PROGRAMS
+ //
+
+ // mostly used for foreground, so more gaussian-like
+
+ half4 fragBlurUnweighted (v2f i) : SV_Target {
+ half4 blurredColor = half4 (0,0,0,0);
+
+ half4 sampleA = tex2D(_MainTex, i.uv.xy);
+ half4 sampleB = tex2D(_MainTex, i.uv01.xy);
+ half4 sampleC = tex2D(_MainTex, i.uv01.zw);
+ half4 sampleD = tex2D(_MainTex, i.uv23.xy);
+ half4 sampleE = tex2D(_MainTex, i.uv23.zw);
+
+ blurredColor += sampleA;
+ blurredColor += sampleB;
+ blurredColor += sampleC;
+ blurredColor += sampleD;
+ blurredColor += sampleE;
+
+ blurredColor *= 0.2;
+
+ blurredColor.a = max(UNITY_SAMPLE_1CHANNEL(_TapHigh, i.uv.xy), blurredColor.a);
+
+ return blurredColor;
+ }
+
+ // used for background, so more bone curve-like
+
+ half4 fragBlurWeighted (v2f i) : SV_Target {
+ half4 blurredColor = half4 (0,0,0,0);
+
+ half4 sampleA = tex2D(_MainTex, i.uv.xy);
+ half4 sampleB = tex2D(_MainTex, i.uv01.xy);
+ half4 sampleC = tex2D(_MainTex, i.uv01.zw);
+ half4 sampleD = tex2D(_MainTex, i.uv23.xy);
+ half4 sampleE = tex2D(_MainTex, i.uv23.zw);
+
+ half sum = sampleA.a + dot (half4 (1.25, 1.25, 1.5, 1.5), half4 (sampleB.a,sampleC.a,sampleD.a,sampleE.a));
+
+ sampleA.rgb = sampleA.rgb * sampleA.a;
+ sampleB.rgb = sampleB.rgb * sampleB.a * 1.25;
+ sampleC.rgb = sampleC.rgb * sampleC.a * 1.25;
+ sampleD.rgb = sampleD.rgb * sampleD.a * 1.5;
+ sampleE.rgb = sampleE.rgb * sampleE.a * 1.5;
+
+ blurredColor += sampleA;
+ blurredColor += sampleB;
+ blurredColor += sampleC;
+ blurredColor += sampleD;
+ blurredColor += sampleE;
+
+ blurredColor /= sum;
+ half4 color = blurredColor;
+
+ color.a = sampleA.a;
+
+ return color;
+ }
+
+ half4 fragBlurDark (v2f i) : SV_Target {
+ half4 blurredColor = half4 (0,0,0,0);
+
+ half4 sampleA = tex2D(_MainTex, i.uv.xy);
+ half4 sampleB = tex2D(_MainTex, i.uv01.xy);
+ half4 sampleC = tex2D(_MainTex, i.uv01.zw);
+ half4 sampleD = tex2D(_MainTex, i.uv23.xy);
+ half4 sampleE = tex2D(_MainTex, i.uv23.zw);
+
+ half sum = sampleA.a + dot (half4 (0.75, 0.75, 0.5, 0.5), half4 (sampleB.a,sampleC.a,sampleD.a,sampleE.a));
+
+ sampleA.rgb = sampleA.rgb * sampleA.a;
+ sampleB.rgb = sampleB.rgb * sampleB.a * 0.75;
+ sampleC.rgb = sampleC.rgb * sampleC.a * 0.75;
+ sampleD.rgb = sampleD.rgb * sampleD.a * 0.5;
+ sampleE.rgb = sampleE.rgb * sampleE.a * 0.5;
+
+ blurredColor += sampleA;
+ blurredColor += sampleB;
+ blurredColor += sampleC;
+ blurredColor += sampleD;
+ blurredColor += sampleE;
+
+ blurredColor /= sum;
+ half4 color = blurredColor;
+
+ color.a = sampleA.a;
+
+ return color;
+ }
+
+ // not used atm
+
+ half4 fragBlurUnweightedDark (v2f i) : SV_Target {
+ half4 blurredColor = half4 (0,0,0,0);
+
+ half4 sampleA = tex2D(_MainTex, i.uv.xy);
+ half4 sampleB = tex2D(_MainTex, i.uv01.xy);
+ half4 sampleC = tex2D(_MainTex, i.uv01.zw);
+ half4 sampleD = tex2D(_MainTex, i.uv23.xy);
+ half4 sampleE = tex2D(_MainTex, i.uv23.zw);
+
+ blurredColor += sampleA;
+ blurredColor += sampleB * 0.75;
+ blurredColor += sampleC * 0.75;
+ blurredColor += sampleD * 0.5;
+ blurredColor += sampleE * 0.5;
+
+ blurredColor /= 3.5;
+
+ blurredColor.a = max(UNITY_SAMPLE_1CHANNEL(_TapHigh, i.uv.xy), blurredColor.a);
+
+ return blurredColor;
+ }
+
+ // fragMixMediumAndLowTap
+ // happens before applying final coc/blur result to screen,
+ // mixes defocus buffers of different resolutions / bluriness
+
+ sampler2D _TapMedium;
+ sampler2D _TapLow;
+
+ half4 fragMixMediumAndLowTap (v2fSingle i) : SV_Target
+ {
+ half4 tapMedium = tex2D (_TapMedium, i.uv.xy);
+ half4 tapLow = tex2D (_TapLow, i.uv.xy);
+ tapMedium.a *= tapMedium.a;
+
+ tapLow.rgb = lerp (tapMedium.rgb, tapLow.rgb, (tapMedium.a * tapMedium.a));
+ return tapLow;
+ }
+
+ ENDCG
+
+Subshader {
+ ZTest Always Cull Off ZWrite Off
+
+ Pass {
+
+ CGPROGRAM
+
+ #pragma vertex vert
+ #pragma fragment fragBlurWeighted
+
+ ENDCG
+ }
+ Pass {
+ CGPROGRAM
+
+ #pragma vertex vert
+ #pragma fragment fragBlurUnweighted
+
+ ENDCG
+ }
+
+ // 2
+
+ Pass {
+ CGPROGRAM
+
+ #pragma vertex vert
+ #pragma fragment fragBlurUnweightedDark
+
+ ENDCG
+ }
+ Pass {
+ CGPROGRAM
+
+ #pragma vertex vertSingleTex
+ #pragma fragment fragMixMediumAndLowTap
+
+ ENDCG
+ }
+
+ // 4
+
+ Pass {
+ CGPROGRAM
+
+ #pragma vertex vert
+ #pragma fragment fragBlurDark
+
+ ENDCG
+ }
+}
+
+Fallback off
+
+} // shader
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/SeparableWeightedBlurDof34.shader.meta b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/SeparableWeightedBlurDof34.shader.meta
new file mode 100644
index 0000000..2fae7fc
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/SeparableWeightedBlurDof34.shader.meta
@@ -0,0 +1,4 @@
+fileFormatVersion: 2
+guid: bb4af680337344a4abad65a4e8873c50
+ShaderImporter:
+ userData:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/TiltShiftHdrLensBlur.shader b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/TiltShiftHdrLensBlur.shader
new file mode 100644
index 0000000..05259d5
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/_DepthOfField/TiltShiftHdrLensBlur.shader
@@ -0,0 +1,309 @@
+
+ Shader "Hidden/Dof/TiltShiftHdrLensBlur" {
+ Properties {
+ _MainTex ("-", 2D) = "" {}
+ }
+
+ CGINCLUDE
+
+ #include "UnityCG.cginc"
+
+ struct v2f
+ {
+ float4 pos : SV_POSITION;
+ float2 uv : TEXCOORD0;
+ float2 uv1 : TEXCOORD1;
+ };
+
+ sampler2D _MainTex;
+ sampler2D _Blurred;
+
+ float4 _MainTex_TexelSize;
+ float _BlurSize;
+ float _BlurArea;
+
+ #ifdef SHADER_API_D3D11
+ #define SAMPLE_TEX(sampler, uv) tex2Dlod(sampler, float4(uv,0,1))
+ #else
+ #define SAMPLE_TEX(sampler, uv) tex2D(sampler, uv)
+ #endif
+
+ v2f vert (appdata_img v)
+ {
+ v2f o;
+ o.pos = mul (UNITY_MATRIX_MVP, v.vertex);
+ o.uv.xy = v.texcoord;
+ o.uv1.xy = v.texcoord;
+
+ #if UNITY_UV_STARTS_AT_TOP
+ if (_MainTex_TexelSize.y < 0)
+ o.uv1.y = 1-o.uv1.y;
+ #else
+
+ #endif
+
+ return o;
+ }
+
+ static const int SmallDiscKernelSamples = 12;
+ static const float2 SmallDiscKernel[SmallDiscKernelSamples] =
+ {
+ float2(-0.326212,-0.40581),
+ float2(-0.840144,-0.07358),
+ float2(-0.695914,0.457137),
+ float2(-0.203345,0.620716),
+ float2(0.96234,-0.194983),
+ float2(0.473434,-0.480026),
+ float2(0.519456,0.767022),
+ float2(0.185461,-0.893124),
+ float2(0.507431,0.064425),
+ float2(0.89642,0.412458),
+ float2(-0.32194,-0.932615),
+ float2(-0.791559,-0.59771)
+ };
+
+ static const int NumDiscSamples = 28;
+ static const float3 DiscKernel[NumDiscSamples] =
+ {
+ float3(0.62463,0.54337,0.82790),
+ float3(-0.13414,-0.94488,0.95435),
+ float3(0.38772,-0.43475,0.58253),
+ float3(0.12126,-0.19282,0.22778),
+ float3(-0.20388,0.11133,0.23230),
+ float3(0.83114,-0.29218,0.88100),
+ float3(0.10759,-0.57839,0.58831),
+ float3(0.28285,0.79036,0.83945),
+ float3(-0.36622,0.39516,0.53876),
+ float3(0.75591,0.21916,0.78704),
+ float3(-0.52610,0.02386,0.52664),
+ float3(-0.88216,-0.24471,0.91547),
+ float3(-0.48888,-0.29330,0.57011),
+ float3(0.44014,-0.08558,0.44838),
+ float3(0.21179,0.51373,0.55567),
+ float3(0.05483,0.95701,0.95858),
+ float3(-0.59001,-0.70509,0.91938),
+ float3(-0.80065,0.24631,0.83768),
+ float3(-0.19424,-0.18402,0.26757),
+ float3(-0.43667,0.76751,0.88304),
+ float3(0.21666,0.11602,0.24577),
+ float3(0.15696,-0.85600,0.87027),
+ float3(-0.75821,0.58363,0.95682),
+ float3(0.99284,-0.02904,0.99327),
+ float3(-0.22234,-0.57907,0.62029),
+ float3(0.55052,-0.66984,0.86704),
+ float3(0.46431,0.28115,0.54280),
+ float3(-0.07214,0.60554,0.60982),
+ };
+
+ float WeightFieldMode (float2 uv)
+ {
+ float2 tapCoord = uv*2.0-1.0;
+ return (abs(tapCoord.y * _BlurArea));
+ }
+
+ float WeightIrisMode (float2 uv)
+ {
+ float2 tapCoord = (uv*2.0-1.0);
+ return dot(tapCoord, tapCoord) * _BlurArea;
+ }
+
+ float4 fragIrisPreview (v2f i) : SV_Target
+ {
+ return WeightIrisMode(i.uv.xy) * 0.5;
+ }
+
+ float4 fragFieldPreview (v2f i) : SV_Target
+ {
+ return WeightFieldMode(i.uv.xy) * 0.5;
+ }
+
+ float4 fragUpsample (v2f i) : SV_Target
+ {
+ float4 blurred = tex2D(_Blurred, i.uv1.xy);
+ float4 frame = tex2D(_MainTex, i.uv.xy);
+
+ return lerp(frame, blurred, saturate(blurred.a));
+ }
+
+ float4 fragIris (v2f i) : SV_Target
+ {
+ float4 centerTap = tex2D(_MainTex, i.uv.xy);
+ float4 sum = centerTap;
+
+ float w = clamp(WeightIrisMode(i.uv.xy), 0, _BlurSize);
+
+ float4 poissonScale = _MainTex_TexelSize.xyxy * w;
+
+ #ifndef SHADER_API_D3D9
+ if(w<1e-2f)
+ return sum;
+ #endif
+
+ for(int l=0; l _Params.y) {
+ // This sample occludes, contribute to occlusion
+ occ += pow(1-zd,_Params.z); // sc2
+ //occ += 1.0-saturate(pow(1.0 - zd, 11.0) + zd); // nullsq
+ //occ += 1.0/(1.0+zd*zd*10); // iq
+ }
+ }
+ occ /= sampleCount;
+ return 1-occ;
+}
+
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/frag_ao.cginc.meta b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/frag_ao.cginc.meta
new file mode 100644
index 0000000..604d5f5
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Shaders/frag_ao.cginc.meta
@@ -0,0 +1,4 @@
+fileFormatVersion: 2
+guid: 51ae11a5cd82fda468a85179946d672a
+ShaderImporter:
+ userData:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures.meta b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures.meta
new file mode 100644
index 0000000..f926ce3
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures.meta
@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: f9372f23586ef470b97d53856af88487
+folderAsset: yes
+DefaultImporter:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/ContrastEnhanced3D16.png b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/ContrastEnhanced3D16.png
new file mode 100644
index 0000000..c112c75
Binary files /dev/null and b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/ContrastEnhanced3D16.png differ
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/ContrastEnhanced3D16.png.meta b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/ContrastEnhanced3D16.png.meta
new file mode 100644
index 0000000..37553ce
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/ContrastEnhanced3D16.png.meta
@@ -0,0 +1,35 @@
+fileFormatVersion: 2
+guid: ecd9a2c463dcb476891e43d7c9f16ffa
+TextureImporter:
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 1
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ seamlessCubemap: 0
+ textureFormat: -3
+ maxTextureSize: 2048
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: -1
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ textureType: 5
+ buildTargetSettings: []
+ userData:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/HexShape.psd b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/HexShape.psd
new file mode 100644
index 0000000..eef48cb
Binary files /dev/null and b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/HexShape.psd differ
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/HexShape.psd.meta b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/HexShape.psd.meta
new file mode 100644
index 0000000..fec782b
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/HexShape.psd.meta
@@ -0,0 +1,35 @@
+fileFormatVersion: 2
+guid: a4cdca73d61814d33ac1587f6c163bca
+TextureImporter:
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 64
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: 1
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ textureType: -1
+ buildTargetSettings: []
+ userData:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/MotionBlurJitter.png b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/MotionBlurJitter.png
new file mode 100644
index 0000000..a601a2e
Binary files /dev/null and b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/MotionBlurJitter.png differ
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/MotionBlurJitter.png.meta b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/MotionBlurJitter.png.meta
new file mode 100644
index 0000000..2e825d5
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/MotionBlurJitter.png.meta
@@ -0,0 +1,35 @@
+fileFormatVersion: 2
+guid: 31f5a8611c4ed1245b18456206e798dc
+TextureImporter:
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 2
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ seamlessCubemap: 0
+ textureFormat: 3
+ maxTextureSize: 1024
+ textureSettings:
+ filterMode: 1
+ aniso: 1
+ mipBias: -1
+ wrapMode: 0
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ textureType: -1
+ buildTargetSettings: []
+ userData:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/Neutral3D16.png b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/Neutral3D16.png
new file mode 100644
index 0000000..fc0f026
Binary files /dev/null and b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/Neutral3D16.png differ
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/Neutral3D16.png.meta b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/Neutral3D16.png.meta
new file mode 100644
index 0000000..43038ad
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/Neutral3D16.png.meta
@@ -0,0 +1,35 @@
+fileFormatVersion: 2
+guid: a4b474cd484494a4aaa4bbf928219d09
+TextureImporter:
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 1
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ seamlessCubemap: 0
+ textureFormat: -3
+ maxTextureSize: 2048
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: -1
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ textureType: 5
+ buildTargetSettings: []
+ userData:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/Noise.png b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/Noise.png
new file mode 100644
index 0000000..a601a2e
Binary files /dev/null and b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/Noise.png differ
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/Noise.png.meta b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/Noise.png.meta
new file mode 100644
index 0000000..b48fd5f
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/Noise.png.meta
@@ -0,0 +1,35 @@
+fileFormatVersion: 2
+guid: e80c3c84ea861404d8a427db8b7abf04
+TextureImporter:
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 2
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ seamlessCubemap: 0
+ textureFormat: 3
+ maxTextureSize: 64
+ textureSettings:
+ filterMode: 2
+ aniso: 1
+ mipBias: -1
+ wrapMode: 0
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ textureType: -1
+ buildTargetSettings: []
+ userData:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/NoiseAndGrain.png b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/NoiseAndGrain.png
new file mode 100644
index 0000000..9faabd4
Binary files /dev/null and b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/NoiseAndGrain.png differ
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/NoiseAndGrain.png.meta b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/NoiseAndGrain.png.meta
new file mode 100644
index 0000000..387edde
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/NoiseAndGrain.png.meta
@@ -0,0 +1,35 @@
+fileFormatVersion: 2
+guid: 7a632f967e8ad42f5bd275898151ab6a
+TextureImporter:
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ linearTexture: 1
+ correctGamma: 1
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 1
+ generateCubemap: 0
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 64
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: -1
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ textureType: 5
+ buildTargetSettings: []
+ userData:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/NoiseEffectGrain.png b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/NoiseEffectGrain.png
new file mode 100644
index 0000000..ba027b4
Binary files /dev/null and b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/NoiseEffectGrain.png differ
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/NoiseEffectGrain.png.meta b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/NoiseEffectGrain.png.meta
new file mode 100644
index 0000000..47510da
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/NoiseEffectGrain.png.meta
@@ -0,0 +1,35 @@
+fileFormatVersion: 2
+guid: ffa9c02760c2b4e8eb9814ec06c4b05b
+TextureImporter:
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 2
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ seamlessCubemap: 0
+ textureFormat: 3
+ maxTextureSize: 1024
+ textureSettings:
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapMode: 0
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ textureType: -1
+ buildTargetSettings: []
+ userData:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/NoiseEffectScratch.png b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/NoiseEffectScratch.png
new file mode 100644
index 0000000..6ac0d53
Binary files /dev/null and b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/NoiseEffectScratch.png differ
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/NoiseEffectScratch.png.meta b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/NoiseEffectScratch.png.meta
new file mode 100644
index 0000000..3d3e680
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/NoiseEffectScratch.png.meta
@@ -0,0 +1,35 @@
+fileFormatVersion: 2
+guid: 6205c27cc031f4e66b8ea90d1bfaa158
+TextureImporter:
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 2
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 1024
+ textureSettings:
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapMode: 0
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ textureType: 0
+ buildTargetSettings: []
+ userData:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/RandomVectors.png b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/RandomVectors.png
new file mode 100644
index 0000000..a601a2e
Binary files /dev/null and b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/RandomVectors.png differ
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/RandomVectors.png.meta b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/RandomVectors.png.meta
new file mode 100644
index 0000000..3c35afc
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/RandomVectors.png.meta
@@ -0,0 +1,35 @@
+fileFormatVersion: 2
+guid: a181ca8e3c62f3e4b8f183f6c586b032
+TextureImporter:
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 2
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ seamlessCubemap: 0
+ textureFormat: 3
+ maxTextureSize: 1024
+ textureSettings:
+ filterMode: 0
+ aniso: 1
+ mipBias: -1
+ wrapMode: 0
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ textureType: -1
+ buildTargetSettings: []
+ userData:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/SphereShape.psd b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/SphereShape.psd
new file mode 100644
index 0000000..a100649
Binary files /dev/null and b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/SphereShape.psd differ
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/SphereShape.psd.meta b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/SphereShape.psd.meta
new file mode 100644
index 0000000..159ca4d
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/SphereShape.psd.meta
@@ -0,0 +1,35 @@
+fileFormatVersion: 2
+guid: fc00ec05a89da4ff695a4273715cd5ce
+TextureImporter:
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 64
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: 1
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ textureType: -1
+ buildTargetSettings: []
+ userData:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/VignetteMask.png b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/VignetteMask.png
new file mode 100644
index 0000000..3048937
Binary files /dev/null and b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/VignetteMask.png differ
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/VignetteMask.png.meta b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/VignetteMask.png.meta
new file mode 100644
index 0000000..1764d4c
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/VignetteMask.png.meta
@@ -0,0 +1,35 @@
+fileFormatVersion: 2
+guid: 95ef4804fe0be4c999ddaa383536cde8
+TextureImporter:
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 1024
+ textureSettings:
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapMode: 1
+ nPOTScale: 1
+ lightmap: 0
+ compressionQuality: 50
+ textureType: -1
+ buildTargetSettings: []
+ userData:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/color correction ramp.png b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/color correction ramp.png
new file mode 100644
index 0000000..328251e
Binary files /dev/null and b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/color correction ramp.png differ
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/color correction ramp.png.meta b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/color correction ramp.png.meta
new file mode 100644
index 0000000..be398a0
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/color correction ramp.png.meta
@@ -0,0 +1,35 @@
+fileFormatVersion: 2
+guid: d440902fad11e807d00044888d76c639
+TextureImporter:
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ linearTexture: 1
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 2
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ seamlessCubemap: 0
+ textureFormat: -3
+ maxTextureSize: 1024
+ textureSettings:
+ filterMode: 0
+ aniso: 1
+ mipBias: 0
+ wrapMode: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ textureType: -1
+ buildTargetSettings: []
+ userData:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/grayscale ramp.png b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/grayscale ramp.png
new file mode 100644
index 0000000..328251e
Binary files /dev/null and b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/grayscale ramp.png differ
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/grayscale ramp.png.meta b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/grayscale ramp.png.meta
new file mode 100644
index 0000000..395fa26
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ImageEffects/Textures/grayscale ramp.png.meta
@@ -0,0 +1,35 @@
+fileFormatVersion: 2
+guid: e9a9781cad112c75d0008dfa8d76c639
+TextureImporter:
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 2
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ seamlessCubemap: 0
+ textureFormat: 3
+ maxTextureSize: 1024
+ textureSettings:
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapMode: 1
+ nPOTScale: 0
+ lightmap: 0
+ compressionQuality: 50
+ textureType: -1
+ buildTargetSettings: []
+ userData:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/LightCookies.meta b/TheCauldron/Assets/Standard Assets/Effects/LightCookies.meta
new file mode 100644
index 0000000..6532c9f
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/LightCookies.meta
@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: 794a3489a6afd4daf80d98a5844341b9
+folderAsset: yes
+DefaultImporter:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/LightCookies/Textures.meta b/TheCauldron/Assets/Standard Assets/Effects/LightCookies/Textures.meta
new file mode 100644
index 0000000..390b335
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/LightCookies/Textures.meta
@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: e1ec4045399060440949afafba4d144f
+folderAsset: yes
+DefaultImporter:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/LightCookies/Textures/FlashlightCookie.tif b/TheCauldron/Assets/Standard Assets/Effects/LightCookies/Textures/FlashlightCookie.tif
new file mode 100644
index 0000000..51b202f
Binary files /dev/null and b/TheCauldron/Assets/Standard Assets/Effects/LightCookies/Textures/FlashlightCookie.tif differ
diff --git a/TheCauldron/Assets/Standard Assets/Effects/LightCookies/Textures/FlashlightCookie.tif.meta b/TheCauldron/Assets/Standard Assets/Effects/LightCookies/Textures/FlashlightCookie.tif.meta
new file mode 100644
index 0000000..a2827a5
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/LightCookies/Textures/FlashlightCookie.tif.meta
@@ -0,0 +1,68 @@
+fileFormatVersion: 2
+guid: 2c29c08dd1c0b6749b7cd0fcff7a29fd
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 1
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ cubemapConvolution: 0
+ cubemapConvolutionSteps: 8
+ cubemapConvolutionExponent: 1.5
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 1024
+ textureSettings:
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapMode: 1
+ nPOTScale: 1
+ lightmap: 0
+ rGBM: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: .5, y: .5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 0
+ textureType: 5
+ buildTargetSettings:
+ - buildTarget: iPhone
+ maxTextureSize: 128
+ textureFormat: 33
+ compressionQuality: 50
+ - buildTarget: Android
+ maxTextureSize: 128
+ textureFormat: 13
+ compressionQuality: 50
+ - buildTarget: BlackBerry
+ maxTextureSize: 128
+ textureFormat: 13
+ compressionQuality: 50
+ - buildTarget: WP8
+ maxTextureSize: 128
+ textureFormat: 12
+ compressionQuality: 50
+ spriteSheet:
+ sprites: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/LightCookies/Textures/FlashlightIrregularCookie.tif b/TheCauldron/Assets/Standard Assets/Effects/LightCookies/Textures/FlashlightIrregularCookie.tif
new file mode 100644
index 0000000..889ae62
Binary files /dev/null and b/TheCauldron/Assets/Standard Assets/Effects/LightCookies/Textures/FlashlightIrregularCookie.tif differ
diff --git a/TheCauldron/Assets/Standard Assets/Effects/LightCookies/Textures/FlashlightIrregularCookie.tif.meta b/TheCauldron/Assets/Standard Assets/Effects/LightCookies/Textures/FlashlightIrregularCookie.tif.meta
new file mode 100644
index 0000000..08f1c37
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/LightCookies/Textures/FlashlightIrregularCookie.tif.meta
@@ -0,0 +1,68 @@
+fileFormatVersion: 2
+guid: 641bb2dce818a8a499b537a1963889ac
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 1
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ cubemapConvolution: 0
+ cubemapConvolutionSteps: 8
+ cubemapConvolutionExponent: 1.5
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 1024
+ textureSettings:
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapMode: 1
+ nPOTScale: 1
+ lightmap: 0
+ rGBM: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: .5, y: .5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 0
+ textureType: 5
+ buildTargetSettings:
+ - buildTarget: iPhone
+ maxTextureSize: 128
+ textureFormat: 33
+ compressionQuality: 50
+ - buildTarget: Android
+ maxTextureSize: 128
+ textureFormat: 13
+ compressionQuality: 50
+ - buildTarget: BlackBerry
+ maxTextureSize: 128
+ textureFormat: 13
+ compressionQuality: 50
+ - buildTarget: WP8
+ maxTextureSize: 128
+ textureFormat: 12
+ compressionQuality: 50
+ spriteSheet:
+ sprites: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/LightCookies/Textures/LightHardCookie.psd b/TheCauldron/Assets/Standard Assets/Effects/LightCookies/Textures/LightHardCookie.psd
new file mode 100644
index 0000000..d6e8482
Binary files /dev/null and b/TheCauldron/Assets/Standard Assets/Effects/LightCookies/Textures/LightHardCookie.psd differ
diff --git a/TheCauldron/Assets/Standard Assets/Effects/LightCookies/Textures/LightHardCookie.psd.meta b/TheCauldron/Assets/Standard Assets/Effects/LightCookies/Textures/LightHardCookie.psd.meta
new file mode 100644
index 0000000..3b05d85
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/LightCookies/Textures/LightHardCookie.psd.meta
@@ -0,0 +1,68 @@
+fileFormatVersion: 2
+guid: 1167c0a28d11119930004d8a4241aa39
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 1
+ mipMapFadeDistanceStart: 2
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .100000001
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 1
+ generateCubemap: 0
+ cubemapConvolution: 0
+ cubemapConvolutionSteps: 8
+ cubemapConvolutionExponent: 1.5
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 512
+ textureSettings:
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapMode: 1
+ nPOTScale: 1
+ lightmap: 0
+ rGBM: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: .5, y: .5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 0
+ textureType: 5
+ buildTargetSettings:
+ - buildTarget: iPhone
+ maxTextureSize: 128
+ textureFormat: 33
+ compressionQuality: 50
+ - buildTarget: Android
+ maxTextureSize: 128
+ textureFormat: 13
+ compressionQuality: 50
+ - buildTarget: BlackBerry
+ maxTextureSize: 128
+ textureFormat: 13
+ compressionQuality: 50
+ - buildTarget: WP8
+ maxTextureSize: 128
+ textureFormat: 12
+ compressionQuality: 50
+ spriteSheet:
+ sprites: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/LightCookies/Textures/LightSoftCookie.tif b/TheCauldron/Assets/Standard Assets/Effects/LightCookies/Textures/LightSoftCookie.tif
new file mode 100644
index 0000000..73de099
Binary files /dev/null and b/TheCauldron/Assets/Standard Assets/Effects/LightCookies/Textures/LightSoftCookie.tif differ
diff --git a/TheCauldron/Assets/Standard Assets/Effects/LightCookies/Textures/LightSoftCookie.tif.meta b/TheCauldron/Assets/Standard Assets/Effects/LightCookies/Textures/LightSoftCookie.tif.meta
new file mode 100644
index 0000000..0523129
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/LightCookies/Textures/LightSoftCookie.tif.meta
@@ -0,0 +1,68 @@
+fileFormatVersion: 2
+guid: 8caa437b19957a045866b84c6218a0db
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 1
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 1
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ cubemapConvolution: 0
+ cubemapConvolutionSteps: 8
+ cubemapConvolutionExponent: 1.5
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 1024
+ textureSettings:
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapMode: 1
+ nPOTScale: 1
+ lightmap: 1
+ rGBM: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: .5, y: .5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 0
+ textureType: 5
+ buildTargetSettings:
+ - buildTarget: iPhone
+ maxTextureSize: 128
+ textureFormat: 33
+ compressionQuality: 50
+ - buildTarget: Android
+ maxTextureSize: 128
+ textureFormat: 13
+ compressionQuality: 50
+ - buildTarget: BlackBerry
+ maxTextureSize: 128
+ textureFormat: 13
+ compressionQuality: 50
+ - buildTarget: WP8
+ maxTextureSize: 128
+ textureFormat: 12
+ compressionQuality: 50
+ spriteSheet:
+ sprites: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/LightCookies/Textures/LightSquareCookie.psd b/TheCauldron/Assets/Standard Assets/Effects/LightCookies/Textures/LightSquareCookie.psd
new file mode 100644
index 0000000..9187a26
Binary files /dev/null and b/TheCauldron/Assets/Standard Assets/Effects/LightCookies/Textures/LightSquareCookie.psd differ
diff --git a/TheCauldron/Assets/Standard Assets/Effects/LightCookies/Textures/LightSquareCookie.psd.meta b/TheCauldron/Assets/Standard Assets/Effects/LightCookies/Textures/LightSquareCookie.psd.meta
new file mode 100644
index 0000000..c68c9bc
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/LightCookies/Textures/LightSquareCookie.psd.meta
@@ -0,0 +1,52 @@
+fileFormatVersion: 2
+guid: 69680b688d11eb9d30009b3b4241aa39
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 1
+ mipMapFadeDistanceStart: 2
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .100000001
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 1
+ generateCubemap: 0
+ cubemapConvolution: 0
+ cubemapConvolutionSteps: 8
+ cubemapConvolutionExponent: 1.5
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 512
+ textureSettings:
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapMode: 1
+ nPOTScale: 1
+ lightmap: 0
+ rGBM: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: .5, y: .5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 0
+ textureType: 5
+ buildTargetSettings: []
+ spriteSheet:
+ sprites: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/LightFlares.meta b/TheCauldron/Assets/Standard Assets/Effects/LightFlares.meta
new file mode 100644
index 0000000..43e9509
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/LightFlares.meta
@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: d8cfa4746d26d4715b9f848bce1e2f14
+folderAsset: yes
+DefaultImporter:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Flares.meta b/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Flares.meta
new file mode 100644
index 0000000..280056d
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Flares.meta
@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: 7e1763a5e42541841949e15a67b54589
+folderAsset: yes
+DefaultImporter:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Flares/50mmZoom.flare b/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Flares/50mmZoom.flare
new file mode 100644
index 0000000..11c86bf
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Flares/50mmZoom.flare
@@ -0,0 +1,167 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!121 &12100000
+Flare:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: 50mmZoom
+ m_FlareTexture: {fileID: 2800000, guid: 23a02ac18d11c9ffa0009c58a8ad6659, type: 3}
+ m_TextureLayout: 1
+ m_Elements:
+ - m_ImageIndex: 9
+ m_Position: 0
+ m_Size: 50
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_UseLightColor: 1
+ m_Rotate: 0
+ m_Zoom: 1
+ m_Fade: 1
+ - m_ImageIndex: 0
+ m_Position: 0
+ m_Size: 50
+ m_Color: {r: .0941176489, g: .0941176489, b: .0941176489, a: 1}
+ m_UseLightColor: 1
+ m_Rotate: 1
+ m_Zoom: 1
+ m_Fade: 1
+ - m_ImageIndex: 5
+ m_Position: 0
+ m_Size: 20
+ m_Color: {r: .0313725509, g: .0196078438, b: .0196078438, a: 1}
+ m_UseLightColor: 1
+ m_Rotate: 0
+ m_Zoom: 0
+ m_Fade: 1
+ - m_ImageIndex: 5
+ m_Position: -.269999981
+ m_Size: 36.3899994
+ m_Color: {r: .0313725509, g: .0235294122, b: .0196078438, a: 1}
+ m_UseLightColor: 1
+ m_Rotate: 0
+ m_Zoom: 0
+ m_Fade: 1
+ - m_ImageIndex: 5
+ m_Position: -.74999994
+ m_Size: 28.6899986
+ m_Color: {r: .0196078438, g: .0156862754, b: .0117647061, a: 1}
+ m_UseLightColor: 1
+ m_Rotate: 0
+ m_Zoom: 0
+ m_Fade: 1
+ - m_ImageIndex: 3
+ m_Position: 0
+ m_Size: 10.2500019
+ m_Color: {r: .447058827, g: 0, b: .00784313772, a: 1}
+ m_UseLightColor: 1
+ m_Rotate: 0
+ m_Zoom: 0
+ m_Fade: 1
+ - m_ImageIndex: 5
+ m_Position: .435999811
+ m_Size: 4.01399994
+ m_Color: {r: .0117647061, g: .0235294122, b: .0392156877, a: 1}
+ m_UseLightColor: 1
+ m_Rotate: 0
+ m_Zoom: 0
+ m_Fade: 1
+ - m_ImageIndex: 5
+ m_Position: .335999876
+ m_Size: 2.58999991
+ m_Color: {r: .0352941193, g: .0235294122, b: .0784313753, a: 1}
+ m_UseLightColor: 1
+ m_Rotate: 0
+ m_Zoom: 0
+ m_Fade: 1
+ - m_ImageIndex: 5
+ m_Position: .390999913
+ m_Size: 7.47000074
+ m_Color: {r: .0156862754, g: .0235294122, b: .0392156877, a: 1}
+ m_UseLightColor: 1
+ m_Rotate: 0
+ m_Zoom: 0
+ m_Fade: 1
+ - m_ImageIndex: 7
+ m_Position: 1.5
+ m_Size: 7.47000074
+ m_Color: {r: .0941176489, g: .0588235296, b: 0, a: 1}
+ m_UseLightColor: 1
+ m_Rotate: 0
+ m_Zoom: 0
+ m_Fade: 1
+ - m_ImageIndex: 5
+ m_Position: 1.45300031
+ m_Size: 4.44999361
+ m_Color: {r: .0705882385, g: .0431372561, b: 0, a: 1}
+ m_UseLightColor: 1
+ m_Rotate: 0
+ m_Zoom: 0
+ m_Fade: 1
+ - m_ImageIndex: 4
+ m_Position: 1.28200161
+ m_Size: 1.5
+ m_Color: {r: .270588249, g: .819607854, b: .572549045, a: 1}
+ m_UseLightColor: 1
+ m_Rotate: 0
+ m_Zoom: 0
+ m_Fade: 1
+ - m_ImageIndex: 6
+ m_Position: 1.74200153
+ m_Size: 2.76999307
+ m_Color: {r: .156862751, g: .0784313753, b: .270588249, a: 1}
+ m_UseLightColor: 1
+ m_Rotate: 0
+ m_Zoom: 0
+ m_Fade: 1
+ - m_ImageIndex: 5
+ m_Position: 1.72300005
+ m_Size: 2.76999283
+ m_Color: {r: .0274509806, g: .0941176489, b: .0588235296, a: 1}
+ m_UseLightColor: 1
+ m_Rotate: 0
+ m_Zoom: 0
+ m_Fade: 1
+ - m_ImageIndex: 5
+ m_Position: 1.52300024
+ m_Size: 2.12999368
+ m_Color: {r: .0509803928, g: .0313725509, b: 0, a: 1}
+ m_UseLightColor: 1
+ m_Rotate: 0
+ m_Zoom: 0
+ m_Fade: 1
+ - m_ImageIndex: 8
+ m_Position: -.239000008
+ m_Size: 4.5899992
+ m_Color: {r: .188235298, g: .149019614, b: .0588235296, a: 1}
+ m_UseLightColor: 1
+ m_Rotate: 0
+ m_Zoom: 0
+ m_Fade: 1
+ - m_ImageIndex: 2
+ m_Position: 2.46099973
+ m_Size: 25.9699974
+ m_Color: {r: .164705887, g: .164705887, b: .164705887, a: 1}
+ m_UseLightColor: 1
+ m_Rotate: 0
+ m_Zoom: 0
+ m_Fade: 1
+ - m_ImageIndex: 1
+ m_Position: 2.1309998
+ m_Size: 17.2099953
+ m_Color: {r: .164705887, g: .164705887, b: .164705887, a: 1}
+ m_UseLightColor: 1
+ m_Rotate: 0
+ m_Zoom: 0
+ m_Fade: 1
+ - m_ImageIndex: 5
+ m_Position: .819999993
+ m_Size: 2.65999603
+ m_Color: {r: .0509803928, g: .0235294122, b: 0, a: 1}
+ m_UseLightColor: 1
+ m_Rotate: 0
+ m_Zoom: 0
+ m_Fade: 1
+ m_UseFog: 1
+--- !u!1002 &12100001
+EditorExtensionImpl:
+ serializedVersion: 6
diff --git a/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Flares/50mmZoom.flare.meta b/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Flares/50mmZoom.flare.meta
new file mode 100644
index 0000000..5833a8f
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Flares/50mmZoom.flare.meta
@@ -0,0 +1,5 @@
+fileFormatVersion: 2
+guid: 54fbbf098d116effa00081aba8ad6659
+NativeFormatImporter:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Flares/FlareSmall.flare b/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Flares/FlareSmall.flare
new file mode 100644
index 0000000..87127b9
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Flares/FlareSmall.flare
@@ -0,0 +1,31 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!121 &12100000
+Flare:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: FlareSmall
+ m_FlareTexture: {fileID: 2800000, guid: 51dc82ef9d11c594d000e7c9e39e7c39, type: 3}
+ m_TextureLayout: 0
+ m_Elements:
+ - m_ImageIndex: 0
+ m_Position: 0
+ m_Size: 10
+ m_Color: {r: 1, g: 1, b: 1, a: 0}
+ m_UseLightColor: 1
+ m_Rotate: 0
+ m_Zoom: 0
+ m_Fade: 1
+ - m_ImageIndex: 2
+ m_Position: 0
+ m_Size: 40
+ m_Color: {r: .248752579, g: .248752579, b: .248752579, a: 0}
+ m_UseLightColor: 1
+ m_Rotate: 0
+ m_Zoom: 0
+ m_Fade: 1
+ m_UseFog: 1
+--- !u!1002 &12100001
+EditorExtensionImpl:
+ serializedVersion: 6
diff --git a/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Flares/FlareSmall.flare.meta b/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Flares/FlareSmall.flare.meta
new file mode 100644
index 0000000..d5e8852
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Flares/FlareSmall.flare.meta
@@ -0,0 +1,5 @@
+fileFormatVersion: 2
+guid: 9bdb18c49d114cb4300035184241aa39
+NativeFormatImporter:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Flares/Sun.flare b/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Flares/Sun.flare
new file mode 100644
index 0000000..03b3f36
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Flares/Sun.flare
@@ -0,0 +1,47 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!121 &12100000
+Flare:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: Sun
+ m_FlareTexture: {fileID: 2800000, guid: 23a02ac18d11c9ffa0009c58a8ad6659, type: 3}
+ m_TextureLayout: 1
+ m_Elements:
+ - m_ImageIndex: 9
+ m_Position: 0
+ m_Size: 50
+ m_Color: {r: 1, g: 1, b: 1, a: 1}
+ m_UseLightColor: 1
+ m_Rotate: 0
+ m_Zoom: 1
+ m_Fade: 1
+ - m_ImageIndex: 0
+ m_Position: 0
+ m_Size: 50
+ m_Color: {r: .0941176489, g: .0941176489, b: .0941176489, a: 1}
+ m_UseLightColor: 1
+ m_Rotate: 1
+ m_Zoom: 1
+ m_Fade: 1
+ - m_ImageIndex: 5
+ m_Position: 0
+ m_Size: 20
+ m_Color: {r: .0313725509, g: .0196078438, b: .0196078438, a: 1}
+ m_UseLightColor: 1
+ m_Rotate: 0
+ m_Zoom: 0
+ m_Fade: 1
+ - m_ImageIndex: 3
+ m_Position: 0
+ m_Size: 10.2500019
+ m_Color: {r: .447058827, g: 0, b: .00784313772, a: 1}
+ m_UseLightColor: 1
+ m_Rotate: 0
+ m_Zoom: 0
+ m_Fade: 1
+ m_UseFog: 1
+--- !u!1002 &12100001
+EditorExtensionImpl:
+ serializedVersion: 6
diff --git a/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Flares/Sun.flare.meta b/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Flares/Sun.flare.meta
new file mode 100644
index 0000000..9f7216c
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Flares/Sun.flare.meta
@@ -0,0 +1,5 @@
+fileFormatVersion: 2
+guid: 09ebe82dbd1113c3d000dc0b8d76c639
+NativeFormatImporter:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Materials.meta b/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Materials.meta
new file mode 100644
index 0000000..e9de76d
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Materials.meta
@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: 4ca8e16c3e0ab45e69aef7738ef77d3a
+folderAsset: yes
+DefaultImporter:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Materials/Flare50mm.mat b/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Materials/Flare50mm.mat
new file mode 100644
index 0000000..075ff86
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Materials/Flare50mm.mat
@@ -0,0 +1,27 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 3
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: Flare50mm
+ m_Shader: {fileID: 101, guid: 0000000000000000f000000000000000, type: 0}
+ m_ShaderKeywords: []
+ m_CustomRenderQueue: -1
+ m_SavedProperties:
+ serializedVersion: 2
+ m_TexEnvs:
+ data:
+ first:
+ name: _MainTex
+ second:
+ m_Texture: {fileID: 2800000, guid: 23a02ac18d11c9ffa0009c58a8ad6659, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats: {}
+ m_Colors: {}
+--- !u!1002 &2100001
+EditorExtensionImpl:
+ serializedVersion: 6
diff --git a/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Materials/Flare50mm.mat.meta b/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Materials/Flare50mm.mat.meta
new file mode 100644
index 0000000..44d291e
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Materials/Flare50mm.mat.meta
@@ -0,0 +1,5 @@
+fileFormatVersion: 2
+guid: a6dbb96b9d112024d000e929e39e7c39
+NativeFormatImporter:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Textures.meta b/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Textures.meta
new file mode 100644
index 0000000..df48ade
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Textures.meta
@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: 0a0517c8f07c047f2965315b8dac81aa
+folderAsset: yes
+DefaultImporter:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Textures/Flare50mm.psd b/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Textures/Flare50mm.psd
new file mode 100644
index 0000000..4136f76
Binary files /dev/null and b/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Textures/Flare50mm.psd differ
diff --git a/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Textures/Flare50mm.psd.meta b/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Textures/Flare50mm.psd.meta
new file mode 100644
index 0000000..68eed6c
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Textures/Flare50mm.psd.meta
@@ -0,0 +1,52 @@
+fileFormatVersion: 2
+guid: 23a02ac18d11c9ffa0009c58a8ad6659
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 2
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .100000001
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ cubemapConvolution: 0
+ cubemapConvolutionSteps: 8
+ cubemapConvolutionExponent: 1.5
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 512
+ textureSettings:
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapMode: 0
+ nPOTScale: 1
+ lightmap: 0
+ rGBM: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: .5, y: .5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 0
+ textureType: 0
+ buildTargetSettings: []
+ spriteSheet:
+ sprites: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Textures/FlareStar.psd b/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Textures/FlareStar.psd
new file mode 100644
index 0000000..9c58963
Binary files /dev/null and b/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Textures/FlareStar.psd differ
diff --git a/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Textures/FlareStar.psd.meta b/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Textures/FlareStar.psd.meta
new file mode 100644
index 0000000..aa8bd91
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/LightFlares/Textures/FlareStar.psd.meta
@@ -0,0 +1,52 @@
+fileFormatVersion: 2
+guid: 51dc82ef9d11c594d000e7c9e39e7c39
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 2
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .100000001
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ cubemapConvolution: 0
+ cubemapConvolutionSteps: 8
+ cubemapConvolutionExponent: 1.5
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 256
+ textureSettings:
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapMode: 0
+ nPOTScale: 1
+ lightmap: 0
+ rGBM: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: .5, y: .5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 0
+ textureType: 0
+ buildTargetSettings: []
+ spriteSheet:
+ sprites: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/Projectors.meta b/TheCauldron/Assets/Standard Assets/Effects/Projectors.meta
new file mode 100644
index 0000000..de692fb
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/Projectors.meta
@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: ab90c5d984b4d4e9e935ae8760fd47ef
+folderAsset: yes
+DefaultImporter:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/Projectors/Guidelines.txt b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Guidelines.txt
new file mode 100644
index 0000000..5ee047c
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Guidelines.txt
@@ -0,0 +1,12 @@
+To use the Projector/Light and Projector/Shadow shaders properly:
+
+Cookie texture:
+ 1. Make sure texture wrap mode is set to "Clamp"
+ 2. Turn on "Border Mipmaps" option in import settings
+ 3. Use uncompressed texture format
+ 4. Projector/Shadow also requires alpha channel to be present (typically Alpha from Grayscale option is ok)
+
+Falloff texture (if present):
+ 1. Data needs to be in alpha channel, so typically Alpha8 texture format
+ 2. Make sure texture wrap mode is set to "Clamp"
+ 3. Make sure leftmost pixel column is black; and "Border mipmaps" import setting is on.
diff --git a/TheCauldron/Assets/Standard Assets/Effects/Projectors/Guidelines.txt.meta b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Guidelines.txt.meta
new file mode 100644
index 0000000..80f555c
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Guidelines.txt.meta
@@ -0,0 +1,5 @@
+fileFormatVersion: 2
+guid: b238cc13e9896f04eb5e06978d2b393e
+TextScriptImporter:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/Projectors/Materials.meta b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Materials.meta
new file mode 100644
index 0000000..c7b7f04
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Materials.meta
@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: 92722830d4a3f49e5bf7e68441337edb
+folderAsset: yes
+DefaultImporter:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/Projectors/Materials/GridProjector.mat b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Materials/GridProjector.mat
new file mode 100644
index 0000000..a70a795
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Materials/GridProjector.mat
@@ -0,0 +1,122 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 3
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: GridProjector
+ m_Shader: {fileID: 4800000, guid: c0ace1ca4bc0718448acf798c93d52d9, type: 3}
+ m_ShaderKeywords: []
+ m_CustomRenderQueue: -1
+ m_SavedProperties:
+ serializedVersion: 2
+ m_TexEnvs:
+ data:
+ first:
+ name: _MainTex
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _ShadowTex
+ second:
+ m_Texture: {fileID: 2800000, guid: 529239097d02f9f42b0ddd436c6fcbb0, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _FalloffTex
+ second:
+ m_Texture: {fileID: 2800000, guid: cc90a732ad112a541100162a44295342, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _BumpTex
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _CombineTex
+ second:
+ m_Texture: {fileID: 2800000, guid: 92b0a732ad112a541100162a44295342, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _HiliteTex
+ second:
+ m_Texture: {fileID: 2800000, guid: f7a0a732ad112a541100162a44295342, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats: {}
+ m_Colors:
+ data:
+ first:
+ name: _Color
+ second: {r: 1, g: 1, b: 1, a: 1}
+ data:
+ first:
+ name: _TintColor
+ second: {r: .5, g: .5, b: .5, a: .5}
+ data:
+ first:
+ name: BumpMapScale
+ second: {r: 1, g: 1, b: 1, a: 1}
+ data:
+ first:
+ name: _ProjectorClip_0
+ second: {r: -.0154382316, g: -.0258666929, b: .144606143, a: .293609738}
+ data:
+ first:
+ name: _ProjectorClip_1
+ second: {r: .0047582523, g: .145238146, b: .0264877379, a: .00306412578}
+ data:
+ first:
+ name: _ProjectorClip_2
+ second: {r: -.0154382316, g: -.0258666929, b: .144606143, a: .293609738}
+ data:
+ first:
+ name: _ProjectorClip_3
+ second: {r: 0, g: 0, b: 0, a: 1}
+ data:
+ first:
+ name: _ProjectorDistance_0
+ second: {r: -.0152135147, g: -.0254901797, b: .142501265, a: .303891957}
+ data:
+ first:
+ name: _ProjectorDistance_1
+ second: {r: .00468899123, g: .143124074, b: .0261021852, a: .0175754428}
+ data:
+ first:
+ name: _ProjectorDistance_2
+ second: {r: -.0152135147, g: -.0254901797, b: .142501265, a: .303891957}
+ data:
+ first:
+ name: _ProjectorDistance_3
+ second: {r: 0, g: 0, b: 0, a: 1}
+ data:
+ first:
+ name: _Projector_0
+ second: {r: 1.67100453, g: -.174724922, b: .657876611, a: 1.0662117}
+ data:
+ first:
+ name: _Projector_1
+ second: {r: -.00143754855, g: 1.46366906, b: .772396564, a: 1.2343576}
+ data:
+ first:
+ name: _Projector_2
+ second: {r: -.107604526, g: -.180290937, b: 1.00790524, a: 1.94646192}
+ data:
+ first:
+ name: _Projector_3
+ second: {r: -.104516894, g: -.175117612, b: .978984177, a: 2.08773851}
+--- !u!1002 &2100001
+EditorExtensionImpl:
+ serializedVersion: 6
diff --git a/TheCauldron/Assets/Standard Assets/Effects/Projectors/Materials/GridProjector.mat.meta b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Materials/GridProjector.mat.meta
new file mode 100644
index 0000000..f84f071
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Materials/GridProjector.mat.meta
@@ -0,0 +1,5 @@
+fileFormatVersion: 2
+guid: c7d1a73cf0f423947bae4e238665d9c5
+NativeFormatImporter:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/Projectors/Materials/LightProjector.mat b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Materials/LightProjector.mat
new file mode 100644
index 0000000..c7deebb
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Materials/LightProjector.mat
@@ -0,0 +1,122 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 4
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: LightProjector
+ m_Shader: {fileID: 4800000, guid: c0ace1ca4bc0718448acf798c93d52d9, type: 3}
+ m_ShaderKeywords:
+ m_CustomRenderQueue: -1
+ m_SavedProperties:
+ serializedVersion: 2
+ m_TexEnvs:
+ data:
+ first:
+ name: _MainTex
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _ShadowTex
+ second:
+ m_Texture: {fileID: 2800000, guid: b1d7fee26e54cc3498f6267f072a45b9, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _FalloffTex
+ second:
+ m_Texture: {fileID: 2800000, guid: 23740055e2b119e40a939138ab8070f8, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _BumpTex
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _CombineTex
+ second:
+ m_Texture: {fileID: 2800000, guid: 92b0a732ad112a541100162a44295342, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _HiliteTex
+ second:
+ m_Texture: {fileID: 2800000, guid: f7a0a732ad112a541100162a44295342, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats: {}
+ m_Colors:
+ data:
+ first:
+ name: _Color
+ second: {r: 1, g: 1, b: 1, a: 1}
+ data:
+ first:
+ name: _TintColor
+ second: {r: .5, g: .5, b: .5, a: .5}
+ data:
+ first:
+ name: BumpMapScale
+ second: {r: 1, g: 1, b: 1, a: 1}
+ data:
+ first:
+ name: _ProjectorClip_0
+ second: {r: -.0154382316, g: -.0258666929, b: .144606143, a: .293609738}
+ data:
+ first:
+ name: _ProjectorClip_1
+ second: {r: .0047582523, g: .145238146, b: .0264877379, a: .00306412578}
+ data:
+ first:
+ name: _ProjectorClip_2
+ second: {r: -.0154382316, g: -.0258666929, b: .144606143, a: .293609738}
+ data:
+ first:
+ name: _ProjectorClip_3
+ second: {r: 0, g: 0, b: 0, a: 1}
+ data:
+ first:
+ name: _ProjectorDistance_0
+ second: {r: -.0152135147, g: -.0254901797, b: .142501265, a: .303891957}
+ data:
+ first:
+ name: _ProjectorDistance_1
+ second: {r: .00468899123, g: .143124074, b: .0261021852, a: .0175754428}
+ data:
+ first:
+ name: _ProjectorDistance_2
+ second: {r: -.0152135147, g: -.0254901797, b: .142501265, a: .303891957}
+ data:
+ first:
+ name: _ProjectorDistance_3
+ second: {r: 0, g: 0, b: 0, a: 1}
+ data:
+ first:
+ name: _Projector_0
+ second: {r: 1.67100453, g: -.174724922, b: .657876611, a: 1.0662117}
+ data:
+ first:
+ name: _Projector_1
+ second: {r: -.00143754855, g: 1.46366906, b: .772396564, a: 1.2343576}
+ data:
+ first:
+ name: _Projector_2
+ second: {r: -.107604526, g: -.180290937, b: 1.00790524, a: 1.94646192}
+ data:
+ first:
+ name: _Projector_3
+ second: {r: -.104516894, g: -.175117612, b: .978984177, a: 2.08773851}
+--- !u!1002 &2100001
+EditorExtensionImpl:
+ serializedVersion: 6
diff --git a/TheCauldron/Assets/Standard Assets/Effects/Projectors/Materials/LightProjector.mat.meta b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Materials/LightProjector.mat.meta
new file mode 100644
index 0000000..2279e56
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Materials/LightProjector.mat.meta
@@ -0,0 +1,5 @@
+fileFormatVersion: 2
+guid: c8c80c5b03f5c7e40b07eb2170e667e5
+NativeFormatImporter:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/Projectors/Materials/ShadowProjector.mat b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Materials/ShadowProjector.mat
new file mode 100644
index 0000000..109bc07
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Materials/ShadowProjector.mat
@@ -0,0 +1,122 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 3
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: ShadowProjector
+ m_Shader: {fileID: 4800000, guid: 01a668cc78047034a8a0c5ca2d24c6f7, type: 3}
+ m_ShaderKeywords: []
+ m_CustomRenderQueue: -1
+ m_SavedProperties:
+ serializedVersion: 2
+ m_TexEnvs:
+ data:
+ first:
+ name: _MainTex
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _ShadowTex
+ second:
+ m_Texture: {fileID: 2800000, guid: 68386fc9897223346a683105b4dc1662, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _FalloffTex
+ second:
+ m_Texture: {fileID: 2800000, guid: 23740055e2b119e40a939138ab8070f8, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _BumpTex
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _CombineTex
+ second:
+ m_Texture: {fileID: 2800000, guid: 92b0a732ad112a541100162a44295342, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _HiliteTex
+ second:
+ m_Texture: {fileID: 2800000, guid: f7a0a732ad112a541100162a44295342, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats: {}
+ m_Colors:
+ data:
+ first:
+ name: _Color
+ second: {r: 1, g: 1, b: 1, a: 1}
+ data:
+ first:
+ name: _TintColor
+ second: {r: .5, g: .5, b: .5, a: .5}
+ data:
+ first:
+ name: BumpMapScale
+ second: {r: 1, g: 1, b: 1, a: 1}
+ data:
+ first:
+ name: _ProjectorClip_0
+ second: {r: -.0154382316, g: -.0258666929, b: .144606143, a: .293609738}
+ data:
+ first:
+ name: _ProjectorClip_1
+ second: {r: .0047582523, g: .145238146, b: .0264877379, a: .00306412578}
+ data:
+ first:
+ name: _ProjectorClip_2
+ second: {r: -.0154382316, g: -.0258666929, b: .144606143, a: .293609738}
+ data:
+ first:
+ name: _ProjectorClip_3
+ second: {r: 0, g: 0, b: 0, a: 1}
+ data:
+ first:
+ name: _ProjectorDistance_0
+ second: {r: -.0152135147, g: -.0254901797, b: .142501265, a: .303891957}
+ data:
+ first:
+ name: _ProjectorDistance_1
+ second: {r: .00468899123, g: .143124074, b: .0261021852, a: .0175754428}
+ data:
+ first:
+ name: _ProjectorDistance_2
+ second: {r: -.0152135147, g: -.0254901797, b: .142501265, a: .303891957}
+ data:
+ first:
+ name: _ProjectorDistance_3
+ second: {r: 0, g: 0, b: 0, a: 1}
+ data:
+ first:
+ name: _Projector_0
+ second: {r: 1.67100453, g: -.174724922, b: .657876611, a: 1.0662117}
+ data:
+ first:
+ name: _Projector_1
+ second: {r: -.00143754855, g: 1.46366906, b: .772396564, a: 1.2343576}
+ data:
+ first:
+ name: _Projector_2
+ second: {r: -.107604526, g: -.180290937, b: 1.00790524, a: 1.94646192}
+ data:
+ first:
+ name: _Projector_3
+ second: {r: -.104516894, g: -.175117612, b: .978984177, a: 2.08773851}
+--- !u!1002 &2100001
+EditorExtensionImpl:
+ serializedVersion: 6
diff --git a/TheCauldron/Assets/Standard Assets/Effects/Projectors/Materials/ShadowProjector.mat.meta b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Materials/ShadowProjector.mat.meta
new file mode 100644
index 0000000..214a7cb
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Materials/ShadowProjector.mat.meta
@@ -0,0 +1,5 @@
+fileFormatVersion: 2
+guid: e30ff3588e719f34bbf0c66f22d97487
+NativeFormatImporter:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/Projectors/Prefabs.meta b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Prefabs.meta
new file mode 100644
index 0000000..be5707a
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Prefabs.meta
@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: b6b64336cd6795c4daf856f275c23f7c
+folderAsset: yes
+DefaultImporter:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/Projectors/Prefabs/BlobLightProjector.prefab b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Prefabs/BlobLightProjector.prefab
new file mode 100644
index 0000000..6ef12d1
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Prefabs/BlobLightProjector.prefab
@@ -0,0 +1,71 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &100002
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 4
+ m_Component:
+ - 4: {fileID: 400002}
+ - 119: {fileID: 11900000}
+ m_Layer: 0
+ m_Name: BlobLightProjector
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1002 &100003
+EditorExtensionImpl:
+ serializedVersion: 6
+--- !u!4 &400002
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 100002}
+ m_LocalRotation: {x: .707106829, y: 0, z: 0, w: .707106709}
+ m_LocalPosition: {x: .590070009, y: 1.97459996, z: -1.91789997}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+--- !u!1002 &400003
+EditorExtensionImpl:
+ serializedVersion: 6
+--- !u!119 &11900000
+Projector:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 100002}
+ m_Enabled: 1
+ serializedVersion: 2
+ m_NearClipPlane: .100000001
+ m_FarClipPlane: 50
+ m_FieldOfView: 30
+ m_AspectRatio: 1
+ m_Orthographic: 0
+ m_OrthographicSize: 2
+ m_Material: {fileID: 2100000, guid: c8c80c5b03f5c7e40b07eb2170e667e5, type: 2}
+ m_IgnoreLayers:
+ serializedVersion: 2
+ m_Bits: 0
+--- !u!1002 &11900001
+EditorExtensionImpl:
+ serializedVersion: 6
+--- !u!1001 &100100000
+Prefab:
+ m_ObjectHideFlags: 1
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications: []
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 0}
+ m_RootGameObject: {fileID: 100002}
+ m_IsPrefabParent: 1
+--- !u!1002 &100100001
+EditorExtensionImpl:
+ serializedVersion: 6
diff --git a/TheCauldron/Assets/Standard Assets/Effects/Projectors/Prefabs/BlobLightProjector.prefab.meta b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Prefabs/BlobLightProjector.prefab.meta
new file mode 100644
index 0000000..f4438cd
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Prefabs/BlobLightProjector.prefab.meta
@@ -0,0 +1,5 @@
+fileFormatVersion: 2
+guid: 21543d2b66928224f8a9536ff3811682
+NativeFormatImporter:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/Projectors/Prefabs/BlobShadowProjector.prefab b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Prefabs/BlobShadowProjector.prefab
new file mode 100644
index 0000000..6ab2d94
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Prefabs/BlobShadowProjector.prefab
@@ -0,0 +1,71 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &100002
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 4
+ m_Component:
+ - 4: {fileID: 400002}
+ - 119: {fileID: 11900000}
+ m_Layer: 0
+ m_Name: BlobShadowProjector
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1002 &100003
+EditorExtensionImpl:
+ serializedVersion: 6
+--- !u!4 &400002
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 100002}
+ m_LocalRotation: {x: .75157696, y: 0, z: 0, w: .659645498}
+ m_LocalPosition: {x: 0, y: 1.87699997, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+--- !u!1002 &400003
+EditorExtensionImpl:
+ serializedVersion: 6
+--- !u!119 &11900000
+Projector:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 100002}
+ m_Enabled: 1
+ serializedVersion: 2
+ m_NearClipPlane: .100000001
+ m_FarClipPlane: 50
+ m_FieldOfView: 30
+ m_AspectRatio: 1
+ m_Orthographic: 0
+ m_OrthographicSize: 2
+ m_Material: {fileID: 2100000, guid: e30ff3588e719f34bbf0c66f22d97487, type: 2}
+ m_IgnoreLayers:
+ serializedVersion: 2
+ m_Bits: 0
+--- !u!1002 &11900001
+EditorExtensionImpl:
+ serializedVersion: 6
+--- !u!1001 &100100000
+Prefab:
+ m_ObjectHideFlags: 1
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications: []
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 0}
+ m_RootGameObject: {fileID: 100002}
+ m_IsPrefabParent: 1
+--- !u!1002 &100100001
+EditorExtensionImpl:
+ serializedVersion: 6
diff --git a/TheCauldron/Assets/Standard Assets/Effects/Projectors/Prefabs/BlobShadowProjector.prefab.meta b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Prefabs/BlobShadowProjector.prefab.meta
new file mode 100644
index 0000000..958c52f
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Prefabs/BlobShadowProjector.prefab.meta
@@ -0,0 +1,5 @@
+fileFormatVersion: 2
+guid: 28a5e79925e3ce04a82856c16a572cbe
+NativeFormatImporter:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/Projectors/Prefabs/GridProjector.prefab b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Prefabs/GridProjector.prefab
new file mode 100644
index 0000000..5b175cb
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Prefabs/GridProjector.prefab
@@ -0,0 +1,71 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!1 &100002
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ serializedVersion: 4
+ m_Component:
+ - 4: {fileID: 400002}
+ - 119: {fileID: 11900000}
+ m_Layer: 0
+ m_Name: GridProjector
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!1002 &100003
+EditorExtensionImpl:
+ serializedVersion: 6
+--- !u!4 &400002
+Transform:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 100002}
+ m_LocalRotation: {x: .707106829, y: 0, z: 0, w: .707106709}
+ m_LocalPosition: {x: -2.12590003, y: 1.97899997, z: -.925180018}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_RootOrder: 0
+--- !u!1002 &400003
+EditorExtensionImpl:
+ serializedVersion: 6
+--- !u!119 &11900000
+Projector:
+ m_ObjectHideFlags: 1
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 100100000}
+ m_GameObject: {fileID: 100002}
+ m_Enabled: 1
+ serializedVersion: 2
+ m_NearClipPlane: .100000001
+ m_FarClipPlane: 50
+ m_FieldOfView: 30
+ m_AspectRatio: 1
+ m_Orthographic: 1
+ m_OrthographicSize: .25
+ m_Material: {fileID: 2100000, guid: c7d1a73cf0f423947bae4e238665d9c5, type: 2}
+ m_IgnoreLayers:
+ serializedVersion: 2
+ m_Bits: 0
+--- !u!1002 &11900001
+EditorExtensionImpl:
+ serializedVersion: 6
+--- !u!1001 &100100000
+Prefab:
+ m_ObjectHideFlags: 1
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications: []
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 0}
+ m_RootGameObject: {fileID: 100002}
+ m_IsPrefabParent: 1
+--- !u!1002 &100100001
+EditorExtensionImpl:
+ serializedVersion: 6
diff --git a/TheCauldron/Assets/Standard Assets/Effects/Projectors/Prefabs/GridProjector.prefab.meta b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Prefabs/GridProjector.prefab.meta
new file mode 100644
index 0000000..6b5e0f4
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Prefabs/GridProjector.prefab.meta
@@ -0,0 +1,5 @@
+fileFormatVersion: 2
+guid: 46b12845355544642bf8f9d0cb373af7
+NativeFormatImporter:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/Projectors/Shaders.meta b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Shaders.meta
new file mode 100644
index 0000000..a853340
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Shaders.meta
@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: 0d64cf85603324c6d89204084bbb3438
+folderAsset: yes
+DefaultImporter:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/Projectors/Shaders/ProjectorLight.shader b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Shaders/ProjectorLight.shader
new file mode 100644
index 0000000..68cbeed
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Shaders/ProjectorLight.shader
@@ -0,0 +1,61 @@
+Shader "Projector/Light" {
+ Properties {
+ _Color ("Main Color", Color) = (1,1,1,1)
+ _ShadowTex ("Cookie", 2D) = "" {}
+ _FalloffTex ("FallOff", 2D) = "" {}
+ }
+
+ Subshader {
+ Tags {"Queue"="Transparent"}
+ Pass {
+ ZWrite Off
+ ColorMask RGB
+ Blend DstColor One
+ Offset -1, -1
+
+ CGPROGRAM
+ #pragma vertex vert
+ #pragma fragment frag
+ #pragma multi_compile_fog
+ #include "UnityCG.cginc"
+
+ struct v2f {
+ float4 uvShadow : TEXCOORD0;
+ float4 uvFalloff : TEXCOORD1;
+ UNITY_FOG_COORDS(2)
+ float4 pos : SV_POSITION;
+ };
+
+ float4x4 _Projector;
+ float4x4 _ProjectorClip;
+
+ v2f vert (float4 vertex : POSITION)
+ {
+ v2f o;
+ o.pos = mul (UNITY_MATRIX_MVP, vertex);
+ o.uvShadow = mul (_Projector, vertex);
+ o.uvFalloff = mul (_ProjectorClip, vertex);
+ UNITY_TRANSFER_FOG(o,o.pos);
+ return o;
+ }
+
+ fixed4 _Color;
+ sampler2D _ShadowTex;
+ sampler2D _FalloffTex;
+
+ fixed4 frag (v2f i) : SV_Target
+ {
+ fixed4 texS = tex2Dproj (_ShadowTex, UNITY_PROJ_COORD(i.uvShadow));
+ texS.rgb *= _Color.rgb;
+ texS.a = 1.0-texS.a;
+
+ fixed4 texF = tex2Dproj (_FalloffTex, UNITY_PROJ_COORD(i.uvFalloff));
+ fixed4 res = texS * texF.a;
+
+ UNITY_APPLY_FOG_COLOR(i.fogCoord, res, fixed4(0,0,0,0));
+ return res;
+ }
+ ENDCG
+ }
+ }
+}
diff --git a/TheCauldron/Assets/Standard Assets/Effects/Projectors/Shaders/ProjectorLight.shader.meta b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Shaders/ProjectorLight.shader.meta
new file mode 100644
index 0000000..4a5d302
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Shaders/ProjectorLight.shader.meta
@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: c0ace1ca4bc0718448acf798c93d52d9
+ShaderImporter:
+ defaultTextures: []
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/Projectors/Shaders/ProjectorMultiply.shader b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Shaders/ProjectorMultiply.shader
new file mode 100644
index 0000000..7a385d1
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Shaders/ProjectorMultiply.shader
@@ -0,0 +1,57 @@
+Shader "Projector/Multiply" {
+ Properties {
+ _ShadowTex ("Cookie", 2D) = "gray" {}
+ _FalloffTex ("FallOff", 2D) = "white" {}
+ }
+ Subshader {
+ Tags {"Queue"="Transparent"}
+ Pass {
+ ZWrite Off
+ ColorMask RGB
+ Blend DstColor Zero
+ Offset -1, -1
+
+ CGPROGRAM
+ #pragma vertex vert
+ #pragma fragment frag
+ #pragma multi_compile_fog
+ #include "UnityCG.cginc"
+
+ struct v2f {
+ float4 uvShadow : TEXCOORD0;
+ float4 uvFalloff : TEXCOORD1;
+ UNITY_FOG_COORDS(2)
+ float4 pos : SV_POSITION;
+ };
+
+ float4x4 _Projector;
+ float4x4 _ProjectorClip;
+
+ v2f vert (float4 vertex : POSITION)
+ {
+ v2f o;
+ o.pos = mul (UNITY_MATRIX_MVP, vertex);
+ o.uvShadow = mul (_Projector, vertex);
+ o.uvFalloff = mul (_ProjectorClip, vertex);
+ UNITY_TRANSFER_FOG(o,o.pos);
+ return o;
+ }
+
+ sampler2D _ShadowTex;
+ sampler2D _FalloffTex;
+
+ fixed4 frag (v2f i) : SV_Target
+ {
+ fixed4 texS = tex2Dproj (_ShadowTex, UNITY_PROJ_COORD(i.uvShadow));
+ texS.a = 1.0-texS.a;
+
+ fixed4 texF = tex2Dproj (_FalloffTex, UNITY_PROJ_COORD(i.uvFalloff));
+ fixed4 res = lerp(fixed4(1,1,1,0), texS, texF.a);
+
+ UNITY_APPLY_FOG_COLOR(i.fogCoord, res, fixed4(1,1,1,1));
+ return res;
+ }
+ ENDCG
+ }
+ }
+}
diff --git a/TheCauldron/Assets/Standard Assets/Effects/Projectors/Shaders/ProjectorMultiply.shader.meta b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Shaders/ProjectorMultiply.shader.meta
new file mode 100644
index 0000000..268e7e4
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Shaders/ProjectorMultiply.shader.meta
@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: 01a668cc78047034a8a0c5ca2d24c6f7
+ShaderImporter:
+ defaultTextures: []
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/Projectors/Textures.meta b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Textures.meta
new file mode 100644
index 0000000..e1d6034
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Textures.meta
@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: 24f8b7f726c7047cb906be889dbf5ac1
+folderAsset: yes
+DefaultImporter:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/Projectors/Textures/Falloff.psd b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Textures/Falloff.psd
new file mode 100644
index 0000000..2dea334
Binary files /dev/null and b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Textures/Falloff.psd differ
diff --git a/TheCauldron/Assets/Standard Assets/Effects/Projectors/Textures/Falloff.psd.meta b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Textures/Falloff.psd.meta
new file mode 100644
index 0000000..adb899e
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Textures/Falloff.psd.meta
@@ -0,0 +1,52 @@
+fileFormatVersion: 2
+guid: 23740055e2b119e40a939138ab8070f8
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 1
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 1
+ generateCubemap: 0
+ cubemapConvolution: 0
+ cubemapConvolutionSteps: 8
+ cubemapConvolutionExponent: 1.5
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 256
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: 1
+ nPOTScale: 1
+ lightmap: 0
+ rGBM: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: .5, y: .5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 0
+ textureType: 5
+ buildTargetSettings: []
+ spriteSheet:
+ sprites: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/Projectors/Textures/Grid.psd b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Textures/Grid.psd
new file mode 100644
index 0000000..89c45d6
Binary files /dev/null and b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Textures/Grid.psd differ
diff --git a/TheCauldron/Assets/Standard Assets/Effects/Projectors/Textures/Grid.psd.meta b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Textures/Grid.psd.meta
new file mode 100644
index 0000000..c87b4ab
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Textures/Grid.psd.meta
@@ -0,0 +1,52 @@
+fileFormatVersion: 2
+guid: 529239097d02f9f42b0ddd436c6fcbb0
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ cubemapConvolution: 0
+ cubemapConvolutionSteps: 8
+ cubemapConvolutionExponent: 1.5
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 256
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: 0
+ nPOTScale: 1
+ lightmap: 0
+ rGBM: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: .5, y: .5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 0
+ textureType: 5
+ buildTargetSettings: []
+ spriteSheet:
+ sprites: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/Projectors/Textures/Light.psd b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Textures/Light.psd
new file mode 100644
index 0000000..dad13f8
Binary files /dev/null and b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Textures/Light.psd differ
diff --git a/TheCauldron/Assets/Standard Assets/Effects/Projectors/Textures/Light.psd.meta b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Textures/Light.psd.meta
new file mode 100644
index 0000000..d65c212
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Textures/Light.psd.meta
@@ -0,0 +1,52 @@
+fileFormatVersion: 2
+guid: b1d7fee26e54cc3498f6267f072a45b9
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 1
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ cubemapConvolution: 0
+ cubemapConvolutionSteps: 8
+ cubemapConvolutionExponent: 1.5
+ seamlessCubemap: 0
+ textureFormat: -3
+ maxTextureSize: 64
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: 1
+ nPOTScale: 1
+ lightmap: 0
+ rGBM: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: .5, y: .5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 0
+ textureType: 5
+ buildTargetSettings: []
+ spriteSheet:
+ sprites: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/Projectors/Textures/Shadow.psd b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Textures/Shadow.psd
new file mode 100644
index 0000000..111a658
Binary files /dev/null and b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Textures/Shadow.psd differ
diff --git a/TheCauldron/Assets/Standard Assets/Effects/Projectors/Textures/Shadow.psd.meta b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Textures/Shadow.psd.meta
new file mode 100644
index 0000000..f4f5772
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/Projectors/Textures/Shadow.psd.meta
@@ -0,0 +1,52 @@
+fileFormatVersion: 2
+guid: 68386fc9897223346a683105b4dc1662
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 1
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 1
+ generateCubemap: 0
+ cubemapConvolution: 0
+ cubemapConvolutionSteps: 8
+ cubemapConvolutionExponent: 1.5
+ seamlessCubemap: 0
+ textureFormat: -3
+ maxTextureSize: 64
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: 1
+ nPOTScale: 1
+ lightmap: 0
+ rGBM: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: .5, y: .5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 0
+ textureType: 5
+ buildTargetSettings: []
+ spriteSheet:
+ sprites: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders.meta b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders.meta
new file mode 100644
index 0000000..b00a47c
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders.meta
@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: b7b4d46ae2ac0ff449c02180209eea5d
+folderAsset: yes
+DefaultImporter:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Materials.meta b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Materials.meta
new file mode 100644
index 0000000..da872c6
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Materials.meta
@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: 6deddaccf56ed5f47806946aed94d2c9
+folderAsset: yes
+DefaultImporter:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Materials/TesselatedBumpSpecular.mat b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Materials/TesselatedBumpSpecular.mat
new file mode 100644
index 0000000..e5617d4
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Materials/TesselatedBumpSpecular.mat
@@ -0,0 +1,51 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 3
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: TesselatedBumpSpecular
+ m_Shader: {fileID: 4, guid: 0000000000000000f000000000000000, type: 0}
+ m_ShaderKeywords: []
+ m_CustomRenderQueue: -1
+ m_SavedProperties:
+ serializedVersion: 2
+ m_TexEnvs:
+ data:
+ first:
+ name: _MainTex
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _BumpMap
+ second:
+ m_Texture: {fileID: 2800000, guid: e08c295755c0885479ad19f518286ff2, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ data:
+ first:
+ name: _Shininess
+ second: .335313648
+ data:
+ first:
+ name: _EdgeLength
+ second: 10
+ data:
+ first:
+ name: _Smoothness
+ second: .5
+ m_Colors:
+ data:
+ first:
+ name: _Color
+ second: {r: .50746268, g: .50746268, b: .50746268, a: 1}
+ data:
+ first:
+ name: _SpecColor
+ second: {r: .5, g: .5, b: .5, a: 1}
diff --git a/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Materials/TesselatedBumpSpecular.mat.meta b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Materials/TesselatedBumpSpecular.mat.meta
new file mode 100644
index 0000000..9d134a7
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Materials/TesselatedBumpSpecular.mat.meta
@@ -0,0 +1,5 @@
+fileFormatVersion: 2
+guid: a3384ef3e2313034f9016ad8a1f3999f
+NativeFormatImporter:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Materials/TesselatedBumpSpecularDisplacement.mat b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Materials/TesselatedBumpSpecularDisplacement.mat
new file mode 100644
index 0000000..e2dee51
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Materials/TesselatedBumpSpecularDisplacement.mat
@@ -0,0 +1,58 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 3
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: TesselatedBumpSpecularDisplacement
+ m_Shader: {fileID: 4800000, guid: 0a4b0bce1e250a14bb534d70bce205fa, type: 3}
+ m_ShaderKeywords: []
+ m_CustomRenderQueue: -1
+ m_SavedProperties:
+ serializedVersion: 2
+ m_TexEnvs:
+ data:
+ first:
+ name: _MainTex
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 2, y: 2}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _BumpMap
+ second:
+ m_Texture: {fileID: 2800000, guid: e08c295755c0885479ad19f518286ff2, type: 3}
+ m_Scale: {x: 2, y: 2}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _ParallaxMap
+ second:
+ m_Texture: {fileID: 2800000, guid: 17da6d53ec93a0444bd0f751b1d02477, type: 3}
+ m_Scale: {x: 2, y: 2}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ data:
+ first:
+ name: _Shininess
+ second: .0732631832
+ data:
+ first:
+ name: _EdgeLength
+ second: 12.3068314
+ data:
+ first:
+ name: _Parallax
+ second: .354557991
+ m_Colors:
+ data:
+ first:
+ name: _Color
+ second: {r: .514925361, g: .514925361, b: .514925361, a: 1}
+ data:
+ first:
+ name: _SpecColor
+ second: {r: .5, g: .5, b: .5, a: 1}
diff --git a/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Materials/TesselatedBumpSpecularDisplacement.mat.meta b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Materials/TesselatedBumpSpecularDisplacement.mat.meta
new file mode 100644
index 0000000..29f2584
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Materials/TesselatedBumpSpecularDisplacement.mat.meta
@@ -0,0 +1,5 @@
+fileFormatVersion: 2
+guid: 26d8bdbc8646bde48b05fbaacaaa6577
+NativeFormatImporter:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Materials/TesselatedBumpSpecularSmooth.mat b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Materials/TesselatedBumpSpecularSmooth.mat
new file mode 100644
index 0000000..6be0db3
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Materials/TesselatedBumpSpecularSmooth.mat
@@ -0,0 +1,51 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 3
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: TesselatedBumpSpecularSmooth
+ m_Shader: {fileID: 4800000, guid: 3954501323f24464f9e4418c78d8e8ce, type: 3}
+ m_ShaderKeywords: []
+ m_CustomRenderQueue: -1
+ m_SavedProperties:
+ serializedVersion: 2
+ m_TexEnvs:
+ data:
+ first:
+ name: _MainTex
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _BumpMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ data:
+ first:
+ name: _Shininess
+ second: .319910288
+ data:
+ first:
+ name: _EdgeLength
+ second: 12.1044779
+ data:
+ first:
+ name: _Smoothness
+ second: .522388041
+ m_Colors:
+ data:
+ first:
+ name: _Color
+ second: {r: .514925361, g: .514925361, b: .514925361, a: 1}
+ data:
+ first:
+ name: _SpecColor
+ second: {r: .5, g: .5, b: .5, a: 1}
diff --git a/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Materials/TesselatedBumpSpecularSmooth.mat.meta b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Materials/TesselatedBumpSpecularSmooth.mat.meta
new file mode 100644
index 0000000..4febed3
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Materials/TesselatedBumpSpecularSmooth.mat.meta
@@ -0,0 +1,5 @@
+fileFormatVersion: 2
+guid: 06893cec523208643a91b7a393737700
+NativeFormatImporter:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Models.meta b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Models.meta
new file mode 100644
index 0000000..e74e656
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Models.meta
@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: 0c309011180e934488a03e0a88190d11
+folderAsset: yes
+DefaultImporter:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Models/LowPolySphere.fbx b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Models/LowPolySphere.fbx
new file mode 100644
index 0000000..3e4622d
Binary files /dev/null and b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Models/LowPolySphere.fbx differ
diff --git a/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Models/LowPolySphere.fbx.meta b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Models/LowPolySphere.fbx.meta
new file mode 100644
index 0000000..5801565
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Models/LowPolySphere.fbx.meta
@@ -0,0 +1,69 @@
+fileFormatVersion: 2
+guid: 103612e5e1ff43a4e896c567a2cb3ae1
+ModelImporter:
+ serializedVersion: 18
+ fileIDToRecycleName:
+ 100000: //RootNode
+ 400000: //RootNode
+ 2300000: //RootNode
+ 3300000: //RootNode
+ 4300000: pSphere1
+ 4300002: LowPolySphere
+ 11100000: //RootNode
+ materials:
+ importMaterials: 0
+ materialName: 1
+ materialSearch: 2
+ animations:
+ legacyGenerateAnimations: 0
+ bakeSimulation: 0
+ optimizeGameObjects: 0
+ motionNodeName:
+ pivotNodeName:
+ animationCompression: 1
+ animationRotationError: .5
+ animationPositionError: .5
+ animationScaleError: .5
+ animationWrapMode: 0
+ extraExposedTransformPaths: []
+ clipAnimations: []
+ isReadable: 0
+ meshes:
+ lODScreenPercentages: []
+ globalScale: 1
+ meshCompression: 0
+ addColliders: 0
+ importBlendShapes: 1
+ swapUVChannels: 0
+ generateSecondaryUV: 0
+ useFileUnits: 0
+ optimizeMeshForGPU: 1
+ weldVertices: 1
+ secondaryUVAngleDistortion: 8
+ secondaryUVAreaDistortion: 15.000001
+ secondaryUVHardAngle: 88
+ secondaryUVPackMargin: 4
+ useFileScale: 0
+ tangentSpace:
+ normalSmoothAngle: 180
+ splitTangentsAcrossUV: 1
+ normalImportMode: 1
+ tangentImportMode: 1
+ importAnimation: 1
+ copyAvatar: 0
+ humanDescription:
+ human: []
+ skeleton: []
+ armTwist: .5
+ foreArmTwist: .5
+ upperLegTwist: .5
+ legTwist: .5
+ armStretch: .0500000007
+ legStretch: .0500000007
+ feetSpacing: 0
+ rootMotionBoneName:
+ lastHumanDescriptionAvatarSource: {instanceID: 0}
+ animationType: 1
+ additionalBone: 0
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Scenes.meta b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Scenes.meta
new file mode 100644
index 0000000..1118db4
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Scenes.meta
@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: 1553d77f542284c478caca3b413d7c6a
+folderAsset: yes
+DefaultImporter:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Scenes/TessellationSample.unity b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Scenes/TessellationSample.unity
new file mode 100644
index 0000000..46b9302
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Scenes/TessellationSample.unity
@@ -0,0 +1,782 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!29 &1
+SceneSettings:
+ m_ObjectHideFlags: 0
+ m_PVSData:
+ m_QueryMode: 1
+ m_PVSObjectsArray: []
+ m_PVSPortalsArray: []
+ m_OcclusionBakeSettings:
+ viewCellSize: 1
+ bakeMode: 2
+ memoryUsage: 10485760
+--- !u!104 &2
+RenderSettings:
+ m_Fog: 0
+ m_FogColor: {r: .5, g: .5, b: .5, a: 1}
+ m_FogMode: 3
+ m_FogDensity: .00999999978
+ m_LinearFogStart: 0
+ m_LinearFogEnd: 300
+ m_AmbientLight: {r: .208509669, g: .209568977, b: .23880595, a: 1}
+ m_SkyboxMaterial: {fileID: 0}
+ m_HaloStrength: .5
+ m_FlareStrength: 1
+ m_HaloTexture: {fileID: 0}
+ m_SpotCookie: {fileID: 0}
+ m_ObjectHideFlags: 0
+--- !u!127 &3
+LevelGameManager:
+ m_ObjectHideFlags: 0
+--- !u!157 &4
+LightmapSettings:
+ m_ObjectHideFlags: 0
+ m_LightProbes: {fileID: 0}
+ m_Lightmaps: []
+ m_LightmapsMode: 1
+ m_BakedColorSpace: 0
+ m_UseDualLightmapsInForward: 0
+ m_LightmapEditorSettings:
+ m_Resolution: 50
+ m_LastUsedResolution: 0
+ m_TextureWidth: 1024
+ m_TextureHeight: 1024
+ m_BounceBoost: 1
+ m_BounceIntensity: 1
+ m_SkyLightColor: {r: .860000014, g: .930000007, b: 1, a: 1}
+ m_SkyLightIntensity: 0
+ m_Quality: 0
+ m_Bounces: 1
+ m_FinalGatherRays: 1000
+ m_FinalGatherContrastThreshold: .0500000007
+ m_FinalGatherGradientThreshold: 0
+ m_FinalGatherInterpolationPoints: 15
+ m_AOAmount: 0
+ m_AOMaxDistance: .100000001
+ m_AOContrast: 1
+ m_LODSurfaceMappingDistance: 1
+ m_Padding: 0
+ m_TextureCompression: 0
+ m_LockAtlas: 0
+--- !u!196 &5
+NavMeshSettings:
+ m_ObjectHideFlags: 0
+ m_BuildSettings:
+ agentRadius: .5
+ agentHeight: 2
+ agentSlope: 45
+ agentClimb: .400000006
+ ledgeDropHeight: 0
+ maxJumpAcrossDistance: 0
+ accuratePlacement: 0
+ minRegionArea: 2
+ widthInaccuracy: 16.666666
+ heightInaccuracy: 10
+ m_NavMesh: {fileID: 0}
+--- !u!1 &45112404
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 4
+ m_Component:
+ - 4: {fileID: 45112405}
+ - 33: {fileID: 45112407}
+ - 64: {fileID: 45112408}
+ - 23: {fileID: 45112406}
+ m_Layer: 0
+ m_Name: Plane
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &45112405
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 45112404}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: -10.1825247, y: 5.14360285, z: -15.2294216}
+ m_LocalScale: {x: 2.93550324, y: 2.93550324, z: 2.93550324}
+ m_Children:
+ - {fileID: 1025819845}
+ m_Father: {fileID: 0}
+--- !u!23 &45112406
+Renderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 45112404}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_LightmapIndex: 255
+ m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0}
+ m_Materials:
+ - {fileID: 2100000, guid: 26d8bdbc8646bde48b05fbaacaaa6577, type: 2}
+ m_SubsetIndices:
+ m_StaticBatchRoot: {fileID: 0}
+ m_UseLightProbes: 0
+ m_LightProbeAnchor: {fileID: 0}
+ m_ScaleInLightmap: 1
+--- !u!33 &45112407
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 45112404}
+ m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!64 &45112408
+MeshCollider:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 45112404}
+ m_Material: {fileID: 0}
+ m_IsTrigger: 0
+ m_Enabled: 1
+ serializedVersion: 2
+ m_SmoothSphereCollisions: 0
+ m_Convex: 0
+ m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!1001 &184320516
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 400000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: -4.40180111
+ objectReference: {fileID: 0}
+ - target: {fileID: 400000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 7.55032682
+ objectReference: {fileID: 0}
+ - target: {fileID: 400000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: -8.54045105
+ objectReference: {fileID: 0}
+ - target: {fileID: 400000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: -.707106829
+ objectReference: {fileID: 0}
+ - target: {fileID: 400000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: .707106829
+ objectReference: {fileID: 0}
+ - target: {fileID: 2300000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3}
+ propertyPath: m_Materials.Array.data[0]
+ value:
+ objectReference: {fileID: 2100000, guid: 06893cec523208643a91b7a393737700, type: 2}
+ - target: {fileID: 100000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3}
+ propertyPath: m_Name
+ value: LowPolySphereSmooth
+ objectReference: {fileID: 0}
+ - target: {fileID: 100000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3}
+ propertyPath: m_IsActive
+ value: 1
+ objectReference: {fileID: 0}
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 100100000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3}
+ m_RootGameObject: {fileID: 1248114742}
+ m_IsPrefabParent: 0
+ m_IsExploded: 1
+--- !u!1 &723080850
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 4
+ m_Component:
+ - 4: {fileID: 723080851}
+ - 102: {fileID: 723080853}
+ - 23: {fileID: 723080852}
+ m_Layer: 0
+ m_Name: New Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &723080851
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 723080850}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 1, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1028651043}
+--- !u!23 &723080852
+Renderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 723080850}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_LightmapIndex: 255
+ m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0}
+ m_Materials:
+ - {fileID: 10100, guid: 0000000000000000e000000000000000, type: 0}
+ m_SubsetIndices:
+ m_StaticBatchRoot: {fileID: 0}
+ m_UseLightProbes: 0
+ m_LightProbeAnchor: {fileID: 0}
+ m_ScaleInLightmap: 1
+--- !u!102 &723080853
+TextMesh:
+ serializedVersion: 3
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 723080850}
+ m_Text: Mesh
+ m_OffsetZ: 0
+ m_CharacterSize: .100000001
+ m_LineSpacing: 1
+ m_Anchor: 4
+ m_Alignment: 0
+ m_TabSize: 4
+ m_FontSize: 20
+ m_FontStyle: 0
+ m_RichText: 1
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_Color:
+ serializedVersion: 2
+ rgba: 4294967295
+--- !u!1 &1025819844
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 4
+ m_Component:
+ - 4: {fileID: 1025819845}
+ - 102: {fileID: 1025819847}
+ - 23: {fileID: 1025819846}
+ m_Layer: 0
+ m_Name: New Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1025819845
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1025819844}
+ m_LocalRotation: {x: 0, y: -.946908474, z: 0, w: .321503431}
+ m_LocalPosition: {x: 2.99363708, y: .352484196, z: 1.65013671}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 45112405}
+--- !u!23 &1025819846
+Renderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1025819844}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_LightmapIndex: 255
+ m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0}
+ m_Materials:
+ - {fileID: 10100, guid: 0000000000000000e000000000000000, type: 0}
+ m_SubsetIndices:
+ m_StaticBatchRoot: {fileID: 0}
+ m_UseLightProbes: 0
+ m_LightProbeAnchor: {fileID: 0}
+ m_ScaleInLightmap: 1
+--- !u!102 &1025819847
+TextMesh:
+ serializedVersion: 3
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1025819844}
+ m_Text: Tessellated & Displaced plane
+ m_OffsetZ: 0
+ m_CharacterSize: .0500000007
+ m_LineSpacing: 1
+ m_Anchor: 4
+ m_Alignment: 0
+ m_TabSize: 4
+ m_FontSize: 20
+ m_FontStyle: 0
+ m_RichText: 1
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_Color:
+ serializedVersion: 2
+ rgba: 4294967295
+--- !u!1 &1028651042
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 100000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3}
+ m_PrefabInternal: {fileID: 1181271967}
+ serializedVersion: 4
+ m_Component:
+ - 4: {fileID: 1028651043}
+ - 33: {fileID: 1028651045}
+ - 23: {fileID: 1028651044}
+ - 111: {fileID: 1028651046}
+ m_Layer: 0
+ m_Name: LowPolySphere
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1028651043
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 400000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3}
+ m_PrefabInternal: {fileID: 1181271967}
+ m_GameObject: {fileID: 1028651042}
+ m_LocalRotation: {x: 0, y: -.707106829, z: 0, w: .707106829}
+ m_LocalPosition: {x: -4.46168661, y: 7.55032682, z: -10.6198997}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 723080851}
+ m_Father: {fileID: 0}
+--- !u!23 &1028651044
+Renderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 2300000, guid: 103612e5e1ff43a4e896c567a2cb3ae1,
+ type: 3}
+ m_PrefabInternal: {fileID: 1181271967}
+ m_GameObject: {fileID: 1028651042}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_LightmapIndex: 255
+ m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0}
+ m_Materials:
+ - {fileID: 2100000, guid: a3384ef3e2313034f9016ad8a1f3999f, type: 2}
+ m_SubsetIndices:
+ m_StaticBatchRoot: {fileID: 0}
+ m_UseLightProbes: 0
+ m_LightProbeAnchor: {fileID: 0}
+ m_ScaleInLightmap: 1
+--- !u!33 &1028651045
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 3300000, guid: 103612e5e1ff43a4e896c567a2cb3ae1,
+ type: 3}
+ m_PrefabInternal: {fileID: 1181271967}
+ m_GameObject: {fileID: 1028651042}
+ m_Mesh: {fileID: 4300000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3}
+--- !u!111 &1028651046
+Animation:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 11100000, guid: 103612e5e1ff43a4e896c567a2cb3ae1,
+ type: 3}
+ m_PrefabInternal: {fileID: 1181271967}
+ m_GameObject: {fileID: 1028651042}
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Animation: {fileID: 0}
+ m_Animations: []
+ m_WrapMode: 0
+ m_PlayAutomatically: 1
+ m_AnimatePhysics: 0
+ m_CullingType: 0
+ m_UserAABB:
+ m_Center: {x: 0, y: 0, z: 0}
+ m_Extent: {x: 0, y: 0, z: 0}
+--- !u!1001 &1181271967
+Prefab:
+ m_ObjectHideFlags: 0
+ serializedVersion: 2
+ m_Modification:
+ m_TransformParent: {fileID: 0}
+ m_Modifications:
+ - target: {fileID: 400000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3}
+ propertyPath: m_LocalPosition.x
+ value: -4.46168661
+ objectReference: {fileID: 0}
+ - target: {fileID: 400000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3}
+ propertyPath: m_LocalPosition.y
+ value: 7.55032682
+ objectReference: {fileID: 0}
+ - target: {fileID: 400000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3}
+ propertyPath: m_LocalPosition.z
+ value: -10.6198997
+ objectReference: {fileID: 0}
+ - target: {fileID: 400000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3}
+ propertyPath: m_LocalRotation.x
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3}
+ propertyPath: m_LocalRotation.y
+ value: -.707106829
+ objectReference: {fileID: 0}
+ - target: {fileID: 400000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3}
+ propertyPath: m_LocalRotation.z
+ value: 0
+ objectReference: {fileID: 0}
+ - target: {fileID: 400000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3}
+ propertyPath: m_LocalRotation.w
+ value: .707106829
+ objectReference: {fileID: 0}
+ - target: {fileID: 2300000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3}
+ propertyPath: m_Materials.Array.data[0]
+ value:
+ objectReference: {fileID: 2100000, guid: a3384ef3e2313034f9016ad8a1f3999f, type: 2}
+ m_RemovedComponents: []
+ m_ParentPrefab: {fileID: 100100000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3}
+ m_RootGameObject: {fileID: 1028651042}
+ m_IsPrefabParent: 0
+ m_IsExploded: 1
+--- !u!1 &1248114742
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 100000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3}
+ m_PrefabInternal: {fileID: 184320516}
+ serializedVersion: 4
+ m_Component:
+ - 4: {fileID: 1248114743}
+ - 33: {fileID: 1248114745}
+ - 23: {fileID: 1248114744}
+ - 111: {fileID: 1248114746}
+ m_Layer: 0
+ m_Name: LowPolySphereSmooth
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1248114743
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 400000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3}
+ m_PrefabInternal: {fileID: 184320516}
+ m_GameObject: {fileID: 1248114742}
+ m_LocalRotation: {x: 0, y: -.707106829, z: 0, w: .707106829}
+ m_LocalPosition: {x: -4.40180111, y: 7.55032682, z: -8.54045105}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children:
+ - {fileID: 1403424791}
+ m_Father: {fileID: 0}
+--- !u!23 &1248114744
+Renderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 2300000, guid: 103612e5e1ff43a4e896c567a2cb3ae1,
+ type: 3}
+ m_PrefabInternal: {fileID: 184320516}
+ m_GameObject: {fileID: 1248114742}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_LightmapIndex: 255
+ m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0}
+ m_Materials:
+ - {fileID: 2100000, guid: 06893cec523208643a91b7a393737700, type: 2}
+ m_SubsetIndices:
+ m_StaticBatchRoot: {fileID: 0}
+ m_UseLightProbes: 0
+ m_LightProbeAnchor: {fileID: 0}
+ m_ScaleInLightmap: 1
+--- !u!33 &1248114745
+MeshFilter:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 3300000, guid: 103612e5e1ff43a4e896c567a2cb3ae1,
+ type: 3}
+ m_PrefabInternal: {fileID: 184320516}
+ m_GameObject: {fileID: 1248114742}
+ m_Mesh: {fileID: 4300000, guid: 103612e5e1ff43a4e896c567a2cb3ae1, type: 3}
+--- !u!111 &1248114746
+Animation:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 11100000, guid: 103612e5e1ff43a4e896c567a2cb3ae1,
+ type: 3}
+ m_PrefabInternal: {fileID: 184320516}
+ m_GameObject: {fileID: 1248114742}
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Animation: {fileID: 0}
+ m_Animations: []
+ m_WrapMode: 0
+ m_PlayAutomatically: 1
+ m_AnimatePhysics: 0
+ m_CullingType: 0
+ m_UserAABB:
+ m_Center: {x: 0, y: 0, z: 0}
+ m_Extent: {x: 0, y: 0, z: 0}
+--- !u!1 &1375005640
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 4
+ m_Component:
+ - 4: {fileID: 1375005641}
+ - 20: {fileID: 1375005642}
+ - 92: {fileID: 1375005644}
+ - 124: {fileID: 1375005645}
+ - 81: {fileID: 1375005643}
+ m_Layer: 0
+ m_Name: Main Camera
+ m_TagString: MainCamera
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1375005641
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1375005640}
+ m_LocalRotation: {x: -.0800507441, y: .876079738, z: -.153849453, w: -.449896157}
+ m_LocalPosition: {x: .311099052, y: 8.59601879, z: -7.0782752}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+--- !u!20 &1375005642
+Camera:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1375005640}
+ m_Enabled: 1
+ serializedVersion: 2
+ m_ClearFlags: 1
+ m_BackGroundColor: {r: 0, g: 0, b: 0, a: .0196078438}
+ m_NormalizedViewPortRect:
+ serializedVersion: 2
+ x: 0
+ y: 0
+ width: 1
+ height: 1
+ near clip plane: .300000012
+ far clip plane: 1000
+ field of view: 60
+ orthographic: 0
+ orthographic size: 100
+ m_Depth: -1
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingPath: -1
+ m_TargetTexture: {fileID: 0}
+ m_HDR: 0
+--- !u!81 &1375005643
+AudioListener:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1375005640}
+ m_Enabled: 1
+--- !u!92 &1375005644
+Behaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1375005640}
+ m_Enabled: 1
+--- !u!124 &1375005645
+Behaviour:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1375005640}
+ m_Enabled: 1
+--- !u!1 &1403424790
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 4
+ m_Component:
+ - 4: {fileID: 1403424791}
+ - 102: {fileID: 1403424793}
+ - 23: {fileID: 1403424792}
+ m_Layer: 0
+ m_Name: New Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1403424791
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1403424790}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 1, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 1248114743}
+--- !u!23 &1403424792
+Renderer:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1403424790}
+ m_Enabled: 1
+ m_CastShadows: 1
+ m_ReceiveShadows: 1
+ m_LightmapIndex: 255
+ m_LightmapTilingOffset: {x: 1, y: 1, z: 0, w: 0}
+ m_Materials:
+ - {fileID: 10100, guid: 0000000000000000e000000000000000, type: 0}
+ m_SubsetIndices:
+ m_StaticBatchRoot: {fileID: 0}
+ m_UseLightProbes: 0
+ m_LightProbeAnchor: {fileID: 0}
+ m_ScaleInLightmap: 1
+--- !u!102 &1403424793
+TextMesh:
+ serializedVersion: 3
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1403424790}
+ m_Text: "Mesh with\r\nPhong Tess"
+ m_OffsetZ: 0
+ m_CharacterSize: .100000001
+ m_LineSpacing: 1
+ m_Anchor: 4
+ m_Alignment: 0
+ m_TabSize: 4
+ m_FontSize: 20
+ m_FontStyle: 0
+ m_RichText: 1
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_Color:
+ serializedVersion: 2
+ rgba: 4294967295
+--- !u!1 &1418780922
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 4
+ m_Component:
+ - 4: {fileID: 1418780923}
+ - 108: {fileID: 1418780924}
+ m_Layer: 0
+ m_Name: Directional light
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1418780923
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1418780922}
+ m_LocalRotation: {x: -.139953628, y: .576685786, z: -.0999016315, w: -.798665285}
+ m_LocalPosition: {x: 6.01737118, y: 11.1735039, z: -16.877203}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+--- !u!108 &1418780924
+Light:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1418780922}
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Type: 1
+ m_Color: {r: .992693901, g: 1, b: .962686539, a: 1}
+ m_Intensity: .5
+ m_Range: 10
+ m_SpotAngle: 30
+ m_CookieSize: 10
+ m_Shadows:
+ m_Type: 0
+ m_Resolution: -1
+ m_Strength: 1
+ m_Bias: .0500000007
+ m_Softness: 4
+ m_SoftnessFade: 1
+ m_Cookie: {fileID: 0}
+ m_DrawHalo: 0
+ m_ActuallyLightmapped: 0
+ m_Flare: {fileID: 0}
+ m_RenderMode: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_Lightmapping: 1
+ m_ShadowSamples: 1
+ m_ShadowRadius: 0
+ m_ShadowAngle: 0
+ m_IndirectIntensity: 1
+ m_AreaSize: {x: 1, y: 1}
+--- !u!1 &1555874874
+GameObject:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ serializedVersion: 4
+ m_Component:
+ - 4: {fileID: 1555874875}
+ - 132: {fileID: 1555874876}
+ m_Layer: 0
+ m_Name: GUI Text
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!4 &1555874875
+Transform:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1555874874}
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+ m_LocalPosition: {x: 0, y: 1, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_Children: []
+ m_Father: {fileID: 0}
+--- !u!132 &1555874876
+GUIText:
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_GameObject: {fileID: 1555874874}
+ m_Enabled: 1
+ serializedVersion: 3
+ m_Text: DX11 GPU Tessellation Shaders
+ m_Anchor: 0
+ m_Alignment: 0
+ m_PixelOffset: {x: 0, y: 0}
+ m_LineSpacing: 1
+ m_TabSize: 4
+ m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+ m_Material: {fileID: 0}
+ m_FontSize: 20
+ m_FontStyle: 3
+ m_Color:
+ serializedVersion: 2
+ rgba: 4294967295
+ m_PixelCorrect: 1
+ m_RichText: 1
diff --git a/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Scenes/TessellationSample.unity.meta b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Scenes/TessellationSample.unity.meta
new file mode 100644
index 0000000..d2a7b77
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Scenes/TessellationSample.unity.meta
@@ -0,0 +1,5 @@
+fileFormatVersion: 2
+guid: 31f6763de0920574092c8a69a66c717e
+DefaultImporter:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Shaders.meta b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Shaders.meta
new file mode 100644
index 0000000..cc1b164
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Shaders.meta
@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: 4624d7d4686ce7a498e4c4092550416f
+folderAsset: yes
+DefaultImporter:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Shaders/BumpedSpecularDisplacement.shader b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Shaders/BumpedSpecularDisplacement.shader
new file mode 100644
index 0000000..c938ca4
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Shaders/BumpedSpecularDisplacement.shader
@@ -0,0 +1,68 @@
+Shader "Tessellation/Bumped Specular (displacement)" {
+Properties {
+ _Color ("Main Color", Color) = (1,1,1,1)
+ _SpecColor ("Specular Color", Color) = (0.5, 0.5, 0.5, 1)
+ _Shininess ("Shininess", Range (0.03, 1)) = 0.078125
+ _Parallax ("Height", Range (0.0, 1.0)) = 0.5
+ _MainTex ("Base (RGB) Gloss (A)", 2D) = "white" {}
+ _BumpMap ("Normalmap", 2D) = "bump" {}
+ _ParallaxMap ("Heightmap (A)", 2D) = "black" {}
+
+ _EdgeLength ("Edge length", Range(3,50)) = 10
+}
+SubShader {
+ Tags { "RenderType"="Opaque" }
+ LOD 800
+
+CGPROGRAM
+#pragma surface surf BlinnPhong addshadow vertex:disp tessellate:tessEdge
+#include "Tessellation.cginc"
+
+struct appdata {
+ float4 vertex : POSITION;
+ float4 tangent : TANGENT;
+ float3 normal : NORMAL;
+ float2 texcoord : TEXCOORD0;
+ float2 texcoord1 : TEXCOORD1;
+ float2 texcoord2 : TEXCOORD2;
+};
+
+float _EdgeLength;
+float _Parallax;
+
+float4 tessEdge (appdata v0, appdata v1, appdata v2)
+{
+ return UnityEdgeLengthBasedTessCull (v0.vertex, v1.vertex, v2.vertex, _EdgeLength, _Parallax * 1.5f);
+}
+
+sampler2D _ParallaxMap;
+
+void disp (inout appdata v)
+{
+ float d = tex2Dlod(_ParallaxMap, float4(v.texcoord.xy,0,0)).a * _Parallax;
+ v.vertex.xyz += v.normal * d;
+}
+
+sampler2D _MainTex;
+sampler2D _BumpMap;
+fixed4 _Color;
+half _Shininess;
+
+struct Input {
+ float2 uv_MainTex;
+ float2 uv_BumpMap;
+};
+
+void surf (Input IN, inout SurfaceOutput o) {
+ fixed4 tex = tex2D(_MainTex, IN.uv_MainTex);
+ o.Albedo = tex.rgb * _Color.rgb;
+ o.Gloss = tex.a;
+ o.Alpha = tex.a * _Color.a;
+ o.Specular = _Shininess;
+ o.Normal = UnpackNormal(tex2D(_BumpMap, IN.uv_BumpMap));
+}
+ENDCG
+}
+
+FallBack "Bumped Specular"
+}
diff --git a/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Shaders/BumpedSpecularDisplacement.shader.meta b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Shaders/BumpedSpecularDisplacement.shader.meta
new file mode 100644
index 0000000..f64b3c1
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Shaders/BumpedSpecularDisplacement.shader.meta
@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: 0a4b0bce1e250a14bb534d70bce205fa
+ShaderImporter:
+ defaultTextures: []
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Shaders/BumpedSpecularSmooth.shader b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Shaders/BumpedSpecularSmooth.shader
new file mode 100644
index 0000000..6bf3591
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Shaders/BumpedSpecularSmooth.shader
@@ -0,0 +1,64 @@
+Shader "Tessellation/Bumped Specular (smooth)" {
+Properties {
+ _Color ("Main Color", Color) = (1,1,1,1)
+ _SpecColor ("Specular Color", Color) = (0.5, 0.5, 0.5, 1)
+ _Shininess ("Shininess", Range (0.03, 1)) = 0.078125
+ _MainTex ("Base (RGB) Gloss (A)", 2D) = "white" {}
+ _BumpMap ("Normalmap", 2D) = "bump" {}
+
+ _EdgeLength ("Edge length", Range(3,50)) = 10
+ _Smoothness ("Smoothness", Range(0,1)) = 0.5
+}
+SubShader {
+ Tags { "RenderType"="Opaque" }
+ LOD 700
+
+CGPROGRAM
+#pragma surface surf BlinnPhong addshadow vertex:disp tessellate:tessEdge tessphong:_Smoothness
+#include "Tessellation.cginc"
+
+struct appdata {
+ float4 vertex : POSITION;
+ float4 tangent : TANGENT;
+ float3 normal : NORMAL;
+ float2 texcoord : TEXCOORD0;
+ float2 texcoord1 : TEXCOORD1;
+ float2 texcoord2 : TEXCOORD2;
+};
+
+float _EdgeLength;
+float _Smoothness;
+
+float4 tessEdge (appdata v0, appdata v1, appdata v2)
+{
+ return UnityEdgeLengthBasedTessCull (v0.vertex, v1.vertex, v2.vertex, _EdgeLength, 0.0);
+}
+
+void disp (inout appdata v)
+{
+ // do nothing
+}
+
+sampler2D _MainTex;
+sampler2D _BumpMap;
+fixed4 _Color;
+half _Shininess;
+
+struct Input {
+ float2 uv_MainTex;
+ float2 uv_BumpMap;
+};
+
+void surf (Input IN, inout SurfaceOutput o) {
+ fixed4 tex = tex2D(_MainTex, IN.uv_MainTex);
+ o.Albedo = tex.rgb * _Color.rgb;
+ o.Gloss = tex.a;
+ o.Alpha = tex.a * _Color.a;
+ o.Specular = _Shininess;
+ o.Normal = UnpackNormal(tex2D(_BumpMap, IN.uv_BumpMap));
+}
+ENDCG
+}
+
+FallBack "Bumped Specular"
+}
diff --git a/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Shaders/BumpedSpecularSmooth.shader.meta b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Shaders/BumpedSpecularSmooth.shader.meta
new file mode 100644
index 0000000..8cfa1bd
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Shaders/BumpedSpecularSmooth.shader.meta
@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: 3954501323f24464f9e4418c78d8e8ce
+ShaderImporter:
+ defaultTextures: []
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Textures.meta b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Textures.meta
new file mode 100644
index 0000000..36622fb
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Textures.meta
@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: 08cf2fc601fa9a2408b6a1efae3f2a01
+folderAsset: yes
+DefaultImporter:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Textures/CliffHeight.png b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Textures/CliffHeight.png
new file mode 100644
index 0000000..3ed61be
Binary files /dev/null and b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Textures/CliffHeight.png differ
diff --git a/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Textures/CliffHeight.png.meta b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Textures/CliffHeight.png.meta
new file mode 100644
index 0000000..8bb8b89
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Textures/CliffHeight.png.meta
@@ -0,0 +1,69 @@
+fileFormatVersion: 2
+guid: 17da6d53ec93a0444bd0f751b1d02477
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 1
+ generateCubemap: 0
+ cubemapConvolution: 0
+ cubemapConvolutionSteps: 8
+ cubemapConvolutionExponent: 1.5
+ seamlessCubemap: 0
+ textureFormat: 1
+ maxTextureSize: 1024
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: -1
+ nPOTScale: 1
+ lightmap: 0
+ rGBM: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: .5, y: .5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 0
+ textureType: 5
+ buildTargetSettings:
+ - buildTarget: iPhone
+ maxTextureSize: 256
+ textureFormat: 4
+ compressionQuality: 50
+ - buildTarget: Android
+ maxTextureSize: 256
+ textureFormat: 4
+ compressionQuality: 50
+ - buildTarget: BlackBerry
+ maxTextureSize: 256
+ textureFormat: -3
+ compressionQuality: 50
+ - buildTarget: WP8
+ maxTextureSize: 256
+ textureFormat: -3
+ compressionQuality: 50
+ spriteSheet:
+ sprites: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Textures/CliffNormals.png b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Textures/CliffNormals.png
new file mode 100644
index 0000000..04ec63c
Binary files /dev/null and b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Textures/CliffNormals.png differ
diff --git a/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Textures/CliffNormals.png.meta b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Textures/CliffNormals.png.meta
new file mode 100644
index 0000000..4e43eb8
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/TessellationShaders/Textures/CliffNormals.png.meta
@@ -0,0 +1,53 @@
+fileFormatVersion: 2
+guid: e08c295755c0885479ad19f518286ff2
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 1
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 1
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 1
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ cubemapConvolution: 0
+ cubemapConvolutionSteps: 8
+ cubemapConvolutionExponent: 1.5
+ seamlessCubemap: 0
+ textureFormat: -1
+ maxTextureSize: 1024
+ textureSettings:
+ filterMode: -1
+ aniso: -1
+ mipBias: -1
+ wrapMode: -1
+ nPOTScale: 1
+ lightmap: 0
+ rGBM: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: .5, y: .5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 0
+ textureType: 1
+ buildTargetSettings: []
+ spriteSheet:
+ sprites: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
+ assetBundleVariant:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ToonShading.meta b/TheCauldron/Assets/Standard Assets/Effects/ToonShading.meta
new file mode 100644
index 0000000..0377a75
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ToonShading.meta
@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: 488ccf78ce5fbe14db33f20cccd9f386
+folderAsset: yes
+DefaultImporter:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Materials.meta b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Materials.meta
new file mode 100644
index 0000000..aea70cf
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Materials.meta
@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: 280da6451a1e556438ce789a0d7e1f65
+folderAsset: yes
+DefaultImporter:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Materials/ToonBasic.mat b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Materials/ToonBasic.mat
new file mode 100644
index 0000000..a079c65
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Materials/ToonBasic.mat
@@ -0,0 +1,58 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 3
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: ToonBasic
+ m_Shader: {fileID: 4800000, guid: d84268709d11078d11005b9844295342, type: 3}
+ m_ShaderKeywords: []
+ m_CustomRenderQueue: -1
+ m_SavedProperties:
+ serializedVersion: 2
+ m_TexEnvs:
+ data:
+ first:
+ name: _MainTex
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _ToonShade
+ second:
+ m_Texture: {fileID: 8900000, guid: b995d4bd9d11078d11005b9844295342, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ data:
+ first:
+ name: _Shininess
+ second: .699999988
+ data:
+ first:
+ name: _Outline
+ second: .00701886788
+ m_Colors:
+ data:
+ first:
+ name: _Color
+ second: {r: .462686539, g: .462686539, b: .462686539, a: 1}
+ data:
+ first:
+ name: _Emission
+ second: {r: 0, g: 0, b: 0, a: 0}
+ data:
+ first:
+ name: _SpecColor
+ second: {r: 1, g: 1, b: 1, a: 1}
+ data:
+ first:
+ name: _OutlineColor
+ second: {r: 0, g: 0, b: 0, a: 1}
+--- !u!1002 &2100001
+EditorExtensionImpl:
+ serializedVersion: 6
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Materials/ToonBasic.mat.meta b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Materials/ToonBasic.mat.meta
new file mode 100644
index 0000000..7565316
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Materials/ToonBasic.mat.meta
@@ -0,0 +1,5 @@
+fileFormatVersion: 2
+guid: 84b9e1d19d11078d11005b9844295342
+NativeFormatImporter:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Materials/ToonBasicOutline.mat b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Materials/ToonBasicOutline.mat
new file mode 100644
index 0000000..d45073c
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Materials/ToonBasicOutline.mat
@@ -0,0 +1,58 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 3
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: ToonBasicOutline
+ m_Shader: {fileID: 4800000, guid: 9ce107479d11178d11005b9844295342, type: 3}
+ m_ShaderKeywords: []
+ m_CustomRenderQueue: -1
+ m_SavedProperties:
+ serializedVersion: 2
+ m_TexEnvs:
+ data:
+ first:
+ name: _MainTex
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _ToonShade
+ second:
+ m_Texture: {fileID: 8900000, guid: b995d4bd9d11078d11005b9844295342, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ data:
+ first:
+ name: _Shininess
+ second: .57971698
+ data:
+ first:
+ name: _Outline
+ second: .00659701508
+ m_Colors:
+ data:
+ first:
+ name: _Color
+ second: {r: .462686539, g: .462686539, b: .462686539, a: 1}
+ data:
+ first:
+ name: _Emission
+ second: {r: 0, g: 0, b: 0, a: 0}
+ data:
+ first:
+ name: _SpecColor
+ second: {r: 1, g: 1, b: 1, a: 1}
+ data:
+ first:
+ name: _OutlineColor
+ second: {r: 0, g: 0, b: 0, a: 1}
+--- !u!1002 &2100001
+EditorExtensionImpl:
+ serializedVersion: 6
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Materials/ToonBasicOutline.mat.meta b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Materials/ToonBasicOutline.mat.meta
new file mode 100644
index 0000000..2245486
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Materials/ToonBasicOutline.mat.meta
@@ -0,0 +1,5 @@
+fileFormatVersion: 2
+guid: 215977489d11178d11005b9844295342
+NativeFormatImporter:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Materials/ToonLit.mat b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Materials/ToonLit.mat
new file mode 100644
index 0000000..84c2369
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Materials/ToonLit.mat
@@ -0,0 +1,80 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 3
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: ToonLit
+ m_Shader: {fileID: 4800000, guid: 48dca5b99d113b8d11006bab44295342, type: 3}
+ m_ShaderKeywords: []
+ m_CustomRenderQueue: -1
+ m_SavedProperties:
+ serializedVersion: 2
+ m_TexEnvs:
+ data:
+ first:
+ name: _MainTex
+ second:
+ m_Texture: {fileID: 2800000, guid: 9ca701319d113f2d1100ff9b44295342, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _BumpMap
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _ToonShade
+ second:
+ m_Texture: {fileID: 8900000, guid: ed7fefe29d117c8d11005e4844295342, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _Ramp
+ second:
+ m_Texture: {fileID: 2800000, guid: 4a056241e2722dc46a7262a8e7073fd9, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ data:
+ first:
+ name: _Shininess
+ second: .699999988
+ data:
+ first:
+ name: _Outline
+ second: .00807547197
+ m_Colors:
+ data:
+ first:
+ name: _Color
+ second: {r: .50251013, g: .50251013, b: .50251013, a: 1}
+ data:
+ first:
+ name: _MainTex_ST
+ second: {r: 1, g: 1, b: 0, a: 0}
+ data:
+ first:
+ name: _Emission
+ second: {r: 0, g: 0, b: 0, a: 0}
+ data:
+ first:
+ name: _SpecColor
+ second: {r: 1, g: 1, b: 1, a: 1}
+ data:
+ first:
+ name: _OutlineColor
+ second: {r: 0, g: 0, b: 0, a: 1}
+ data:
+ first:
+ name: _ToonShade_ST
+ second: {r: 1, g: 1, b: 0, a: 0}
+--- !u!1002 &2100001
+EditorExtensionImpl:
+ serializedVersion: 6
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Materials/ToonLit.mat.meta b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Materials/ToonLit.mat.meta
new file mode 100644
index 0000000..d1e1513
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Materials/ToonLit.mat.meta
@@ -0,0 +1,5 @@
+fileFormatVersion: 2
+guid: c9e6294c9d11cb8d11006bf944295342
+NativeFormatImporter:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Materials/ToonLitOutline.mat b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Materials/ToonLitOutline.mat
new file mode 100644
index 0000000..e8c2c41
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Materials/ToonLitOutline.mat
@@ -0,0 +1,65 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+ serializedVersion: 3
+ m_ObjectHideFlags: 0
+ m_PrefabParentObject: {fileID: 0}
+ m_PrefabInternal: {fileID: 0}
+ m_Name: ToonLitOutline
+ m_Shader: {fileID: 4800000, guid: 054a31a99d11e49d110086ba44295342, type: 3}
+ m_ShaderKeywords: []
+ m_CustomRenderQueue: -1
+ m_SavedProperties:
+ serializedVersion: 2
+ m_TexEnvs:
+ data:
+ first:
+ name: _MainTex
+ second:
+ m_Texture: {fileID: 0}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _ToonShade
+ second:
+ m_Texture: {fileID: 8900000, guid: ed7fefe29d117c8d11005e4844295342, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ data:
+ first:
+ name: _Ramp
+ second:
+ m_Texture: {fileID: 2800000, guid: 4a056241e2722dc46a7262a8e7073fd9, type: 3}
+ m_Scale: {x: 1, y: 1}
+ m_Offset: {x: 0, y: 0}
+ m_Floats:
+ data:
+ first:
+ name: _Shininess
+ second: .699999988
+ data:
+ first:
+ name: _Outline
+ second: .00701492419
+ m_Colors:
+ data:
+ first:
+ name: _Color
+ second: {r: .50251013, g: .50251013, b: .50251013, a: 1}
+ data:
+ first:
+ name: _Emission
+ second: {r: 0, g: 0, b: 0, a: 0}
+ data:
+ first:
+ name: _SpecColor
+ second: {r: 1, g: 1, b: 1, a: 1}
+ data:
+ first:
+ name: _OutlineColor
+ second: {r: 0, g: 0, b: 0, a: 1}
+--- !u!1002 &2100001
+EditorExtensionImpl:
+ serializedVersion: 6
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Materials/ToonLitOutline.mat.meta b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Materials/ToonLitOutline.mat.meta
new file mode 100644
index 0000000..c711bf0
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Materials/ToonLitOutline.mat.meta
@@ -0,0 +1,5 @@
+fileFormatVersion: 2
+guid: 5d69df9d9d11e49d110086ba44295342
+NativeFormatImporter:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Shaders.meta b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Shaders.meta
new file mode 100644
index 0000000..4d2b87a
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Shaders.meta
@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: adec466a1f9044ea78471a5ce6f78271
+folderAsset: yes
+DefaultImporter:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Shaders/ToonBasic.shader b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Shaders/ToonBasic.shader
new file mode 100644
index 0000000..63f0b37
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Shaders/ToonBasic.shader
@@ -0,0 +1,63 @@
+Shader "Toon/Basic" {
+ Properties {
+ _Color ("Main Color", Color) = (.5,.5,.5,1)
+ _MainTex ("Base (RGB)", 2D) = "white" {}
+ _ToonShade ("ToonShader Cubemap(RGB)", CUBE) = "" { }
+ }
+
+
+ SubShader {
+ Tags { "RenderType"="Opaque" }
+ Pass {
+ Name "BASE"
+ Cull Off
+
+ CGPROGRAM
+ #pragma vertex vert
+ #pragma fragment frag
+ #pragma multi_compile_fog
+
+ #include "UnityCG.cginc"
+
+ sampler2D _MainTex;
+ samplerCUBE _ToonShade;
+ float4 _MainTex_ST;
+ float4 _Color;
+
+ struct appdata {
+ float4 vertex : POSITION;
+ float2 texcoord : TEXCOORD0;
+ float3 normal : NORMAL;
+ };
+
+ struct v2f {
+ float4 pos : SV_POSITION;
+ float2 texcoord : TEXCOORD0;
+ float3 cubenormal : TEXCOORD1;
+ UNITY_FOG_COORDS(2)
+ };
+
+ v2f vert (appdata v)
+ {
+ v2f o;
+ o.pos = mul (UNITY_MATRIX_MVP, v.vertex);
+ o.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex);
+ o.cubenormal = mul (UNITY_MATRIX_MV, float4(v.normal,0));
+ UNITY_TRANSFER_FOG(o,o.pos);
+ return o;
+ }
+
+ fixed4 frag (v2f i) : SV_Target
+ {
+ fixed4 col = _Color * tex2D(_MainTex, i.texcoord);
+ fixed4 cube = texCUBE(_ToonShade, i.cubenormal);
+ fixed4 c = fixed4(2.0f * cube.rgb * col.rgb, col.a);
+ UNITY_APPLY_FOG(i.fogCoord, c);
+ return c;
+ }
+ ENDCG
+ }
+ }
+
+ Fallback "VertexLit"
+}
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Shaders/ToonBasic.shader.meta b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Shaders/ToonBasic.shader.meta
new file mode 100644
index 0000000..a144389
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Shaders/ToonBasic.shader.meta
@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: d84268709d11078d11005b9844295342
+ShaderImporter:
+ defaultTextures: []
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Shaders/ToonBasicOutline.shader b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Shaders/ToonBasicOutline.shader
new file mode 100644
index 0000000..5fff5bf
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Shaders/ToonBasicOutline.shader
@@ -0,0 +1,66 @@
+Shader "Toon/Basic Outline" {
+ Properties {
+ _Color ("Main Color", Color) = (.5,.5,.5,1)
+ _OutlineColor ("Outline Color", Color) = (0,0,0,1)
+ _Outline ("Outline width", Range (.002, 0.03)) = .005
+ _MainTex ("Base (RGB)", 2D) = "white" { }
+ _ToonShade ("ToonShader Cubemap(RGB)", CUBE) = "" { }
+ }
+
+ CGINCLUDE
+ #include "UnityCG.cginc"
+
+ struct appdata {
+ float4 vertex : POSITION;
+ float3 normal : NORMAL;
+ };
+
+ struct v2f {
+ float4 pos : SV_POSITION;
+ UNITY_FOG_COORDS(0)
+ fixed4 color : COLOR;
+ };
+
+ uniform float _Outline;
+ uniform float4 _OutlineColor;
+
+ v2f vert(appdata v) {
+ v2f o;
+ o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
+
+ float3 norm = normalize(mul ((float3x3)UNITY_MATRIX_IT_MV, v.normal));
+ float2 offset = TransformViewToProjection(norm.xy);
+
+ o.pos.xy += offset * o.pos.z * _Outline;
+ o.color = _OutlineColor;
+ UNITY_TRANSFER_FOG(o,o.pos);
+ return o;
+ }
+ ENDCG
+
+ SubShader {
+ Tags { "RenderType"="Opaque" }
+ UsePass "Toon/Basic/BASE"
+ Pass {
+ Name "OUTLINE"
+ Tags { "LightMode" = "Always" }
+ Cull Front
+ ZWrite On
+ ColorMask RGB
+ Blend SrcAlpha OneMinusSrcAlpha
+
+ CGPROGRAM
+ #pragma vertex vert
+ #pragma fragment frag
+ #pragma multi_compile_fog
+ fixed4 frag(v2f i) : SV_Target
+ {
+ UNITY_APPLY_FOG(i.fogCoord, i.color);
+ return i.color;
+ }
+ ENDCG
+ }
+ }
+
+ Fallback "Toon/Basic"
+}
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Shaders/ToonBasicOutline.shader.meta b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Shaders/ToonBasicOutline.shader.meta
new file mode 100644
index 0000000..7e1c493
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Shaders/ToonBasicOutline.shader.meta
@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: 9ce107479d11178d11005b9844295342
+ShaderImporter:
+ defaultTextures: []
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Shaders/ToonLit.shader b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Shaders/ToonLit.shader
new file mode 100644
index 0000000..254b7ec
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Shaders/ToonLit.shader
@@ -0,0 +1,53 @@
+Shader "Toon/Lit" {
+ Properties {
+ _Color ("Main Color", Color) = (0.5,0.5,0.5,1)
+ _MainTex ("Base (RGB)", 2D) = "white" {}
+ _Ramp ("Toon Ramp (RGB)", 2D) = "gray" {}
+ }
+
+ SubShader {
+ Tags { "RenderType"="Opaque" }
+ LOD 200
+
+CGPROGRAM
+#pragma surface surf ToonRamp
+
+sampler2D _Ramp;
+
+// custom lighting function that uses a texture ramp based
+// on angle between light direction and normal
+#pragma lighting ToonRamp exclude_path:prepass
+inline half4 LightingToonRamp (SurfaceOutput s, half3 lightDir, half atten)
+{
+ #ifndef USING_DIRECTIONAL_LIGHT
+ lightDir = normalize(lightDir);
+ #endif
+
+ half d = dot (s.Normal, lightDir)*0.5 + 0.5;
+ half3 ramp = tex2D (_Ramp, float2(d,d)).rgb;
+
+ half4 c;
+ c.rgb = s.Albedo * _LightColor0.rgb * ramp * (atten * 2);
+ c.a = 0;
+ return c;
+}
+
+
+sampler2D _MainTex;
+float4 _Color;
+
+struct Input {
+ float2 uv_MainTex : TEXCOORD0;
+};
+
+void surf (Input IN, inout SurfaceOutput o) {
+ half4 c = tex2D(_MainTex, IN.uv_MainTex) * _Color;
+ o.Albedo = c.rgb;
+ o.Alpha = c.a;
+}
+ENDCG
+
+ }
+
+ Fallback "Diffuse"
+}
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Shaders/ToonLit.shader.meta b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Shaders/ToonLit.shader.meta
new file mode 100644
index 0000000..771203c
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Shaders/ToonLit.shader.meta
@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: 48dca5b99d113b8d11006bab44295342
+ShaderImporter:
+ defaultTextures: []
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Shaders/ToonLitOutline.shader b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Shaders/ToonLitOutline.shader
new file mode 100644
index 0000000..817c0ce
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Shaders/ToonLitOutline.shader
@@ -0,0 +1,17 @@
+Shader "Toon/Lit Outline" {
+ Properties {
+ _Color ("Main Color", Color) = (0.5,0.5,0.5,1)
+ _OutlineColor ("Outline Color", Color) = (0,0,0,1)
+ _Outline ("Outline width", Range (.002, 0.03)) = .005
+ _MainTex ("Base (RGB)", 2D) = "white" {}
+ _Ramp ("Toon Ramp (RGB)", 2D) = "gray" {}
+ }
+
+ SubShader {
+ Tags { "RenderType"="Opaque" }
+ UsePass "Toon/Lit/FORWARD"
+ UsePass "Toon/Basic Outline/OUTLINE"
+ }
+
+ Fallback "Toon/Lit"
+}
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Shaders/ToonLitOutline.shader.meta b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Shaders/ToonLitOutline.shader.meta
new file mode 100644
index 0000000..329c53b
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Shaders/ToonLitOutline.shader.meta
@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: 054a31a99d11e49d110086ba44295342
+ShaderImporter:
+ defaultTextures: []
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Textures.meta b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Textures.meta
new file mode 100644
index 0000000..6555d84
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Textures.meta
@@ -0,0 +1,6 @@
+fileFormatVersion: 2
+guid: 651770f8be26443fdb85aa3594fa349c
+folderAsset: yes
+DefaultImporter:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Textures/ToonLit.psd b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Textures/ToonLit.psd
new file mode 100644
index 0000000..5208374
Binary files /dev/null and b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Textures/ToonLit.psd differ
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Textures/ToonLit.psd.meta b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Textures/ToonLit.psd.meta
new file mode 100644
index 0000000..6073900
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Textures/ToonLit.psd.meta
@@ -0,0 +1,53 @@
+fileFormatVersion: 2
+guid: b995d4bd9d11078d11005b9844295342
+TextureImporter:
+ fileIDToRecycleName:
+ 8900000: generatedCubemap
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 1
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 2
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 1
+ cubemapConvolution: 0
+ cubemapConvolutionSteps: 8
+ cubemapConvolutionExponent: 1.5
+ seamlessCubemap: 0
+ textureFormat: 3
+ maxTextureSize: 512
+ textureSettings:
+ filterMode: 1
+ aniso: 1
+ mipBias: 0
+ wrapMode: 0
+ nPOTScale: 0
+ lightmap: 0
+ rGBM: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: .5, y: .5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 0
+ textureType: -1
+ buildTargetSettings: []
+ spriteSheet:
+ sprites: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Textures/UtilToonGradient.png b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Textures/UtilToonGradient.png
new file mode 100644
index 0000000..7ce1e8e
Binary files /dev/null and b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Textures/UtilToonGradient.png differ
diff --git a/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Textures/UtilToonGradient.png.meta b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Textures/UtilToonGradient.png.meta
new file mode 100644
index 0000000..c9b7612
--- /dev/null
+++ b/TheCauldron/Assets/Standard Assets/Effects/ToonShading/Textures/UtilToonGradient.png.meta
@@ -0,0 +1,52 @@
+fileFormatVersion: 2
+guid: 4a056241e2722dc46a7262a8e7073fd9
+TextureImporter:
+ fileIDToRecycleName: {}
+ serializedVersion: 2
+ mipmaps:
+ mipMapMode: 0
+ enableMipMap: 0
+ linearTexture: 0
+ correctGamma: 0
+ fadeOut: 0
+ borderMipMap: 0
+ mipMapFadeDistanceStart: 2
+ mipMapFadeDistanceEnd: 3
+ bumpmap:
+ convertToNormalMap: 0
+ externalNormalMap: 0
+ heightScale: .25
+ normalMapFilter: 0
+ isReadable: 0
+ grayScaleToAlpha: 0
+ generateCubemap: 0
+ cubemapConvolution: 0
+ cubemapConvolutionSteps: 8
+ cubemapConvolutionExponent: 1.5
+ seamlessCubemap: 0
+ textureFormat: 5
+ maxTextureSize: 1024
+ textureSettings:
+ filterMode: 0
+ aniso: 1
+ mipBias: 0
+ wrapMode: 1
+ nPOTScale: 0
+ lightmap: 0
+ rGBM: 0
+ compressionQuality: 50
+ spriteMode: 0
+ spriteExtrude: 1
+ spriteMeshType: 1
+ alignment: 0
+ spritePivot: {x: .5, y: .5}
+ spriteBorder: {x: 0, y: 0, z: 0, w: 0}
+ spritePixelsToUnits: 100
+ alphaIsTransparency: 0
+ textureType: 5
+ buildTargetSettings: []
+ spriteSheet:
+ sprites: []
+ spritePackingTag:
+ userData:
+ assetBundleName:
diff --git a/TheCauldron/Assets/Textures/splash-16by9.png.meta b/TheCauldron/Assets/Textures/splash-16by9.png.meta
index 1ea556b..10eb697 100644
--- a/TheCauldron/Assets/Textures/splash-16by9.png.meta
+++ b/TheCauldron/Assets/Textures/splash-16by9.png.meta
@@ -7,8 +7,8 @@ TextureImporter:
serializedVersion: 2
mipmaps:
mipMapMode: 0
- enableMipMap: 1
- linearTexture: 0
+ enableMipMap: 0
+ linearTexture: 1
correctGamma: 0
fadeOut: 0
borderMipMap: 0
@@ -30,10 +30,10 @@ TextureImporter:
maxTextureSize: 2048
textureSettings:
filterMode: -1
- aniso: -1
+ aniso: 1
mipBias: -1
- wrapMode: -1
- nPOTScale: 1
+ wrapMode: 1
+ nPOTScale: 0
lightmap: 0
rGBM: 0
compressionQuality: 50
@@ -45,8 +45,8 @@ TextureImporter:
spritePivot: {x: 0.5, y: 0.5}
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spritePixelsToUnits: 100
- alphaIsTransparency: 0
- textureType: -1
+ alphaIsTransparency: 1
+ textureType: 2
buildTargetSettings: []
spriteSheet:
sprites: []
diff --git a/TheCauldron/ProjectSettings/GraphicsSettings.asset b/TheCauldron/ProjectSettings/GraphicsSettings.asset
index 5a96ca8..794c061 100644
--- a/TheCauldron/ProjectSettings/GraphicsSettings.asset
+++ b/TheCauldron/ProjectSettings/GraphicsSettings.asset
@@ -22,7 +22,7 @@ GraphicsSettings:
- {fileID: 10782, guid: 0000000000000000f000000000000000, type: 0}
m_PreloadedShaders: []
m_ShaderSettings:
- useScreenSpaceShadows: 1
+ useScreenSpaceShadows: 0
m_BuildTargetShaderSettings: []
m_LightmapStripping: 0
m_FogStripping: 0
diff --git a/TheCauldron/ProjectSettings/ProjectSettings.asset b/TheCauldron/ProjectSettings/ProjectSettings.asset
index 8f60aeb..ca4c68b 100644
--- a/TheCauldron/ProjectSettings/ProjectSettings.asset
+++ b/TheCauldron/ProjectSettings/ProjectSettings.asset
@@ -158,8 +158,8 @@ PlayerSettings:
AndroidTargetDevice: 0
AndroidSplashScreenScale: 0
androidSplashScreen: {fileID: 0}
- AndroidKeystoreName:
- AndroidKeyaliasName:
+ AndroidKeystoreName: Builds/AndroidKeystore/android-keystore.keystore
+ AndroidKeyaliasName: release key
AndroidTVCompatibility: 1
AndroidIsGame: 1
androidEnableBanner: 1
@@ -177,6 +177,66 @@ PlayerSettings:
m_Icon: {fileID: 0}
m_Width: 128
m_Height: 128
+ - m_BuildTarget: iPhone
+ m_Icons:
+ - serializedVersion: 2
+ m_Icon: {fileID: 2800000, guid: f448b253f343f46bc94edf8ea8ca00b1, type: 3}
+ m_Width: 180
+ m_Height: 180
+ - serializedVersion: 2
+ m_Icon: {fileID: 2800000, guid: 57a5539452f4e4237889d7c61384825c, type: 3}
+ m_Width: 152
+ m_Height: 152
+ - serializedVersion: 2
+ m_Icon: {fileID: 2800000, guid: 0a8cddae0994b4b798fcc8602bdfc167, type: 3}
+ m_Width: 144
+ m_Height: 144
+ - serializedVersion: 2
+ m_Icon: {fileID: 2800000, guid: ddc3970781c1449628631b2a40276c8f, type: 3}
+ m_Width: 120
+ m_Height: 120
+ - serializedVersion: 2
+ m_Icon: {fileID: 2800000, guid: c03141e3c4a094cc8abead2fb8a8a61a, type: 3}
+ m_Width: 114
+ m_Height: 114
+ - serializedVersion: 2
+ m_Icon: {fileID: 2800000, guid: b8b8c8194ba644416a558e8e70d734f6, type: 3}
+ m_Width: 76
+ m_Height: 76
+ - serializedVersion: 2
+ m_Icon: {fileID: 2800000, guid: 249e9fe8ee48c4fbca75115ef3d751ec, type: 3}
+ m_Width: 72
+ m_Height: 72
+ - serializedVersion: 2
+ m_Icon: {fileID: 2800000, guid: 3c270e2ffd71247a4ad5ce5505cdf8a4, type: 3}
+ m_Width: 57
+ m_Height: 57
+ - m_BuildTarget: Android
+ m_Icons:
+ - serializedVersion: 2
+ m_Icon: {fileID: 2800000, guid: 42f518fbe137444dca22cea159fcc26b, type: 3}
+ m_Width: 192
+ m_Height: 192
+ - serializedVersion: 2
+ m_Icon: {fileID: 2800000, guid: cb38047769009436db46d2488e7228bc, type: 3}
+ m_Width: 144
+ m_Height: 144
+ - serializedVersion: 2
+ m_Icon: {fileID: 2800000, guid: a264960a5caa643f681252f69311c6aa, type: 3}
+ m_Width: 96
+ m_Height: 96
+ - serializedVersion: 2
+ m_Icon: {fileID: 2800000, guid: 72d1f9c6a4c694dd1a2bbf93201dadb4, type: 3}
+ m_Width: 72
+ m_Height: 72
+ - serializedVersion: 2
+ m_Icon: {fileID: 2800000, guid: 4b19af496a2a84ea5ab945ef52f8e4c9, type: 3}
+ m_Width: 48
+ m_Height: 48
+ - serializedVersion: 2
+ m_Icon: {fileID: 2800000, guid: 72d1f9c6a4c694dd1a2bbf93201dadb4, type: 3}
+ m_Width: 36
+ m_Height: 36
m_BuildTargetBatching: []
m_BuildTargetGraphicsAPIs: []
webPlayerTemplate: APPLICATION:Default
diff --git a/TheCauldron/ProjectSettings/ProjectVersion.txt b/TheCauldron/ProjectSettings/ProjectVersion.txt
index 961ebb9..bb60c06 100644
--- a/TheCauldron/ProjectSettings/ProjectVersion.txt
+++ b/TheCauldron/ProjectSettings/ProjectVersion.txt
@@ -1,2 +1,2 @@
-m_EditorVersion: 5.3.1f1
+m_EditorVersion: 5.3.2f1
m_StandardAssetsVersion: 0
diff --git a/TheCauldron/ProjectSettings/TagManager.asset b/TheCauldron/ProjectSettings/TagManager.asset
index b299407..54f16c2 100644
--- a/TheCauldron/ProjectSettings/TagManager.asset
+++ b/TheCauldron/ProjectSettings/TagManager.asset
@@ -8,6 +8,7 @@ TagManager:
- IngredientHit
- Enemy
- Floor
+ - Table
layers:
- Default
- TransparentFX
diff --git a/TheCauldron/TheCauldron.CSharp.Editor.csproj b/TheCauldron/TheCauldron.CSharp.Editor.csproj
index 6e38aa2..878ee88 100644
--- a/TheCauldron/TheCauldron.CSharp.Editor.csproj
+++ b/TheCauldron/TheCauldron.CSharp.Editor.csproj
@@ -16,8 +16,9 @@
Editor:5
StandaloneWindows:5
- 5.3.1f1
+ 5.3.2f1
+ 4
pdbonly
@@ -26,7 +27,7 @@
Temp\UnityVS_obj\Debug\
prompt
4
- DEBUG;TRACE;UNITY_5_3_1;UNITY_5_3;UNITY_5;ENABLE_NEW_BUGREPORTER;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_FRAME_DEBUGGER;ENABLE_GENERICS;ENABLE_HOME_SCREEN;ENABLE_IMAGEEFFECTS;ENABLE_LIGHT_PROBES_LEGACY;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_PLUGIN_INSPECTOR;ENABLE_SHADOWS;ENABLE_SINGLE_INSTANCE_BUILD_SETTING;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_SPRITE_POLYGON;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;INCLUDE_IL2CPP;INCLUDE_DIRECTX12;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_LOCALIZATION;ENABLE_ANDROID_ATLAS_ETC1_COMPRESSION;ENABLE_EDITOR_TESTS_RUNNER;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_TEXTUREID_MAP;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_LOG_MIXED_STACKTRACE;ENABLE_UNITYWEBREQUEST;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN
+ DEBUG;TRACE;UNITY_5_3_2;UNITY_5_3;UNITY_5;ENABLE_NEW_BUGREPORTER;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_FRAME_DEBUGGER;ENABLE_GENERICS;ENABLE_HOME_SCREEN;ENABLE_IMAGEEFFECTS;ENABLE_LIGHT_PROBES_LEGACY;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_PLUGIN_INSPECTOR;ENABLE_SHADOWS;ENABLE_SINGLE_INSTANCE_BUILD_SETTING;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_SPRITE_POLYGON;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;INCLUDE_IL2CPP;INCLUDE_DIRECTX12;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_LOCALIZATION;ENABLE_ANDROID_ATLAS_ETC1_COMPRESSION;ENABLE_EDITOR_TESTS_RUNNER;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_TEXTUREID_MAP;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_LOG_MIXED_STACKTRACE;ENABLE_UNITYWEBREQUEST;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;UNITY_TEAM_LICENSE;UNITY_PRO_LICENSE
false
@@ -36,7 +37,7 @@
Temp\UnityVS_obj\Release\
prompt
4
- TRACE;UNITY_5_3_1;UNITY_5_3;UNITY_5;ENABLE_NEW_BUGREPORTER;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_FRAME_DEBUGGER;ENABLE_GENERICS;ENABLE_HOME_SCREEN;ENABLE_IMAGEEFFECTS;ENABLE_LIGHT_PROBES_LEGACY;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_PLUGIN_INSPECTOR;ENABLE_SHADOWS;ENABLE_SINGLE_INSTANCE_BUILD_SETTING;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_SPRITE_POLYGON;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;INCLUDE_IL2CPP;INCLUDE_DIRECTX12;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_LOCALIZATION;ENABLE_ANDROID_ATLAS_ETC1_COMPRESSION;ENABLE_EDITOR_TESTS_RUNNER;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_TEXTUREID_MAP;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_LOG_MIXED_STACKTRACE;ENABLE_UNITYWEBREQUEST;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN
+ TRACE;UNITY_5_3_2;UNITY_5_3;UNITY_5;ENABLE_NEW_BUGREPORTER;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_FRAME_DEBUGGER;ENABLE_GENERICS;ENABLE_HOME_SCREEN;ENABLE_IMAGEEFFECTS;ENABLE_LIGHT_PROBES_LEGACY;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_PLUGIN_INSPECTOR;ENABLE_SHADOWS;ENABLE_SINGLE_INSTANCE_BUILD_SETTING;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_SPRITE_POLYGON;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;INCLUDE_IL2CPP;INCLUDE_DIRECTX12;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_LOCALIZATION;ENABLE_ANDROID_ATLAS_ETC1_COMPRESSION;ENABLE_EDITOR_TESTS_RUNNER;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_TEXTUREID_MAP;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_LOG_MIXED_STACKTRACE;ENABLE_UNITYWEBREQUEST;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;UNITY_TEAM_LICENSE;UNITY_PRO_LICENSE
false
@@ -87,38 +88,46 @@
Library\UnityAssemblies\SyntaxTree.VisualStudio.Unity.Bridge.dll
-
- Library\UnityAssemblies\UnityEditor.EditorTestsRunner.dll
-
-
- Library\UnityAssemblies\UnityEditor.Networking.dll
-
-
- Library\UnityAssemblies\nunit.framework.dll
+
+ Assets\AmplifyColor\Plugins\AmplifyColor.dll
-
- Library\UnityAssemblies\UnityEditor.UI.dll
-
-
- Library\UnityAssemblies\UnityEngine.Networking.dll
-
-
- Library\UnityAssemblies\UnityEditor.Advertisements.dll
-
-
- Library\UnityAssemblies\UnityEditor.TreeEditor.dll
-
-
- Library\UnityAssemblies\UnityEngine.UI.dll
+
+ Assets\AmplifyColor\Plugins\Editor\AmplifyColorEditor.dll
+
+ {97DE45A9-3504-31E4-67CF-BC7FE160E128}
+ TheCauldron.CSharp.Plugins
+
{800AC390-6BD0-DAFA-3541-B9FC22CE9714}
TheCauldron.CSharp
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -126,10 +135,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -145,6 +181,82 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/TheCauldron/TheCauldron.CSharp.Plugins.csproj b/TheCauldron/TheCauldron.CSharp.Plugins.csproj
new file mode 100644
index 0000000..11cb8ab
--- /dev/null
+++ b/TheCauldron/TheCauldron.CSharp.Plugins.csproj
@@ -0,0 +1,215 @@
+
+
+
+ Debug
+ AnyCPU
+ 10.0.20506
+ 2.0
+ {97DE45A9-3504-31E4-67CF-BC7FE160E128}
+ Library
+ Assembly-CSharp-firstpass
+ 512
+ {E097FAD1-6243-4DAD-9C02-E9B9EFC3FFC1};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
+ .NETFramework
+ v3.5
+ Unity Subset v3.5
+
+ GamePlugins:3
+ StandaloneWindows:5
+ 5.3.2f1
+
+ 4
+
+
+ pdbonly
+ false
+ Temp\UnityVS_bin\Debug\
+ Temp\UnityVS_obj\Debug\
+ prompt
+ 4
+ DEBUG;TRACE;UNITY_5_3_2;UNITY_5_3;UNITY_5;ENABLE_NEW_BUGREPORTER;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_FRAME_DEBUGGER;ENABLE_GENERICS;ENABLE_HOME_SCREEN;ENABLE_IMAGEEFFECTS;ENABLE_LIGHT_PROBES_LEGACY;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_PLUGIN_INSPECTOR;ENABLE_SHADOWS;ENABLE_SINGLE_INSTANCE_BUILD_SETTING;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_SPRITE_POLYGON;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;INCLUDE_IL2CPP;INCLUDE_DIRECTX12;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_LOCALIZATION;ENABLE_ANDROID_ATLAS_ETC1_COMPRESSION;ENABLE_EDITOR_TESTS_RUNNER;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_TEXTUREID_MAP;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_LOG_MIXED_STACKTRACE;ENABLE_UNITYWEBREQUEST;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;UNITY_TEAM_LICENSE;UNITY_PRO_LICENSE
+ false
+
+
+ pdbonly
+ false
+ Temp\UnityVS_bin\Release\
+ Temp\UnityVS_obj\Release\
+ prompt
+ 4
+ TRACE;UNITY_5_3_2;UNITY_5_3;UNITY_5;ENABLE_NEW_BUGREPORTER;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_FRAME_DEBUGGER;ENABLE_GENERICS;ENABLE_HOME_SCREEN;ENABLE_IMAGEEFFECTS;ENABLE_LIGHT_PROBES_LEGACY;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_PLUGIN_INSPECTOR;ENABLE_SHADOWS;ENABLE_SINGLE_INSTANCE_BUILD_SETTING;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_SPRITE_POLYGON;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;INCLUDE_IL2CPP;INCLUDE_DIRECTX12;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_LOCALIZATION;ENABLE_ANDROID_ATLAS_ETC1_COMPRESSION;ENABLE_EDITOR_TESTS_RUNNER;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_TEXTUREID_MAP;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_LOG_MIXED_STACKTRACE;ENABLE_UNITYWEBREQUEST;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;UNITY_TEAM_LICENSE;UNITY_PRO_LICENSE
+ false
+
+
+
+
+
+
+
+
+
+
+
+ Library\UnityAssemblies\UnityEngine.dll
+
+
+ Library\UnityAssemblies\UnityEngine.UI.dll
+
+
+ Library\UnityAssemblies\UnityEngine.Networking.dll
+
+
+ Library\UnityAssemblies\UnityEditor.dll
+
+
+ Assets\AmplifyColor\Plugins\AmplifyColor.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/TheCauldron/TheCauldron.CSharp.csproj b/TheCauldron/TheCauldron.CSharp.csproj
index 3533fb7..7196188 100644
--- a/TheCauldron/TheCauldron.CSharp.csproj
+++ b/TheCauldron/TheCauldron.CSharp.csproj
@@ -16,8 +16,9 @@
Game:1
StandaloneWindows:5
- 5.3.1f1
+ 5.3.2f1
+ 4
pdbonly
@@ -26,7 +27,7 @@
Temp\UnityVS_obj\Debug\
prompt
4
- DEBUG;TRACE;UNITY_5_3_1;UNITY_5_3;UNITY_5;ENABLE_NEW_BUGREPORTER;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_FRAME_DEBUGGER;ENABLE_GENERICS;ENABLE_HOME_SCREEN;ENABLE_IMAGEEFFECTS;ENABLE_LIGHT_PROBES_LEGACY;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_PLUGIN_INSPECTOR;ENABLE_SHADOWS;ENABLE_SINGLE_INSTANCE_BUILD_SETTING;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_SPRITE_POLYGON;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;INCLUDE_IL2CPP;INCLUDE_DIRECTX12;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_LOCALIZATION;ENABLE_ANDROID_ATLAS_ETC1_COMPRESSION;ENABLE_EDITOR_TESTS_RUNNER;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_TEXTUREID_MAP;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_LOG_MIXED_STACKTRACE;ENABLE_UNITYWEBREQUEST;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN
+ DEBUG;TRACE;UNITY_5_3_2;UNITY_5_3;UNITY_5;ENABLE_NEW_BUGREPORTER;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_FRAME_DEBUGGER;ENABLE_GENERICS;ENABLE_HOME_SCREEN;ENABLE_IMAGEEFFECTS;ENABLE_LIGHT_PROBES_LEGACY;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_PLUGIN_INSPECTOR;ENABLE_SHADOWS;ENABLE_SINGLE_INSTANCE_BUILD_SETTING;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_SPRITE_POLYGON;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;INCLUDE_IL2CPP;INCLUDE_DIRECTX12;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_LOCALIZATION;ENABLE_ANDROID_ATLAS_ETC1_COMPRESSION;ENABLE_EDITOR_TESTS_RUNNER;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_TEXTUREID_MAP;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_LOG_MIXED_STACKTRACE;ENABLE_UNITYWEBREQUEST;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;UNITY_TEAM_LICENSE;UNITY_PRO_LICENSE
false
@@ -36,7 +37,7 @@
Temp\UnityVS_obj\Release\
prompt
4
- TRACE;UNITY_5_3_1;UNITY_5_3;UNITY_5;ENABLE_NEW_BUGREPORTER;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_FRAME_DEBUGGER;ENABLE_GENERICS;ENABLE_HOME_SCREEN;ENABLE_IMAGEEFFECTS;ENABLE_LIGHT_PROBES_LEGACY;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_PLUGIN_INSPECTOR;ENABLE_SHADOWS;ENABLE_SINGLE_INSTANCE_BUILD_SETTING;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_SPRITE_POLYGON;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;INCLUDE_IL2CPP;INCLUDE_DIRECTX12;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_LOCALIZATION;ENABLE_ANDROID_ATLAS_ETC1_COMPRESSION;ENABLE_EDITOR_TESTS_RUNNER;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_TEXTUREID_MAP;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_LOG_MIXED_STACKTRACE;ENABLE_UNITYWEBREQUEST;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN
+ TRACE;UNITY_5_3_2;UNITY_5_3;UNITY_5;ENABLE_NEW_BUGREPORTER;ENABLE_AUDIO;ENABLE_CACHING;ENABLE_CLOTH;ENABLE_DUCK_TYPING;ENABLE_FRAME_DEBUGGER;ENABLE_GENERICS;ENABLE_HOME_SCREEN;ENABLE_IMAGEEFFECTS;ENABLE_LIGHT_PROBES_LEGACY;ENABLE_MICROPHONE;ENABLE_MULTIPLE_DISPLAYS;ENABLE_PHYSICS;ENABLE_PLUGIN_INSPECTOR;ENABLE_SHADOWS;ENABLE_SINGLE_INSTANCE_BUILD_SETTING;ENABLE_SPRITERENDERER_FLIPPING;ENABLE_SPRITES;ENABLE_SPRITE_POLYGON;ENABLE_TERRAIN;ENABLE_RAKNET;ENABLE_UNET;ENABLE_UNITYEVENTS;ENABLE_VR;ENABLE_WEBCAM;ENABLE_WWW;ENABLE_CLOUD_SERVICES;ENABLE_CLOUD_SERVICES_ADS;ENABLE_CLOUD_HUB;ENABLE_CLOUD_PROJECT_ID;ENABLE_CLOUD_SERVICES_PURCHASING;ENABLE_CLOUD_SERVICES_ANALYTICS;ENABLE_CLOUD_SERVICES_UNET;ENABLE_CLOUD_SERVICES_BUILD;ENABLE_CLOUD_LICENSE;ENABLE_EDITOR_METRICS;ENABLE_EDITOR_METRICS_CACHING;INCLUDE_DYNAMIC_GI;INCLUDE_GI;INCLUDE_IL2CPP;INCLUDE_DIRECTX12;PLATFORM_SUPPORTS_MONO;RENDER_SOFTWARE_CURSOR;ENABLE_LOCALIZATION;ENABLE_ANDROID_ATLAS_ETC1_COMPRESSION;ENABLE_EDITOR_TESTS_RUNNER;UNITY_STANDALONE_WIN;UNITY_STANDALONE;ENABLE_SUBSTANCE;ENABLE_TEXTUREID_MAP;ENABLE_RUNTIME_GI;ENABLE_MOVIES;ENABLE_NETWORK;ENABLE_CRUNCH_TEXTURE_COMPRESSION;ENABLE_LOG_MIXED_STACKTRACE;ENABLE_UNITYWEBREQUEST;ENABLE_EVENT_QUEUE;ENABLE_CLUSTERINPUT;ENABLE_WEBSOCKET_HOST;ENABLE_MONO;ENABLE_PROFILER;DEBUG;TRACE;UNITY_ASSERTIONS;UNITY_EDITOR;UNITY_EDITOR_64;UNITY_EDITOR_WIN;UNITY_TEAM_LICENSE;UNITY_PRO_LICENSE
false
@@ -57,17 +58,31 @@
Library\UnityAssemblies\UnityEngine.Networking.dll
-
- Library\UnityAssemblies\UnityEngine.Networking.dll
-
-
- Library\UnityAssemblies\UnityEngine.UI.dll
-
Library\UnityAssemblies\UnityEditor.dll
+
+ Assets\AmplifyColor\Plugins\AmplifyColor.dll
+
+
+
+
+ {97DE45A9-3504-31E4-67CF-BC7FE160E128}
+ TheCauldron.CSharp.Plugins
+
+
+
+
+
+
+
+
+
+
+
+
@@ -139,11 +154,25 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -159,6 +188,82 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/TheCauldron/TheCauldron.sln b/TheCauldron/TheCauldron.sln
index f7105dd..c0b9bb5 100644
--- a/TheCauldron/TheCauldron.sln
+++ b/TheCauldron/TheCauldron.sln
@@ -1,6 +1,8 @@
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2008
+Project("{81254978-4730-BC82-2904-3F4932C0DB70}") = "TheCauldron", "Assembly-CSharp-firstpass.csproj", "{12F8B266-CCBD-8AC2-01D4-3820EDE4347E}"
+EndProject
Project("{81254978-4730-BC82-2904-3F4932C0DB70}") = "TheCauldron", "Assembly-CSharp.csproj", "{C8BE2B5A-A1A7-FEA1-7152-C2165E8E6A60}"
EndProject
Project("{81254978-4730-BC82-2904-3F4932C0DB70}") = "TheCauldron", "Assembly-CSharp-Editor.csproj", "{F86FF58E-06E4-EE68-4EF5-4525C0275E87}"
@@ -11,6 +13,10 @@ Global
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
+ {12F8B266-CCBD-8AC2-01D4-3820EDE4347E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {12F8B266-CCBD-8AC2-01D4-3820EDE4347E}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {12F8B266-CCBD-8AC2-01D4-3820EDE4347E}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {12F8B266-CCBD-8AC2-01D4-3820EDE4347E}.Release|Any CPU.Build.0 = Release|Any CPU
{C8BE2B5A-A1A7-FEA1-7152-C2165E8E6A60}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C8BE2B5A-A1A7-FEA1-7152-C2165E8E6A60}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C8BE2B5A-A1A7-FEA1-7152-C2165E8E6A60}.Release|Any CPU.ActiveCfg = Release|Any CPU