Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Shader "Custom/Soph_toonBumpOutline" {
- Properties {
- _OutlineColor ("Outline Color", Color) = (0,0,0,1)
- _Outline ("Outline width", Range (.002, 0.03)) = .005
- _MainTex ("Base (RGB)", 2D) = "white" {}
- _BumpMap ("Bumpmap", 2D) = "bump" {}
- _Ramp ("ramp light", 2D) = "gray" {}
- }
- CGINCLUDE
- #include "UnityCG.cginc"
- struct appdata {
- float4 vertex : POSITION;
- float3 normal : NORMAL;
- };
- struct v2f {
- float4 pos : POSITION;
- float4 color : COLOR;
- };
- uniform float _Outline;
- uniform float4 _OutlineColor;
- v2f vert(appdata v) {
- // just make a copy of incoming vertex data but scaled according to normal direction
- v2f o;
- o.pos = mul(UNITY_MATRIX_MVP, v.vertex);
- float3 norm = mul ((float3x3)UNITY_MATRIX_IT_MV, v.normal);
- float2 offset = TransformViewToProjection(norm.xy);
- o.pos.xy += offset * o.pos.z * _Outline;
- o.color = _OutlineColor;
- return o;
- }
- ENDCG
- SubShader {
- Tags { "RenderType" = "Opaque" }
- CGPROGRAM
- #pragma surface surf ToonRamp
- //#pragma target 2.0
- sampler2D _Ramp;
- half4 LightingToonRamp (SurfaceOutput s, half3 lightDir, half3 viewDir, half atten) {
- half diff = max (0, dot ( lightDir, s.Normal ));
- half4 res;
- res.rgb = _LightColor0.rgb * diff;
- res *= atten * 2.0;
- float4 finalThing = tex2D(_Ramp,res.xy);
- finalThing.rgb *= s.Albedo.rgb;
- return finalThing;
- }
- struct Input {
- float2 uv_MainTex;
- float2 uv_BumpMap;
- };
- sampler2D _MainTex;
- sampler2D _BumpMap;
- void surf (Input IN, inout SurfaceOutput o) {
- o.Alpha = 1.0;
- //o.Albedo = 0.0;
- o.Emission = 0.0;
- o.Gloss = 0.0;
- o.Specular = 0.0;
- o.Albedo = tex2D (_MainTex, IN.uv_MainTex).rgb;
- o.Normal = UnpackNormal (tex2D (_BumpMap, IN.uv_BumpMap));
- }
- ENDCG
- Pass {
- Name "OUTLINE"
- Tags { "LightMode" = "Always" }
- Cull Front
- ZWrite On
- ColorMask RGB
- Blend SrcAlpha OneMinusSrcAlpha
- //Offset 50,50
- CGPROGRAM
- #pragma vertex vert
- #pragma fragment frag
- half4 frag(v2f i) :COLOR { return i.color; }
- ENDCG
- }
- }
- FallBack "Diffuse"
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement