diff Orchestland/Assets/LeapMotion/Materials/Sources/Shaders/Toony-Basic.shader @ 1:f7675884f2a1

Add Orchestland project
author Daiki OYAKAWA <e135764@ie.u-ryukyu.ac.jp>
date Fri, 17 Jul 2015 23:09:20 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Orchestland/Assets/LeapMotion/Materials/Sources/Shaders/Toony-Basic.shader	Fri Jul 17 23:09:20 2015 +0900
@@ -0,0 +1,74 @@
+Shader "Toon/Basic" {
+	Properties {
+		_Color ("Main Color", Color) = (.5,.5,.5,1)
+		_MainTex ("Base (RGB)", 2D) = "white" {}
+		_ToonShade ("ToonShader Cubemap(RGB)", CUBE) = "" { Texgen CubeNormal }
+	}
+
+
+	SubShader {
+		Tags { "RenderType"="Opaque" }
+		Pass {
+			Name "BASE"
+			Cull Off
+			
+			CGPROGRAM
+			#pragma vertex vert
+			#pragma fragment frag
+			#pragma fragmentoption ARB_precision_hint_fastest 
+
+			#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 : POSITION;
+				float2 texcoord : TEXCOORD0;
+				float3 cubenormal : TEXCOORD1;
+			};
+
+			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));
+				return o;
+			}
+
+			float4 frag (v2f i) : COLOR
+			{
+				float4 col = _Color * tex2D(_MainTex, i.texcoord);
+				float4 cube = texCUBE(_ToonShade, i.cubenormal);
+				return float4(2.0f * cube.rgb * col.rgb, col.a);
+			}
+			ENDCG			
+		}
+	} 
+
+	SubShader {
+		Tags { "RenderType"="Opaque" }
+		Pass {
+			Name "BASE"
+			Cull Off
+			SetTexture [_MainTex] {
+				constantColor [_Color]
+				Combine texture * constant
+			} 
+			SetTexture [_ToonShade] {
+				combine texture * previous DOUBLE, previous
+			}
+		}
+	} 
+	
+	Fallback "VertexLit"
+}