141 lines
		
	
	
		
			6.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			141 lines
		
	
	
		
			6.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| /************************************************************************************
 | |
| Copyright : Copyright (c) Facebook Technologies, LLC and its affiliates. All rights reserved.
 | |
| 
 | |
| Your use of this SDK or tool is subject to the Oculus SDK License Agreement, available at
 | |
| https://developer.oculus.com/licenses/oculussdk/
 | |
| 
 | |
| Unless required by applicable law or agreed to in writing, the Utilities SDK distributed
 | |
| under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
 | |
| ANY KIND, either express or implied. See the License for the specific language governing
 | |
| permissions and limitations under the License.
 | |
| ************************************************************************************/
 | |
| 
 | |
| Shader "Interaction/OculusHandCursor"
 | |
| {
 | |
|     Properties
 | |
|     {
 | |
|         _OutlineWidth("OutlineWidth", Range( 0 , 0.4)) = 0.03
 | |
|         _CenterSize("Center Size", Range( 0 , 0.5)) = 0.15
 | |
|         _Color("Inner Color", Color) = (0,0,0,0)
 | |
|         _OutlineColor("OutlineColor", Color) = (0,0.4410214,1,0)
 | |
|         _Alpha("Alpha", Range( 0 , 1)) = 0
 | |
|         _RadialGradientIntensity("RadialGradientIntensity", Range( 0 , 1)) = 0
 | |
|         _RadialGradientScale("RadialGradientScale", Range( 0 , 1)) = 1
 | |
|         _RadialGradientBackgroundOpacity("RadialGradientBackgroundOpacity", Range( 0 , 1)) = 0.1
 | |
|         _RadialGradientOpacity("RadialGradientOpacity", Range( 0 , 1)) = 0.8550259
 | |
|         [HideInInspector] _texcoord( "", 2D ) = "white" {}
 | |
|         [HideInInspector] __dirty( "", Int ) = 1
 | |
|     }
 | |
| 
 | |
|     SubShader
 | |
|     {
 | |
|         Tags{ "RenderType" = "Transparent"  "Queue" = "Transparent+10" "IgnoreProjector" = "True"  }
 | |
|         Cull Off
 | |
|         ZTest LEqual
 | |
|         ZWrite Off
 | |
|         Blend SrcAlpha OneMinusSrcAlpha
 | |
| 
 | |
|         Offset -5, -5
 | |
|         Pass
 | |
|         {
 | |
|             CGPROGRAM
 | |
|             #pragma vertex vert
 | |
| #pragma fragment frag
 | |
| 
 | |
| #include "UnityCG.cginc"
 | |
| 
 | |
|             uniform float _RadialGradientScale;
 | |
|             uniform float _RadialGradientOpacity;
 | |
|             uniform float _RadialGradientIntensity;
 | |
|             uniform float _RadialGradientBackgroundOpacity;
 | |
|             uniform float _OutlineWidth;
 | |
|             uniform float4 _Color;
 | |
|             uniform float4 _OutlineColor;
 | |
|             uniform float _CenterSize;
 | |
|             uniform float _Alpha;
 | |
| 
 | |
|             struct appdata
 | |
|             {
 | |
|                 float4 vertex : POSITION;
 | |
|                 float2 uv_texcoord : TEXCOORD0;
 | |
|                 UNITY_VERTEX_INPUT_INSTANCE_ID
 | |
|             };
 | |
| 
 | |
|             struct v2f
 | |
|             {
 | |
|                 float2 uv_texcoord : TEXCOORD0;
 | |
|                 float4 vertex : SV_POSITION;
 | |
|                 UNITY_VERTEX_OUTPUT_STEREO
 | |
|             };
 | |
| 
 | |
|             v2f vert(appdata v)
 | |
|             {
 | |
|                 v2f o;
 | |
|                 UNITY_SETUP_INSTANCE_ID(v);
 | |
|                 UNITY_INITIALIZE_OUTPUT(v2f, o);
 | |
|                 UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
 | |
|                 o.vertex = UnityObjectToClipPos(v.vertex);
 | |
|                 o.uv_texcoord = v.uv_texcoord;
 | |
|                 return o;
 | |
|             }
 | |
| 
 | |
|             fixed4 frag(v2f i) : SV_Target
 | |
|             {
 | |
|                 float RadialGradientScaleRaw149 = _RadialGradientScale;
 | |
|                 float RadialGradientScale94 = (0.16 + (_RadialGradientScale - 0.0) * (0.45 - 0.16) / (1.0 - 0.0));
 | |
|                 float temp_output_1_0_g49 = ( 1.0 - ( ( distance( i.uv_texcoord , float2( 0.5,0.5 ) ) * 1.0 ) / RadialGradientScale94 ) );
 | |
|                 float RadialGradientIntensity96 = (5.0 + (_RadialGradientIntensity - 0.0) * (1.5 - 5.0) / (1.0 - 0.0));
 | |
|                 float ifLocalVar12_g49 = 0;
 | |
|                 if( temp_output_1_0_g49 <= 0.0 )
 | |
|                     ifLocalVar12_g49 = 1.0;
 | |
|                 else
 | |
|                     ifLocalVar12_g49 = ( 1.0 / pow( 2.718282 , ( temp_output_1_0_g49 * RadialGradientIntensity96 ) ) );
 | |
|                 float temp_output_1_0_g47 = ( 1.0 - ( ( distance( i.uv_texcoord , float2( 0.5,0.5 ) ) * 1.0 ) / RadialGradientScale94 ) );
 | |
|                 float RadialDensity131 = 70.0;
 | |
|                 float ifLocalVar12_g47 = 0;
 | |
|                 if( temp_output_1_0_g47 <= 0.0 )
 | |
|                     ifLocalVar12_g47 = 1.0;
 | |
|                 else
 | |
|                     ifLocalVar12_g47 = ( 1.0 / pow( 2.718282 , ( temp_output_1_0_g47 * RadialDensity131 ) ) );
 | |
|                 float temp_output_75_0 = ( 1.0 - ifLocalVar12_g47 );
 | |
|                 float RadialGradient102 = saturate( ( ( _RadialGradientOpacity * ( ( 1.0 - ( 1.0 - ifLocalVar12_g49 ) ) - ( 1.0 - temp_output_75_0 ) ) ) + ( temp_output_75_0 * _RadialGradientBackgroundOpacity ) ) );
 | |
|                 float temp_output_1_0_g77 = ( 1.0 - ( ( distance( i.uv_texcoord , float2( 0.5,0.5 ) ) * 1.0 ) / ( RadialGradientScale94 + _OutlineWidth ) ) );
 | |
|                 float ifLocalVar12_g77 = 0;
 | |
|                 if( temp_output_1_0_g77 <= 0.0 )
 | |
|                     ifLocalVar12_g77 = 1.0;
 | |
|                 else
 | |
|                     ifLocalVar12_g77 = ( 1.0 / pow( 2.718282 , ( temp_output_1_0_g77 * 20.0 ) ) );
 | |
|                 float4 RadialGradientWithOutline147 = ( RadialGradient102 + ( ( ( 1.0 - ifLocalVar12_g77 ) - temp_output_75_0 ) * _OutlineColor ) );
 | |
|                 float temp_output_1_0_g81 = ( 1.0 - ( ( distance( i.uv_texcoord , float2( 0.5,0.5 ) ) * 1.0 ) / _CenterSize ) );
 | |
|                 float RadialDensityOutline189 = 20.0;
 | |
|                 float ifLocalVar12_g81 = 0;
 | |
|                 if( temp_output_1_0_g81 <= 0.0 )
 | |
|                     ifLocalVar12_g81 = 1.0;
 | |
|                 else
 | |
|                     ifLocalVar12_g81 = ( 1.0 / pow( 2.718282 , ( temp_output_1_0_g81 * RadialDensityOutline189 ) ) );
 | |
|                 float temp_output_1_0_g79 = ( 1.0 - ( ( distance( i.uv_texcoord , float2( 0.5,0.5 ) ) * 1.0 ) / ( _CenterSize + 0.06 ) ) );
 | |
|                 float ifLocalVar12_g79 = 0;
 | |
|                 if( temp_output_1_0_g79 <= 0.0 )
 | |
|                     ifLocalVar12_g79 = 1.0;
 | |
|                 else
 | |
|                     ifLocalVar12_g79 = ( 1.0 / pow( 2.718282 , ( temp_output_1_0_g79 * RadialDensityOutline189 ) ) );
 | |
|                 float4 OutlineColor183 = _OutlineColor;
 | |
|                 float4 CenterDot143 = ( ( 1.0 - ifLocalVar12_g81 ) + ( ( 1.0 - ifLocalVar12_g79 ) * OutlineColor183 ) );
 | |
|                 float4 ifLocalVar29 = 0;
 | |
|                 if( RadialGradientScaleRaw149 <= 0.1 )
 | |
|                     ifLocalVar29 = CenterDot143;
 | |
|                 else
 | |
|                     ifLocalVar29 = RadialGradientWithOutline147;
 | |
|                 float4 Emission151 = ifLocalVar29 * _Color;
 | |
| 
 | |
|                 float Opacity152 = ((ifLocalVar29).a * _Alpha);
 | |
|                 if (Opacity152 < 0.01)
 | |
|                     discard;
 | |
|                 return float4 (Emission151.rgb, Opacity152);
 | |
|             }
 | |
|             ENDCG
 | |
|         }
 | |
|     }
 | |
|     Fallback "Diffuse"
 | |
| }
 |