52 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| Shader "MixedReality/PassthroughLine" {
 | |
|   Properties{
 | |
| 	  _LineLength("Line Length", float) = 1
 | |
| 
 | |
|   } SubShader {
 | |
|     Tags{"RenderType" = "Transparent"} LOD 100
 | |
| 
 | |
|         Pass {
 | |
|       ZWrite Off
 | |
| 	  BlendOp RevSub, Min
 | |
| 	  Blend Zero One, One One
 | |
| 
 | |
|               CGPROGRAM
 | |
|       // Upgrade NOTE: excluded shader from DX11; has structs without semantics (struct v2f members
 | |
|       // center)
 | |
|       //#pragma exclude_renderers d3d11
 | |
| #pragma vertex vert
 | |
| #pragma fragment frag
 | |
| 
 | |
| #include "UnityCG.cginc"
 | |
| 
 | |
|           struct appdata {
 | |
|         float4 vertex : POSITION;
 | |
|         float2 uv : TEXCOORD0;
 | |
|         float3 normal : NORMAL;
 | |
|       };
 | |
| 
 | |
|       struct v2f {
 | |
|         float2 uv : TEXCOORD0;
 | |
|         float4 vertex : SV_POSITION;
 | |
|       };
 | |
| 
 | |
|       v2f vert(appdata v) {
 | |
|         v2f o;
 | |
|         o.vertex = UnityObjectToClipPos(v.vertex);
 | |
|         o.uv = v.uv;
 | |
|         return o;
 | |
|       }
 | |
| 
 | |
|       float _LineLength;
 | |
| 
 | |
|       fixed4 frag(v2f i) : SV_Target {
 | |
|         float UVfadeRange = 0.2;
 | |
|         fixed widthAlpha = 1 - smoothstep(0.5 - UVfadeRange, 0.5, abs(i.uv.y - 0.5));
 | |
|         fixed lengthAlpha = 1 - smoothstep(0.5 - (UVfadeRange / _LineLength), 0.5, abs(i.uv.x - 0.5));
 | |
|         return float4(0, 0, 0, 1-(widthAlpha * lengthAlpha));
 | |
|       }
 | |
|       ENDCG
 | |
|     }
 | |
|   }
 | |
| }
 |