Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
- Shader "Outlined/Custom"
- {
- Properties
- {
- _Color ("Main Color", Color) = (.5,.5,.5,1)
- _OutlineColor ("Outline Color", Color) = (0,0,0,1)
- _Outline ("Outline width", Range (0, 1)) = .1
- _MainTex ("Base (RGB)", 2D) = "white" { }
- }
- 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;
- uniform fixed4 _Color;
- v2f vert(appdata v) {
- v2f o;
- v.vertex *= (1 + _Outline);
- o.pos = UnityObjectToClipPos(v.vertex);
- o.color = _OutlineColor;
- return o;
- }
- ENDCG
- SubShader
- {
- CGPROGRAM
- #pragma target 3.0
- #pragma surface surf Lambert
- sampler2D _MainTex;
- struct Input
- {
- float2 uv_MainTex;
- };
- void surf(Input IN, inout SurfaceOutput o)
- {
- fixed4 c = tex2D(_MainTex, IN.uv_MainTex) * _Color;
- o.Albedo = c.rgb;
- o.Alpha = c.a * _Color.a;
- }
- ENDCG
- Pass
- {
- Name "OUTLINE"
- Tags
- {
- //"RenderType" = "Transparent"
- //"Queue" = "Overlay+1"
- "LightMode" = "Always"
- }
- Cull Front
- ZWrite On
- ColorMask RGB
- Blend SrcAlpha OneMinusSrcAlpha
- CGPROGRAM
- #pragma vertex vert
- #pragma fragment frag
- sampler2D _MainTex;
- half4 frag(v2f i) : COLOR
- {
- return i.color;
- }
- ENDCG
- }
- }
- SubShader
- {
- CGPROGRAM
- #pragma target 3.0
- #pragma surface surf Lambert
- sampler2D _MainTex;
- struct Input
- {
- float2 uv_MainTex;
- };
- void surf(Input IN, inout SurfaceOutput o)
- {
- fixed4 c = tex2D(_MainTex, IN.uv_MainTex) * _Color;
- o.Albedo = c.rgb;
- o.Alpha = c.a * _Color.a;
- }
- ENDCG
- Pass
- {
- Name "OUTLINE"
- Tags
- {
- //"RenderType" = "Transparent"
- //"Queue" = "Overlay+1"
- "LightMode" = "Always"
- }
- Cull Front
- ZWrite On
- ColorMask RGB
- Blend SrcAlpha OneMinusSrcAlpha
- CGPROGRAM
- #pragma target 3.0
- #pragma vertex vert
- #pragma exclude_renderers gles xbox360 ps3
- ENDCG
- SetTexture [_MainTex] { combine primary }
- }
- }
- Fallback "Diffuse"
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement