You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
	
	
		
			135 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
		
		
			
		
	
	
			135 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
| 
								 
											1 year ago
										 
									 | 
							
								// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								Shader "Outlined/Silhouette Only"
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									Properties
							 | 
						||
| 
								 | 
							
									{
							 | 
						||
| 
								 | 
							
									_OutlineColor("Outline Color", Color) = (0,0,0,1)
							 | 
						||
| 
								 | 
							
									_Outline("Outline width", Range(0.0, 1)) = .5
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										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)
							 | 
						||
| 
								 | 
							
									{
							 | 
						||
| 
								 | 
							
										v2f o;
							 | 
						||
| 
								 | 
							
										o.pos = UnityObjectToClipPos(v.vertex);
							 | 
						||
| 
								 | 
							
										float3 norm = normalize(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 { "Queue" = "Transparent" }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									Pass
							 | 
						||
| 
								 | 
							
										{
							 | 
						||
| 
								 | 
							
										Name "BASE"
							 | 
						||
| 
								 | 
							
										CULL OFF
							 | 
						||
| 
								 | 
							
										ZTEST ALWAYS
							 | 
						||
| 
								 | 
							
										ZWRITE OFF
							 | 
						||
| 
								 | 
							
										Blend ONE ONE
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										Stencil
							 | 
						||
| 
								 | 
							
											{
							 | 
						||
| 
								 | 
							
											REF 2
							 | 
						||
| 
								 | 
							
											COMP ALWAYS
							 | 
						||
| 
								 | 
							
											PASS REPLACE
							 | 
						||
| 
								 | 
							
											ZFAIL REPLACE
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										CGPROGRAM
							 | 
						||
| 
								 | 
							
										#pragma vertex vert
							 | 
						||
| 
								 | 
							
										#pragma fragment frag
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										half4 frag(v2f i) :COLOR
							 | 
						||
| 
								 | 
							
											{
							 | 
						||
| 
								 | 
							
											return half4(0,0,0,0);
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
										ENDCG
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									Pass
							 | 
						||
| 
								 | 
							
										{
							 | 
						||
| 
								 | 
							
										Name "INNER"
							 | 
						||
| 
								 | 
							
										CULL OFF
							 | 
						||
| 
								 | 
							
										ZTEST ALWAYS
							 | 
						||
| 
								 | 
							
										ZWRITE OFF
							 | 
						||
| 
								 | 
							
										Blend One One
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										Stencil
							 | 
						||
| 
								 | 
							
											{
							 | 
						||
| 
								 | 
							
											REF 1
							 | 
						||
| 
								 | 
							
											COMP ALWAYS
							 | 
						||
| 
								 | 
							
											PASS REPLACE
							 | 
						||
| 
								 | 
							
											ZFAIL REPLACE
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										CGPROGRAM
							 | 
						||
| 
								 | 
							
										#pragma vertex vert2
							 | 
						||
| 
								 | 
							
										#pragma fragment frag
							 | 
						||
| 
								 | 
							
											v2f vert2(appdata v)
							 | 
						||
| 
								 | 
							
											{
							 | 
						||
| 
								 | 
							
											v2f o;
							 | 
						||
| 
								 | 
							
											o.pos = UnityObjectToClipPos(v.vertex);
							 | 
						||
| 
								 | 
							
											o.color = _OutlineColor;
							 | 
						||
| 
								 | 
							
											return o;
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										half4 frag(v2f i) :COLOR
							 | 
						||
| 
								 | 
							
											{
							 | 
						||
| 
								 | 
							
											return half4(0,0,0,0);
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
										ENDCG
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									Pass
							 | 
						||
| 
								 | 
							
										{
							 | 
						||
| 
								 | 
							
										Name "OUTLINE"
							 | 
						||
| 
								 | 
							
										CULL OFF
							 | 
						||
| 
								 | 
							
										ZTEST ALWAYS
							 | 
						||
| 
								 | 
							
										ZWRITE OFF
							 | 
						||
| 
								 | 
							
										BLEND ONE ONEMINUSDSTCOLOR
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										Stencil
							 | 
						||
| 
								 | 
							
											{
							 | 
						||
| 
								 | 
							
											REF 2
							 | 
						||
| 
								 | 
							
											COMP EQUAL
							 | 
						||
| 
								 | 
							
											PASS REPLACE
							 | 
						||
| 
								 | 
							
											ZFAIL REPLACE
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										CGPROGRAM
							 | 
						||
| 
								 | 
							
										#pragma vertex vert 
							 | 
						||
| 
								 | 
							
										#pragma fragment frag
							 | 
						||
| 
								 | 
							
										half4 frag(v2f i) :COLOR
							 | 
						||
| 
								 | 
							
											{
							 | 
						||
| 
								 | 
							
											return i.color;
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
										ENDCG
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
										Fallback "Diffuse"
							 | 
						||
| 
								 | 
							
								}
							 |