135 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			135 lines
		
	
	
		
			4.0 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| //======= Copyright (c) Valve Corporation, All rights reserved. ===============
 | |
| //
 | |
| // Purpose: Used for objects that can be seen through objects in front of them
 | |
| //
 | |
| //=============================================================================
 | |
| // UNITY_SHADER_NO_UPGRADE
 | |
| Shader "Valve/VR/SeeThru"
 | |
| {
 | |
| 	Properties
 | |
| 	{
 | |
| 		_Color( "Color", Color ) = ( 1, 1, 1, 1 )
 | |
| 	}
 | |
| 	SubShader
 | |
| 	{
 | |
| 		Tags{ "Queue" = "Geometry+1" "RenderType" = "Transparent" }
 | |
| 		LOD 100
 | |
| 
 | |
| 		Pass
 | |
| 		{
 | |
| 			// Render State ---------------------------------------------------------------------------------------------------------------------------------------------
 | |
| 			Blend SrcAlpha OneMinusSrcAlpha // Alpha blending
 | |
| 			Cull Off
 | |
| 			ZWrite Off
 | |
| 			ZTest Greater
 | |
| 			Stencil
 | |
| 			{
 | |
| 				Ref 2
 | |
| 				Comp notequal
 | |
| 				Pass replace
 | |
| 				Fail keep
 | |
| 			}
 | |
| 
 | |
| 			CGPROGRAM
 | |
| 				#pragma target 5.0
 | |
| #if UNITY_VERSION >= 560
 | |
| 				#pragma only_renderers d3d11 vulkan glcore
 | |
| #else
 | |
| 				#pragma only_renderers d3d11 glcore
 | |
| #endif
 | |
| 				#pragma exclude_renderers gles
 | |
| 				#pragma multi_compile_instancing
 | |
| 
 | |
| 				#pragma vertex MainVS
 | |
| 				#pragma fragment MainPS
 | |
| 				
 | |
| 				// Includes -------------------------------------------------------------------------------------------------------------------------------------------------
 | |
| 				#include "UnityCG.cginc"
 | |
| 				
 | |
| 				// Structs --------------------------------------------------------------------------------------------------------------------------------------------------
 | |
| 				struct VertexInput
 | |
| 				{
 | |
| 					float4 vertex : POSITION;
 | |
| 					float2 uv : TEXCOORD0;
 | |
| #if UNITY_VERSION >= 560
 | |
| 					UNITY_VERTEX_INPUT_INSTANCE_ID
 | |
| #endif
 | |
| 				};
 | |
| 				
 | |
| 				struct VertexOutput
 | |
| 				{
 | |
| 					float2 uv : TEXCOORD0;
 | |
| 					float4 vertex : SV_POSITION;
 | |
| 
 | |
| #if UNITY_VERSION >= 560
 | |
| 					UNITY_VERTEX_OUTPUT_STEREO
 | |
| #endif
 | |
| 				};
 | |
| 
 | |
| #if UNITY_VERSION >= 201810
 | |
| 				// Globals --------------------------------------------------------------------------------------------------------------------------------------------------
 | |
| 				UNITY_INSTANCING_BUFFER_START( Props )
 | |
| 					UNITY_DEFINE_INSTANCED_PROP( float4, _Color )
 | |
| 					UNITY_DEFINE_INSTANCED_PROP( sampler2D, _MainTex )
 | |
| 					UNITY_DEFINE_INSTANCED_PROP( float4, _MainTex_ST )
 | |
| 				UNITY_INSTANCING_BUFFER_END( Props )
 | |
| 				
 | |
| 				
 | |
| 				// MainVs ---------------------------------------------------------------------------------------------------------------------------------------------------
 | |
| 				VertexOutput MainVS( VertexInput i )
 | |
| 				{
 | |
| 					VertexOutput o;
 | |
| 
 | |
| 					UNITY_SETUP_INSTANCE_ID( i );
 | |
| 					UNITY_INITIALIZE_OUTPUT( VertexOutput, o );
 | |
| 					UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO( o );
 | |
| 
 | |
| 					o.vertex = UnityObjectToClipPos(i.vertex);
 | |
| 					o.uv = TRANSFORM_TEX( i.uv, UNITY_ACCESS_INSTANCED_PROP( Props, _MainTex ) );
 | |
| 					
 | |
| 					return o;
 | |
| 				}
 | |
| 				
 | |
| 				// MainPs ---------------------------------------------------------------------------------------------------------------------------------------------------
 | |
| 				float4 MainPS( VertexOutput i ) : SV_Target
 | |
| 				{
 | |
| 					UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO( i );
 | |
| 
 | |
| 					float4 vColor = UNITY_ACCESS_INSTANCED_PROP( Props, _Color.rgba );
 | |
| 				
 | |
| 					return vColor.rgba;
 | |
| 				}
 | |
| #else
 | |
| 				// Globals --------------------------------------------------------------------------------------------------------------------------------------------------
 | |
| 				sampler2D _MainTex;
 | |
| 				float4 _MainTex_ST;
 | |
| 				float4 _Color;
 | |
| 				
 | |
| 				// MainVs ---------------------------------------------------------------------------------------------------------------------------------------------------
 | |
| 				VertexOutput MainVS( VertexInput i )
 | |
| 				{
 | |
| 					VertexOutput o;
 | |
| #if UNITY_VERSION >= 540
 | |
| 					o.vertex = UnityObjectToClipPos(i.vertex);
 | |
| #else
 | |
| 					o.vertex = mul(UNITY_MATRIX_MVP, i.vertex);
 | |
| #endif					
 | |
| 					o.uv = TRANSFORM_TEX( i.uv, _MainTex );
 | |
| 					
 | |
| 					return o;
 | |
| 				}
 | |
| 				
 | |
| 				// MainPs ---------------------------------------------------------------------------------------------------------------------------------------------------
 | |
| 				float4 MainPS( VertexOutput i ) : SV_Target
 | |
| 				{
 | |
| 					float4 vColor = _Color.rgba;
 | |
| 				
 | |
| 					return vColor.rgba;
 | |
| 				}
 | |
| #endif
 | |
| 
 | |
| 			ENDCG
 | |
| 		}
 | |
| 	}
 | |
| }
 |