Shader "Knife/Fire" {
	Properties {
		_Noise ("Noise", 2D) = "white" {}
		_Alpha ("Alpha", 2D) = "white" {}
		[HDR] _Color0 ("Color 0", Vector) = (1,1,1,1)
		[HDR] _Color1 ("Color 1", Vector) = (1,1,1,1)
		_Opacity ("Opacity", Range(0, 1)) = 1
		_NoiseSoftness ("NoiseSoftness", Range(0, 1)) = 0
		_NoiseSpeed ("NoiseSpeed", Vector) = (0,1,0,0)
		_DepthFade ("DepthFade", Float) = 0
		_Rotation ("Rotation", Float) = 1
		_Offset ("Offset", Vector) = (1,0,0,0)
		_AlphaSoftness ("AlphaSoftness", Range(0, 1)) = 1
		[HideInInspector] _texcoord ("", 2D) = "white" {}
	}
	SubShader {
		LOD 100
		Tags { "QUEUE" = "Transparent" "RenderType" = "Transparent" }
		Pass {
			Name "Unlit"
			LOD 100
			Tags { "LIGHTMODE" = "FORWARDBASE" "QUEUE" = "Transparent" "RenderType" = "Transparent" }
			Blend SrcAlpha OneMinusSrcAlpha, SrcAlpha OneMinusSrcAlpha
			ZWrite Off
			GpuProgramID 43350
			Program "vp" {
				SubProgram "d3d11 " {
					"vs_4_0
					
					#version 330
					#extension GL_ARB_explicit_attrib_location : require
					#extension GL_ARB_explicit_uniform_location : require
					
					#define HLSLCC_ENABLE_UNIFORM_BUFFERS 1
					#if HLSLCC_ENABLE_UNIFORM_BUFFERS
					#define UNITY_UNIFORM
					#else
					#define UNITY_UNIFORM uniform
					#endif
					#define UNITY_SUPPORTS_UNIFORM_LOCATION 1
					#if UNITY_SUPPORTS_UNIFORM_LOCATION
					#define UNITY_LOCATION(x) layout(location = x)
					#define UNITY_BINDING(x) layout(binding = x, std140)
					#else
					#define UNITY_LOCATION(x)
					#define UNITY_BINDING(x) layout(std140)
					#endif
					layout(std140) uniform UnityPerCamera {
						vec4 unused_0_0[5];
						vec4 _ProjectionParams;
						vec4 unused_0_2[3];
					};
					layout(std140) uniform UnityPerDraw {
						mat4x4 unity_ObjectToWorld;
						vec4 unused_1_1[7];
					};
					layout(std140) uniform UnityPerFrame {
						vec4 unused_2_0[17];
						mat4x4 unity_MatrixVP;
						vec4 unused_2_2[2];
					};
					in  vec4 in_POSITION0;
					in  vec4 in_COLOR0;
					in  vec4 in_TEXCOORD0;
					in  vec4 in_TEXCOORD1;
					out vec4 vs_TEXCOORD0;
					out vec4 vs_TEXCOORD1;
					out vec4 vs_TEXCOORD2;
					out vec4 vs_COLOR0;
					vec4 u_xlat0;
					vec4 u_xlat1;
					void main()
					{
					    u_xlat0 = in_POSITION0.yyyy * unity_ObjectToWorld[1];
					    u_xlat0 = unity_ObjectToWorld[0] * in_POSITION0.xxxx + u_xlat0;
					    u_xlat0 = unity_ObjectToWorld[2] * in_POSITION0.zzzz + u_xlat0;
					    u_xlat0 = u_xlat0 + unity_ObjectToWorld[3];
					    u_xlat1 = u_xlat0.yyyy * unity_MatrixVP[1];
					    u_xlat1 = unity_MatrixVP[0] * u_xlat0.xxxx + u_xlat1;
					    u_xlat1 = unity_MatrixVP[2] * u_xlat0.zzzz + u_xlat1;
					    u_xlat0 = unity_MatrixVP[3] * u_xlat0.wwww + u_xlat1;
					    gl_Position = u_xlat0;
					    vs_TEXCOORD0 = in_TEXCOORD0;
					    vs_TEXCOORD1.xy = in_TEXCOORD1.xy;
					    vs_TEXCOORD1.zw = vec2(0.0, 0.0);
					    u_xlat0.y = u_xlat0.y * _ProjectionParams.x;
					    u_xlat1.xzw = u_xlat0.xwy * vec3(0.5, 0.5, 0.5);
					    vs_TEXCOORD2.zw = u_xlat0.zw;
					    vs_TEXCOORD2.xy = u_xlat1.zz + u_xlat1.xw;
					    vs_COLOR0 = in_COLOR0;
					    return;
					}"
				}
				SubProgram "d3d11 " {
					Keywords { "UNITY_SINGLE_PASS_STEREO" }
					"vs_4_0
					
					#version 330
					#extension GL_ARB_explicit_attrib_location : require
					#extension GL_ARB_explicit_uniform_location : require
					
					#define HLSLCC_ENABLE_UNIFORM_BUFFERS 1
					#if HLSLCC_ENABLE_UNIFORM_BUFFERS
					#define UNITY_UNIFORM
					#else
					#define UNITY_UNIFORM uniform
					#endif
					#define UNITY_SUPPORTS_UNIFORM_LOCATION 1
					#if UNITY_SUPPORTS_UNIFORM_LOCATION
					#define UNITY_LOCATION(x) layout(location = x)
					#define UNITY_BINDING(x) layout(binding = x, std140)
					#else
					#define UNITY_LOCATION(x)
					#define UNITY_BINDING(x) layout(std140)
					#endif
					layout(std140) uniform UnityPerCamera {
						vec4 unused_0_0[4];
						vec4 _ProjectionParams;
						vec4 unused_0_2[3];
					};
					layout(std140) uniform UnityPerDraw {
						mat4x4 unity_ObjectToWorld;
						vec4 unused_1_1[7];
					};
					layout(std140) uniform UnityStereoGlobals {
						vec4 unused_2_0[24];
						mat4x4 unity_StereoMatrixVP[2];
						vec4 unused_2_2[38];
						vec4 unity_StereoScaleOffset[2];
						vec4 unused_2_4;
					};
					layout(std140) uniform UnityStereoEyeIndex {
						int unity_StereoEyeIndex;
					};
					in  vec4 in_POSITION0;
					in  vec4 in_COLOR0;
					in  vec4 in_TEXCOORD0;
					in  vec4 in_TEXCOORD1;
					out vec4 vs_TEXCOORD0;
					out vec4 vs_TEXCOORD1;
					out vec4 vs_TEXCOORD2;
					out vec4 vs_COLOR0;
					vec4 u_xlat0;
					vec4 u_xlat1;
					int u_xlati1;
					vec4 u_xlat2;
					vec2 u_xlat4;
					void main()
					{
					    u_xlat0 = in_POSITION0.yyyy * unity_ObjectToWorld[1];
					    u_xlat0 = unity_ObjectToWorld[0] * in_POSITION0.xxxx + u_xlat0;
					    u_xlat0 = unity_ObjectToWorld[2] * in_POSITION0.zzzz + u_xlat0;
					    u_xlat0 = u_xlat0 + unity_ObjectToWorld[3];
					    u_xlati1 = unity_StereoEyeIndex << 2;
					    u_xlat2 = u_xlat0.yyyy * unity_StereoMatrixVP[(u_xlati1 + 1) / 4][(u_xlati1 + 1) % 4];
					    u_xlat2 = unity_StereoMatrixVP[u_xlati1 / 4][u_xlati1 % 4] * u_xlat0.xxxx + u_xlat2;
					    u_xlat2 = unity_StereoMatrixVP[(u_xlati1 + 2) / 4][(u_xlati1 + 2) % 4] * u_xlat0.zzzz + u_xlat2;
					    u_xlat0 = unity_StereoMatrixVP[(u_xlati1 + 3) / 4][(u_xlati1 + 3) % 4] * u_xlat0.wwww + u_xlat2;
					    gl_Position = u_xlat0;
					    vs_TEXCOORD0 = in_TEXCOORD0;
					    vs_TEXCOORD1.xy = in_TEXCOORD1.xy;
					    vs_TEXCOORD1.zw = vec2(0.0, 0.0);
					    u_xlat0.y = u_xlat0.y * _ProjectionParams.x;
					    u_xlat1.xzw = u_xlat0.xwy * vec3(0.5, 0.5, 0.5);
					    u_xlat0.xy = u_xlat1.zz + u_xlat1.xw;
					    u_xlati1 = unity_StereoEyeIndex;
					    u_xlat4.xy = u_xlat0.ww * unity_StereoScaleOffset[u_xlati1].zw;
					    vs_TEXCOORD2.xy = u_xlat0.xy * unity_StereoScaleOffset[u_xlati1].xy + u_xlat4.xy;
					    vs_TEXCOORD2.zw = u_xlat0.zw;
					    vs_COLOR0 = in_COLOR0;
					    return;
					}"
				}
			}
			Program "fp" {
				SubProgram "d3d11 " {
					"ps_4_0
					
					#version 330
					#extension GL_ARB_explicit_attrib_location : require
					#extension GL_ARB_explicit_uniform_location : require
					
					#define HLSLCC_ENABLE_UNIFORM_BUFFERS 1
					#if HLSLCC_ENABLE_UNIFORM_BUFFERS
					#define UNITY_UNIFORM
					#else
					#define UNITY_UNIFORM uniform
					#endif
					#define UNITY_SUPPORTS_UNIFORM_LOCATION 1
					#if UNITY_SUPPORTS_UNIFORM_LOCATION
					#define UNITY_LOCATION(x) layout(location = x)
					#define UNITY_BINDING(x) layout(binding = x, std140)
					#else
					#define UNITY_LOCATION(x)
					#define UNITY_BINDING(x) layout(std140)
					#endif
					layout(std140) uniform PGlobals {
						vec4 unused_0_0[2];
						vec4 _Color0;
						vec4 _Color1;
						float _NoiseSoftness;
						vec2 _NoiseSpeed;
						vec4 _Noise_ST;
						vec2 _Offset;
						float _Rotation;
						float _AlphaSoftness;
						vec4 _Alpha_ST;
						float _Opacity;
						vec4 unused_0_11;
						float _DepthFade;
					};
					layout(std140) uniform UnityPerCamera {
						vec4 _Time;
						vec4 unused_1_1[6];
						vec4 _ZBufferParams;
						vec4 unused_1_3;
					};
					uniform  sampler2D _Noise;
					uniform  sampler2D _Alpha;
					uniform  sampler2D _CameraDepthTexture;
					in  vec4 vs_TEXCOORD0;
					in  vec4 vs_TEXCOORD1;
					in  vec4 vs_TEXCOORD2;
					in  vec4 vs_COLOR0;
					layout(location = 0) out vec4 SV_Target0;
					vec4 u_xlat0;
					vec4 u_xlat1;
					float u_xlat2;
					vec3 u_xlat3;
					vec2 u_xlat4;
					vec2 u_xlat8;
					float u_xlat12;
					void main()
					{
					    u_xlat0.xyz = vs_TEXCOORD2.xyz / vs_TEXCOORD2.www;
					    u_xlat1 = texture(_CameraDepthTexture, u_xlat0.xy);
					    u_xlat0.x = _ZBufferParams.z * u_xlat0.z + _ZBufferParams.w;
					    u_xlat0.x = float(1.0) / u_xlat0.x;
					    u_xlat4.x = _ZBufferParams.z * u_xlat1.x + _ZBufferParams.w;
					    u_xlat4.x = float(1.0) / u_xlat4.x;
					    u_xlat0.x = (-u_xlat0.x) + u_xlat4.x;
					    u_xlat0.x = u_xlat0.x / _DepthFade;
					    u_xlat0.x = min(abs(u_xlat0.x), 1.0);
					    u_xlat4.xy = vs_TEXCOORD0.xy * _Alpha_ST.xy + _Alpha_ST.zw;
					    u_xlat1 = texture(_Alpha, u_xlat4.xy);
					    u_xlat4.x = float(1.0) / _AlphaSoftness;
					    u_xlat4.x = u_xlat4.x * u_xlat1.x;
					    u_xlat4.x = clamp(u_xlat4.x, 0.0, 1.0);
					    u_xlat8.x = u_xlat4.x * -2.0 + 3.0;
					    u_xlat4.x = u_xlat4.x * u_xlat4.x;
					    u_xlat4.x = u_xlat4.x * u_xlat8.x;
					    u_xlat8.x = u_xlat4.x * _Opacity;
					    u_xlat0.x = u_xlat0.x * u_xlat8.x;
					    u_xlat8.xy = vs_TEXCOORD0.xy * _Noise_ST.xy + _Noise_ST.zw;
					    u_xlat8.xy = vs_TEXCOORD1.xy * _Offset.xy + u_xlat8.xy;
					    u_xlat8.xy = u_xlat8.xy + vec2(-0.5, -0.5);
					    u_xlat1.x = vs_TEXCOORD0.z * _Rotation;
					    u_xlat2 = cos(u_xlat1.x);
					    u_xlat1.x = sin(u_xlat1.x);
					    u_xlat3.z = u_xlat1.x;
					    u_xlat3.y = u_xlat2;
					    u_xlat3.x = (-u_xlat1.x);
					    u_xlat1.y = dot(u_xlat8.xy, u_xlat3.xy);
					    u_xlat1.x = dot(u_xlat8.xy, u_xlat3.yz);
					    u_xlat8.xy = u_xlat1.xy + vec2(0.5, 0.5);
					    u_xlat8.xy = _Time.yy * vec2(_NoiseSpeed.x, _NoiseSpeed.y) + u_xlat8.xy;
					    u_xlat1 = texture(_Noise, u_xlat8.xy);
					    u_xlat8.x = u_xlat1.x;
					    u_xlat8.x = clamp(u_xlat8.x, 0.0, 1.0);
					    u_xlat12 = u_xlat8.x * -2.0 + 3.0;
					    u_xlat8.x = u_xlat8.x * u_xlat8.x;
					    u_xlat4.x = (-u_xlat12) * u_xlat8.x + u_xlat4.x;
					    u_xlat0.x = u_xlat4.x * u_xlat0.x;
					    u_xlat4.x = vs_TEXCOORD0.w * _NoiseSoftness;
					    u_xlat4.x = float(1.0) / u_xlat4.x;
					    u_xlat4.x = u_xlat4.x * u_xlat1.x;
					    u_xlat4.x = clamp(u_xlat4.x, 0.0, 1.0);
					    u_xlat8.x = u_xlat4.x * -2.0 + 3.0;
					    u_xlat4.x = u_xlat4.x * u_xlat4.x;
					    u_xlat4.x = u_xlat4.x * u_xlat8.x;
					    u_xlat1 = (-_Color0) + _Color1;
					    u_xlat1 = u_xlat4.xxxx * u_xlat1 + _Color0;
					    u_xlat0 = u_xlat0.xxxx * u_xlat1;
					    SV_Target0 = u_xlat0 * vs_COLOR0;
					    return;
					}"
				}
				SubProgram "d3d11 " {
					Keywords { "UNITY_SINGLE_PASS_STEREO" }
					"ps_4_0
					
					#version 330
					#extension GL_ARB_explicit_attrib_location : require
					#extension GL_ARB_explicit_uniform_location : require
					
					#define HLSLCC_ENABLE_UNIFORM_BUFFERS 1
					#if HLSLCC_ENABLE_UNIFORM_BUFFERS
					#define UNITY_UNIFORM
					#else
					#define UNITY_UNIFORM uniform
					#endif
					#define UNITY_SUPPORTS_UNIFORM_LOCATION 1
					#if UNITY_SUPPORTS_UNIFORM_LOCATION
					#define UNITY_LOCATION(x) layout(location = x)
					#define UNITY_BINDING(x) layout(binding = x, std140)
					#else
					#define UNITY_LOCATION(x)
					#define UNITY_BINDING(x) layout(std140)
					#endif
					layout(std140) uniform PGlobals {
						vec4 unused_0_0[2];
						vec4 _Color0;
						vec4 _Color1;
						float _NoiseSoftness;
						vec2 _NoiseSpeed;
						vec4 _Noise_ST;
						vec2 _Offset;
						float _Rotation;
						float _AlphaSoftness;
						vec4 _Alpha_ST;
						float _Opacity;
						vec4 unused_0_11;
						float _DepthFade;
					};
					layout(std140) uniform UnityPerCamera {
						vec4 _Time;
						vec4 unused_1_1[5];
						vec4 _ZBufferParams;
						vec4 unused_1_3;
					};
					uniform  sampler2D _Noise;
					uniform  sampler2D _Alpha;
					uniform  sampler2D _CameraDepthTexture;
					in  vec4 vs_TEXCOORD0;
					in  vec4 vs_TEXCOORD1;
					in  vec4 vs_TEXCOORD2;
					in  vec4 vs_COLOR0;
					layout(location = 0) out vec4 SV_Target0;
					vec4 u_xlat0;
					vec4 u_xlat1;
					float u_xlat2;
					vec3 u_xlat3;
					vec2 u_xlat4;
					vec2 u_xlat8;
					float u_xlat12;
					void main()
					{
					    u_xlat0.xyz = vs_TEXCOORD2.xyz / vs_TEXCOORD2.www;
					    u_xlat1 = texture(_CameraDepthTexture, u_xlat0.xy);
					    u_xlat0.x = _ZBufferParams.z * u_xlat0.z + _ZBufferParams.w;
					    u_xlat0.x = float(1.0) / u_xlat0.x;
					    u_xlat4.x = _ZBufferParams.z * u_xlat1.x + _ZBufferParams.w;
					    u_xlat4.x = float(1.0) / u_xlat4.x;
					    u_xlat0.x = (-u_xlat0.x) + u_xlat4.x;
					    u_xlat0.x = u_xlat0.x / _DepthFade;
					    u_xlat0.x = min(abs(u_xlat0.x), 1.0);
					    u_xlat4.xy = vs_TEXCOORD0.xy * _Alpha_ST.xy + _Alpha_ST.zw;
					    u_xlat1 = texture(_Alpha, u_xlat4.xy);
					    u_xlat4.x = float(1.0) / _AlphaSoftness;
					    u_xlat4.x = u_xlat4.x * u_xlat1.x;
					    u_xlat4.x = clamp(u_xlat4.x, 0.0, 1.0);
					    u_xlat8.x = u_xlat4.x * -2.0 + 3.0;
					    u_xlat4.x = u_xlat4.x * u_xlat4.x;
					    u_xlat4.x = u_xlat4.x * u_xlat8.x;
					    u_xlat8.x = u_xlat4.x * _Opacity;
					    u_xlat0.x = u_xlat0.x * u_xlat8.x;
					    u_xlat8.xy = vs_TEXCOORD0.xy * _Noise_ST.xy + _Noise_ST.zw;
					    u_xlat8.xy = vs_TEXCOORD1.xy * _Offset.xy + u_xlat8.xy;
					    u_xlat8.xy = u_xlat8.xy + vec2(-0.5, -0.5);
					    u_xlat1.x = vs_TEXCOORD0.z * _Rotation;
					    u_xlat2 = cos(u_xlat1.x);
					    u_xlat1.x = sin(u_xlat1.x);
					    u_xlat3.z = u_xlat1.x;
					    u_xlat3.y = u_xlat2;
					    u_xlat3.x = (-u_xlat1.x);
					    u_xlat1.y = dot(u_xlat8.xy, u_xlat3.xy);
					    u_xlat1.x = dot(u_xlat8.xy, u_xlat3.yz);
					    u_xlat8.xy = u_xlat1.xy + vec2(0.5, 0.5);
					    u_xlat8.xy = _Time.yy * vec2(_NoiseSpeed.x, _NoiseSpeed.y) + u_xlat8.xy;
					    u_xlat1 = texture(_Noise, u_xlat8.xy);
					    u_xlat8.x = u_xlat1.x;
					    u_xlat8.x = clamp(u_xlat8.x, 0.0, 1.0);
					    u_xlat12 = u_xlat8.x * -2.0 + 3.0;
					    u_xlat8.x = u_xlat8.x * u_xlat8.x;
					    u_xlat4.x = (-u_xlat12) * u_xlat8.x + u_xlat4.x;
					    u_xlat0.x = u_xlat4.x * u_xlat0.x;
					    u_xlat4.x = vs_TEXCOORD0.w * _NoiseSoftness;
					    u_xlat4.x = float(1.0) / u_xlat4.x;
					    u_xlat4.x = u_xlat4.x * u_xlat1.x;
					    u_xlat4.x = clamp(u_xlat4.x, 0.0, 1.0);
					    u_xlat8.x = u_xlat4.x * -2.0 + 3.0;
					    u_xlat4.x = u_xlat4.x * u_xlat4.x;
					    u_xlat4.x = u_xlat4.x * u_xlat8.x;
					    u_xlat1 = (-_Color0) + _Color1;
					    u_xlat1 = u_xlat4.xxxx * u_xlat1 + _Color0;
					    u_xlat0 = u_xlat0.xxxx * u_xlat1;
					    SV_Target0 = u_xlat0 * vs_COLOR0;
					    return;
					}"
				}
			}
		}
	}
	CustomEditor "ASEMaterialInspector"
}