Mercurial > hg > Game > Games
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" +}