// Made with Amplify Shader Editor
// Available at the Unity Asset Store - http://u3d.as/y3X 
// Unity built-in shader source. Copyright (c) 2016 Unity Technologies. MIT license (see license.txt)

// Unlit shader. Simplest possible textured shader.
// - SUPPORTS lightmap
// - no lighting
// - no per-material color

Shader "Custom/MobileTexture"
{
	Properties{
		_MainTex("Base", 2D) = "white" {}
		_Color("Color", Color) = (1,1,1,0)
		_Mult("Mult", Float) = 0.31
		_Add("Add", Float) = 0.52
		[HideInInspector] _texcoord( "", 2D ) = "white" {}

	}

		SubShader{
			Tags { "RenderType"="Opaque" }
		LOD 100

		// Non-lightmapped
	//	
	//	Pass {
	//		Tags { "LightMode"="Vertex" }
	//		Lighting Off
	//		SetTexture[_MainTex] {
	//			constantColor(1,1,1,1)
	//			combine texture, constant // UNITY_OPAQUE_ALPHA_FFP
	//		}
	//	}

		// Lightmapped
		Pass
		{
			//Tags{ "LIGHTMODE" = "VertexLM" "RenderType" = "Opaque" }
			Tags{ "RenderType" = "Opaque" }

			CGPROGRAM

			

			#pragma vertex vert
			#pragma fragment frag
			#pragma target 3.0
			#include "UnityCG.cginc"
			#pragma multi_compile_fog
			#define USING_FOG (defined(FOG_LINEAR) || defined(FOG_EXP) || defined(FOG_EXP2))
			#pragma multi_compile_instancing
			#include "Lighting.cginc"
			#include "AutoLight.cginc"
			#include "UnityShaderVariables.cginc"


		// uniforms
		float4 _MainTex_ST;
		//This is a late directive
		
		uniform float4 _Color;
		uniform float _Mult;
		uniform float _Add;


	// vertex shader input data
	struct appdata
	{
		float3 pos : POSITION;
		float3 uv0 : TEXCOORD0;
		UNITY_VERTEX_INPUT_INSTANCE_ID
		float3 ase_normal : NORMAL;
	};

	// vertex-to-fragment interpolators
	struct v2f
	{
		//float2 uv0 : TEXCOORD0;
		//float2 uv1 : TEXCOORD1;
		UNITY_FOG_COORDS(5)
			float4 pos : SV_POSITION;
			float4 uv1 : TEXCOORD1;
			float4 ase_texcoord2 : TEXCOORD2;
			float4 ase_texcoord3 : TEXCOORD3;
			UNITY_VERTEX_INPUT_INSTANCE_ID
			UNITY_VERTEX_OUTPUT_STEREO
		};

	// vertex shader
	v2f vert(appdata IN )
	{
		v2f o;
		UNITY_SETUP_INSTANCE_ID(IN);
		UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
		UNITY_TRANSFER_INSTANCE_ID(IN, o);

		float3 ase_worldNormal = UnityObjectToWorldNormal(IN.ase_normal);
		o.ase_texcoord2.xyz = ase_worldNormal;
		float3 ase_worldPos = mul(unity_ObjectToWorld, IN.pos).xyz;
		o.ase_texcoord3.xyz = ase_worldPos;
		
		o.uv1.xy = IN.uv0.xy;
		
		//setting value to unused interpolator channels and avoid initialization warnings
		o.uv1.zw = 0;
		o.ase_texcoord2.w = 0;
		o.ase_texcoord3.w = 0;

		// compute texture coordinates
		//o.uv0 = IN.uv1.xy * unity_LightmapST.xy + unity_LightmapST.zw;
		//o.uv1 = IN.uv0.xy * _MainTex_ST.xy + _MainTex_ST.zw;

		// fog

			o.pos.xyz += o.pos.xyz;
			// transform position
			o.pos = UnityObjectToClipPos(IN.pos);
			UNITY_TRANSFER_FOG(o, o.pos);
			return o;
		}

	// textures

	sampler2D _MainTex;
	/*ase_globals*/

	// fragment shader
	fixed4 frag(v2f IN ) : SV_Target
	{
		UNITY_SETUP_INSTANCE_ID(IN);
		fixed4 col;

		float2 uv_MainTex = IN.uv1.xy * _MainTex_ST.xy + _MainTex_ST.zw;
		float3 ase_worldNormal = IN.ase_texcoord2.xyz;
		float3 ase_worldPos = IN.ase_texcoord3.xyz;
		float3 worldSpaceLightDir = UnityWorldSpaceLightDir(ase_worldPos);
		float dotResult276 = dot( ase_worldNormal , worldSpaceLightDir );
		#if defined(LIGHTMAP_ON) && ( UNITY_VERSION < 560 || ( defined(LIGHTMAP_SHADOW_MIXING) && !defined(SHADOWS_SHADOWMASK) && defined(SHADOWS_SCREEN) ) )//aselc
		float4 ase_lightColor = 0;
		#else //aselc
		float4 ase_lightColor = _LightColor0;
		#endif //aselc
		

		// Fetch lightmap
		//half4 bakedColorTex = UNITY_SAMPLE_TEX2D(unity_Lightmap, IN.uv0.xy);
		//col.rgb = DecodeLightmap(bakedColorTex);
		// Fetch color texture
		col = ( ( tex2D( _MainTex, uv_MainTex ) * _Color ) * float4( ( ( (( dotResult276 * ase_lightColor.rgb )*2.0 + 0.1) * _Mult ) + _Add ) , 0.0 ) );
		//tex = tex2D(_MainTex, IN.uv1.xy);
		//col.rgb = tex.rgb * col.rgb;
		col.a = 1;

		// fog
		UNITY_APPLY_FOG(IN.fogCoord, col);
		return col;

	}

	ENDCG
}
	}
	
	CustomEditor "ASEMaterialInspector"
	
}/*ASEBEGIN
Version=18500
-1920;24;1920;908;2385.096;305.3976;1.747919;True;False
Node;AmplifyShaderEditor.WorldSpaceLightDirHlpNode;281;-1609.201,562.4856;Inherit;False;False;1;0;FLOAT;0;False;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3
Node;AmplifyShaderEditor.WorldNormalVector;273;-1592.201,365.4858;Inherit;False;False;1;0;FLOAT3;0,0,1;False;4;FLOAT3;0;FLOAT;1;FLOAT;2;FLOAT;3
Node;AmplifyShaderEditor.DotProductOpNode;276;-1269.2,462.4858;Inherit;False;2;0;FLOAT3;0,0,0;False;1;FLOAT3;0,0,0;False;1;FLOAT;0
Node;AmplifyShaderEditor.LightColorNode;274;-1538.523,786.517;Inherit;False;0;3;COLOR;0;FLOAT3;1;FLOAT;2
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;279;-1067.504,588.4755;Inherit;False;2;2;0;FLOAT;0;False;1;FLOAT3;1,0,0;False;1;FLOAT3;0
Node;AmplifyShaderEditor.TemplateShaderPropertyNode;216;-1524.55,-273.0184;Inherit;False;0;0;_MainTex;Shader;0;5;SAMPLER2D;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.RangedFloatNode;280;-593.4806,716.0444;Float;False;Property;_Mult;Mult;1;0;Create;True;0;0;False;0;False;0.31;0.31;0;0;0;1;FLOAT;0
Node;AmplifyShaderEditor.ScaleAndOffsetNode;275;-861.3616,570.1205;Inherit;False;3;0;FLOAT3;0,0,0;False;1;FLOAT;2;False;2;FLOAT;0.1;False;1;FLOAT3;0
Node;AmplifyShaderEditor.SamplerNode;220;-1094.008,-213.6171;Inherit;True;Property;_TextureSample1;Texture Sample 1;1;0;Create;True;0;0;False;0;False;-1;None;822402f846727b24890cc7d5f5430675;True;0;False;white;Auto;False;Object;-1;Auto;Texture2D;8;0;SAMPLER2D;;False;1;FLOAT2;0,0;False;2;FLOAT;0;False;3;FLOAT2;0,0;False;4;FLOAT2;0,0;False;5;FLOAT;1;False;6;FLOAT;0;False;7;SAMPLERSTATE;;False;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.ColorNode;2;-1032.917,147.4246;Float;False;Property;_Color;Color;0;0;Create;True;0;0;False;0;False;1,1,1,0;0.8443396,0.9221698,1,1;True;0;5;COLOR;0;FLOAT;1;FLOAT;2;FLOAT;3;FLOAT;4
Node;AmplifyShaderEditor.RangedFloatNode;271;-435.5037,735.3815;Float;False;Property;_Add;Add;2;0;Create;True;0;0;False;0;False;0.52;0.52;0;0;0;1;FLOAT;0
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;272;-437.3076,545.6301;Inherit;False;2;2;0;FLOAT3;0,0,0;False;1;FLOAT;0;False;1;FLOAT3;0
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;3;-655.9731,-115.4623;Inherit;True;2;2;0;COLOR;0,0,0,0;False;1;COLOR;0,0,0,0;False;1;COLOR;0
Node;AmplifyShaderEditor.SimpleAddOpNode;278;-272.3075,597.6295;Inherit;False;2;2;0;FLOAT3;0,0,0;False;1;FLOAT;0;False;1;FLOAT3;0
Node;AmplifyShaderEditor.SimpleMultiplyOpNode;270;-65.06899,220.2378;Inherit;False;2;2;0;COLOR;0,0,0,0;False;1;FLOAT3;0,0,0;False;1;COLOR;0
Node;AmplifyShaderEditor.TemplateMultiPassMasterNode;262;215.0582,68.85792;Float;False;True;-1;2;ASEMaterialInspector;100;11;Custom/MobileTexture;4d87f490194cafb429ccbbd3da9ce3ac;True;SubShader 0 Pass 0;0;0;SubShader 0 Pass 0;2;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;RenderType=Opaque=RenderType;False;0;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;False;True;1;LightMode=Vertex;True;2;0;;0;0;Standard;0;0;1;True;False;;False;0
WireConnection;276;0;273;0
WireConnection;276;1;281;0
WireConnection;279;0;276;0
WireConnection;279;1;274;1
WireConnection;275;0;279;0
WireConnection;220;0;216;0
WireConnection;272;0;275;0
WireConnection;272;1;280;0
WireConnection;3;0;220;0
WireConnection;3;1;2;0
WireConnection;278;0;272;0
WireConnection;278;1;271;0
WireConnection;270;0;3;0
WireConnection;270;1;278;0
WireConnection;262;0;270;0
ASEEND*/
//CHKSM=85A1FAC1DDE9BCF3D27C99186A89DCB123C36F88