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.
		
		
		
		
		
			
		
			
	
	
		
			237 lines
		
	
	
		
			7.4 KiB
		
	
	
	
		
			Plaintext
		
	
		
		
			
		
	
	
			237 lines
		
	
	
		
			7.4 KiB
		
	
	
	
		
			Plaintext
		
	
| 
								 
											1 year ago
										 
									 | 
							
								//======= Copyright (c) Valve Corporation, All rights reserved. ===============
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								// Purpose: 
							 | 
						||
| 
								 | 
							
								//
							 | 
						||
| 
								 | 
							
								//=============================================================================
							 | 
						||
| 
								 | 
							
								// UNITY_SHADER_NO_UPGRADE
							 | 
						||
| 
								 | 
							
								Shader "Valve/VR/ControllerButtonHints"
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
									Properties
							 | 
						||
| 
								 | 
							
									{
							 | 
						||
| 
								 | 
							
										_MainTex ( "Texture", 2D ) = "white" {}
							 | 
						||
| 
								 | 
							
										_Color( "Color", Color ) = ( 1, 1, 1, 1 )
							 | 
						||
| 
								 | 
							
										_SceneTint( "SceneTint", Color ) = ( 1, 1, 1, 1 )
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
										
							 | 
						||
| 
								 | 
							
									SubShader
							 | 
						||
| 
								 | 
							
									{
							 | 
						||
| 
								 | 
							
										Tags{ "Queue" = "Transparent+1" "RenderType" = "Transparent" }
							 | 
						||
| 
								 | 
							
										LOD 100
							 | 
						||
| 
								 | 
							
										Pass
							 | 
						||
| 
								 | 
							
										{
							 | 
						||
| 
								 | 
							
											// Render State ---------------------------------------------------------------------------------------------------------------------------------------------
							 | 
						||
| 
								 | 
							
											Blend Zero SrcColor // Alpha blending
							 | 
						||
| 
								 | 
							
											Cull Off
							 | 
						||
| 
								 | 
							
											ZWrite Off
							 | 
						||
| 
								 | 
							
											ZTest Off
							 | 
						||
| 
								 | 
							
											Stencil
							 | 
						||
| 
								 | 
							
											{
							 | 
						||
| 
								 | 
							
												Ref 2
							 | 
						||
| 
								 | 
							
												Comp notequal
							 | 
						||
| 
								 | 
							
												Pass replace
							 | 
						||
| 
								 | 
							
												Fail keep
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											CGPROGRAM
							 | 
						||
| 
								 | 
							
											#pragma vertex MainVS
							 | 
						||
| 
								 | 
							
											#pragma fragment MainPS
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											// Includes -------------------------------------------------------------------------------------------------------------------------------------------------
							 | 
						||
| 
								 | 
							
											#include "UnityCG.cginc"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if UNITY_VERSION >= 201810	
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											// Structs --------------------------------------------------------------------------------------------------------------------------------------------------
							 | 
						||
| 
								 | 
							
											struct VertexInput
							 | 
						||
| 
								 | 
							
											{
							 | 
						||
| 
								 | 
							
												float4 vertex : POSITION;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
												UNITY_VERTEX_INPUT_INSTANCE_ID
							 | 
						||
| 
								 | 
							
											};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											struct VertexOutput
							 | 
						||
| 
								 | 
							
											{
							 | 
						||
| 
								 | 
							
												float4 vertex : SV_POSITION;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
												UNITY_VERTEX_OUTPUT_STEREO
							 | 
						||
| 
								 | 
							
											};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											// Globals --------------------------------------------------------------------------------------------------------------------------------------------------
							 | 
						||
| 
								 | 
							
											UNITY_INSTANCING_BUFFER_START( Props )
							 | 
						||
| 
								 | 
							
												UNITY_DEFINE_INSTANCED_PROP( float4, _SceneTint )
							 | 
						||
| 
								 | 
							
											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);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
												return o;
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
											
							 | 
						||
| 
								 | 
							
											// MainPs ---------------------------------------------------------------------------------------------------------------------------------------------------
							 | 
						||
| 
								 | 
							
											float4 MainPS( VertexOutput i ) : SV_Target
							 | 
						||
| 
								 | 
							
											{
							 | 
						||
| 
								 | 
							
												UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO( i );
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
												return UNITY_ACCESS_INSTANCED_PROP( Props, _SceneTint.rgba );
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											// Structs --------------------------------------------------------------------------------------------------------------------------------------------------
							 | 
						||
| 
								 | 
							
											struct VertexInput
							 | 
						||
| 
								 | 
							
											{
							 | 
						||
| 
								 | 
							
												float4 vertex : POSITION;
							 | 
						||
| 
								 | 
							
											};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											struct VertexOutput
							 | 
						||
| 
								 | 
							
											{
							 | 
						||
| 
								 | 
							
												float4 vertex : SV_POSITION;
							 | 
						||
| 
								 | 
							
											};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											// Globals --------------------------------------------------------------------------------------------------------------------------------------------------
							 | 
						||
| 
								 | 
							
											float4 _SceneTint;
							 | 
						||
| 
								 | 
							
											
							 | 
						||
| 
								 | 
							
											// 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				
							 | 
						||
| 
								 | 
							
												return o;
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
											
							 | 
						||
| 
								 | 
							
											// MainPs ---------------------------------------------------------------------------------------------------------------------------------------------------
							 | 
						||
| 
								 | 
							
											float4 MainPS( VertexOutput i ) : SV_Target
							 | 
						||
| 
								 | 
							
											{
							 | 
						||
| 
								 | 
							
												return _SceneTint.rgba;
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
											ENDCG
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
										Pass
							 | 
						||
| 
								 | 
							
										{
							 | 
						||
| 
								 | 
							
											// Render State ---------------------------------------------------------------------------------------------------------------------------------------------
							 | 
						||
| 
								 | 
							
											Blend SrcAlpha OneMinusSrcAlpha // Alpha blending
							 | 
						||
| 
								 | 
							
											Cull Off
							 | 
						||
| 
								 | 
							
											ZWrite Off
							 | 
						||
| 
								 | 
							
											ZTest Always
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											CGPROGRAM
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											#pragma vertex MainVS
							 | 
						||
| 
								 | 
							
											#pragma fragment MainPS
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											// Includes -------------------------------------------------------------------------------------------------------------------------------------------------
							 | 
						||
| 
								 | 
							
											#include "UnityCG.cginc"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#if UNITY_VERSION >= 201810	
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											// Structs --------------------------------------------------------------------------------------------------------------------------------------------------
							 | 
						||
| 
								 | 
							
											struct VertexInput
							 | 
						||
| 
								 | 
							
											{
							 | 
						||
| 
								 | 
							
												float4 vertex : POSITION;
							 | 
						||
| 
								 | 
							
												float2 uv : TEXCOORD0;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
												UNITY_VERTEX_INPUT_INSTANCE_ID 
							 | 
						||
| 
								 | 
							
											};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											struct VertexOutput
							 | 
						||
| 
								 | 
							
											{
							 | 
						||
| 
								 | 
							
												float2 uv : TEXCOORD0;
							 | 
						||
| 
								 | 
							
												float4 vertex : SV_POSITION;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
												UNITY_VERTEX_OUTPUT_STEREO
							 | 
						||
| 
								 | 
							
											};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											// Globals --------------------------------------------------------------------------------------------------------------------------------------------------
							 | 
						||
| 
								 | 
							
											UNITY_INSTANCING_BUFFER_START( Props )
							 | 
						||
| 
								 | 
							
												UNITY_DEFINE_INSTANCED_PROP( sampler2D, _MainTex )
							 | 
						||
| 
								 | 
							
												UNITY_DEFINE_INSTANCED_PROP( float4, _MainTex_ST )
							 | 
						||
| 
								 | 
							
												UNITY_DEFINE_INSTANCED_PROP( float4, _Color )
							 | 
						||
| 
								 | 
							
											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;
							 | 
						||
| 
								 | 
							
												vColor.rgb = lerp( tex2D( UNITY_ACCESS_INSTANCED_PROP( Props, _MainTex ), i.uv).rgb, UNITY_ACCESS_INSTANCED_PROP( Props, _Color.rgb ), UNITY_ACCESS_INSTANCED_PROP( Props, _Color.a ) );
							 | 
						||
| 
								 | 
							
												vColor.a = UNITY_ACCESS_INSTANCED_PROP( Props, _Color.a );
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
												return vColor.rgba;
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
								#else
							 | 
						||
| 
								 | 
							
											// Structs --------------------------------------------------------------------------------------------------------------------------------------------------
							 | 
						||
| 
								 | 
							
											struct VertexInput
							 | 
						||
| 
								 | 
							
											{
							 | 
						||
| 
								 | 
							
												float4 vertex : POSITION;
							 | 
						||
| 
								 | 
							
												float2 uv : TEXCOORD0;
							 | 
						||
| 
								 | 
							
											};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											struct VertexOutput
							 | 
						||
| 
								 | 
							
											{
							 | 
						||
| 
								 | 
							
												float2 uv : TEXCOORD0;
							 | 
						||
| 
								 | 
							
												float4 vertex : SV_POSITION;
							 | 
						||
| 
								 | 
							
											};
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											// 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;
							 | 
						||
| 
								 | 
							
												vColor.rgb = lerp( tex2D(_MainTex, i.uv).rgb, _Color.rgb, _Color.a );
							 | 
						||
| 
								 | 
							
												vColor.a = _Color.a;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
												return vColor.rgba;
							 | 
						||
| 
								 | 
							
											}
							 | 
						||
| 
								 | 
							
								#endif
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
											ENDCG
							 | 
						||
| 
								 | 
							
										}
							 | 
						||
| 
								 | 
							
									}
							 | 
						||
| 
								 | 
							
								}
							 |