Toon/Basic with Alpha
출처에 있는 SubShader의 해당 부분만 교체..(실행 확인)
1 Shader "Toon/Basic with Alpha" { 2 Properties { 3 _Color ("Main Color", Color) = (.5,.5,.5,1) 4 _MainTex ("Base (RGB)", 2D) = "white" {} 5 _ToonShade ("ToonShader Cubemap(RGB)", CUBE) = "" { Texgen CubeNormal } 6 } 7 8 9 SubShader { 10 Tags {"Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent"} 11 Pass { 12 Name "BASE" 13 Cull Back 14 Blend SrcAlpha OneMinusSrcAlpha 15 16 CGPROGRAM 17 #pragma vertex vert 18 #pragma fragment frag 19 #pragma fragmentoption ARB_precision_hint_fastest 20 21 #include "UnityCG.cginc" 22 23 sampler2D _MainTex; 24 samplerCUBE _ToonShade; 25 float4 _MainTex_ST; 26 float4 _Color; 27 28 struct appdata { 29 float4 vertex : POSITION; 30 float2 texcoord : TEXCOORD0; 31 float3 normal : NORMAL; 32 }; 33 34 struct v2f { 35 float4 pos : POSITION; 36 float2 texcoord : TEXCOORD0; 37 float3 cubenormal : TEXCOORD1; 38 }; 39 40 v2f vert (appdata v) 41 { 42 v2f o; 43 o.pos = mul (UNITY_MATRIX_MVP, v.vertex); 44 o.texcoord = TRANSFORM_TEX(v.texcoord, _MainTex); 45 o.cubenormal = mul (UNITY_MATRIX_MV, float4(v.normal,0)); 46 return o; 47 } 48 49 float4 frag (v2f i) : COLOR 50 { 51 float4 col = _Color * tex2D(_MainTex, i.texcoord); 52 float4 cube = texCUBE(_ToonShade, i.cubenormal); 53 return float4(2.0f * cube.rgb * col.rgb, col.a); 54 } 55 ENDCG 56 } 57 } 58 59 SubShader { 60 Tags { "RenderType"="Opaque" } 61 Pass { 62 Name "BASE" 63 Cull Back 64 SetTexture [_MainTex] { 65 constantColor [_Color] 66 Combine texture * constant 67 } 68 SetTexture [_ToonShade] { 69 combine texture * previous DOUBLE, previous 70 } 71 } 72 } 73 74 Fallback "VertexLit" 75 } 76
출처 : http://forum.unity3d.com/threads/103030-Toon-shader-with-Transparency
'Unity3D > Shader' 카테고리의 다른 글
쉐이더 자료 많은 사이트.. (0) | 2014.04.03 |
---|---|
Toon/Tf2Shader (0) | 2013.07.19 |
Toon/Lighted with Alpha (0) | 2013.07.19 |
toon-water shader (0) | 2012.11.07 |
스크립트로 Shader 변경 (0) | 2012.11.06 |