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