169 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			GLSL
		
	
	
	
	
	
			
		
		
	
	
			169 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			GLSL
		
	
	
	
	
	
|  /************************************************************************************
 | |
| 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/OculusHand"
 | |
| {
 | |
|     Properties
 | |
|     {
 | |
|         [Header(General)]
 | |
|         _ColorTop("Color Top", Color) = (0.1960784, 0.2039215, 0.2117647, 1)
 | |
|         _ColorBottom("Color Bottom", Color) = (0.1215686, 0.1254902, 0.1294117, 1)
 | |
|         _FingerGlowColor("Finger Glow Color", Color) = (1,1,1,1)
 | |
|         _Opacity("Opacity", Range(0 , 1)) = 0.8
 | |
| 
 | |
|         [Header(Fresnel)]
 | |
|         _FresnelPower("FresnelPower", Range(0 , 5)) = 0.16
 | |
| 
 | |
|         [Header(Outline)]
 | |
|         _OutlineColor("Outline Color", Color) = (0.5377358,0.5377358,0.5377358,1)
 | |
|         _OutlineJointColor("Outline Joint Error Color", Color) = (1,0,0,1)
 | |
|         _OutlineWidth("Outline Width", Range(0 , 0.005)) = 0.00134
 | |
|         _OutlineOpacity("Outline Opacity", Range(0 , 1)) = 0.4
 | |
| 
 | |
|         [Header(Wrist)]
 | |
|         _WristFade("Wrist Fade", Range(0 , 1)) = 0.5
 | |
| 
 | |
|         [Header(Finger Glow)]
 | |
|         _FingerGlowMask("Finger Glow Mask", 2D) = "white" {}
 | |
|         [Toggle(CONFIDENCE)] _EnableConfidence("Show Low Confidence", Float) = 0
 | |
| 
 | |
|         [HideInInspector] _texcoord("", 2D) = "white" {}
 | |
|         [HideInInspector] _ThumbGlowValue("", Float) = 0
 | |
|         [HideInInspector] _IndexGlowValue("", Float) = 0
 | |
|         [HideInInspector] _MiddleGlowValue("", Float) = 0
 | |
|         [HideInInspector] _RingGlowValue("", Float) = 0
 | |
|         [HideInInspector] _PinkyGlowValue("", Float) = 0        
 | |
|     }
 | |
| 
 | |
|     CGINCLUDE
 | |
|     #include "Lighting.cginc"
 | |
|     
 | |
|     #pragma target 3.0
 | |
|     
 | |
|     // CBUFFER named UnityPerMaterial, SRP can cache the material properties between frames and reduce significantly the cost of each drawcall.
 | |
|     CBUFFER_START(UnityPerMaterial)			
 | |
|         // General
 | |
|         uniform float4 _ColorTop;
 | |
|         uniform float4 _ColorBottom;
 | |
|         uniform float _Opacity;
 | |
|         uniform float _FresnelPower;
 | |
|     
 | |
|         // Outline
 | |
|         uniform float4 _OutlineColor;
 | |
|         uniform half4 _OutlineJointColor;
 | |
|         uniform float _OutlineWidth;
 | |
|         uniform float _OutlineOpacity;
 | |
|     
 | |
|         // Wrist
 | |
|         uniform half _WristFade;
 | |
|     
 | |
|         // Finger Glow
 | |
|         uniform sampler2D _FingerGlowMask;
 | |
|         uniform float4 _FingerGlowColor;
 | |
|     
 | |
|         uniform float _ThumbGlowValue;
 | |
|         uniform float _IndexGlowValue;
 | |
|         uniform float _MiddleGlowValue;
 | |
|         uniform float _RingGlowValue;
 | |
|         uniform float _PinkyGlowValue;
 | |
|     
 | |
|         uniform half _JointsGlow[18];
 | |
|     CBUFFER_END
 | |
|     
 | |
|     ENDCG
 | |
| 
 | |
|     SubShader
 | |
|     {
 | |
|         Tags { "RenderType" = "Transparent" "Queue" = "Transparent" "IgnoreProjector" = "True" }
 | |
|         
 | |
|         Cull Back
 | |
|         AlphaToMask Off
 | |
| 
 | |
|         Pass
 | |
|         {
 | |
|             Name "Depth"
 | |
|             ZWrite On
 | |
|             ColorMask 0             
 | |
|         }
 | |
|         
 | |
|         Pass
 | |
|         {
 | |
|             PackageRequirements { "com.unity.render-pipelines.universal": "[10.8.1,10.10.0]" }
 | |
|             
 | |
|             Name "Outline-URP-2020"
 | |
|             Tags { "LightMode" = "LightweightForward" "RenderType" = "Transparent" "Queue" = "Transparent" "IgnoreProjector" = "True" "RenderPipeline" = "UniversalPipeline" }
 | |
|             
 | |
|             Cull Front
 | |
|             Blend SrcAlpha OneMinusSrcAlpha
 | |
| 
 | |
|             CGPROGRAM
 | |
|             #include "OculusHandOutlineCG.cginc"            
 | |
|             ENDCG
 | |
|         }
 | |
| 
 | |
|         Pass
 | |
|         {
 | |
|             PackageRequirements { "com.unity.render-pipelines.universal": "12.1.7" }
 | |
|             
 | |
|             Name "Outline-URP-2021+"
 | |
|             Tags { "LightMode" = "UniversalForwardOnly" "RenderType" = "Transparent" "Queue" = "Transparent" "IgnoreProjector" = "True" "RenderPipeline" = "UniversalPipeline" }
 | |
|             
 | |
|             Cull Front
 | |
|             Blend SrcAlpha OneMinusSrcAlpha
 | |
| 
 | |
|             CGPROGRAM
 | |
|             #include "OculusHandOutlineCG.cginc"            
 | |
|             ENDCG
 | |
|         }
 | |
|             
 | |
|         Pass
 | |
|         {
 | |
|             Name "Outline-DRP"
 | |
|             Tags { "RenderType" = "Transparent" "Queue" = "Transparent" "IgnoreProjector" = "True" }
 | |
|             
 | |
|             Cull Front
 | |
|             Blend SrcAlpha OneMinusSrcAlpha
 | |
| 
 | |
|             CGPROGRAM
 | |
|             #include "OculusHandOutlineCG.cginc"            
 | |
|             ENDCG
 | |
|         }
 | |
|         
 | |
|         Pass
 | |
|         {
 | |
|             Name "Interior-URP"
 | |
|             Tags { "LightMode" = "UniversalForward" "RenderType" = "Transparent" "Queue" = "Transparent" "IgnoreProjector" = "True" "IsEmissive" = "true" }
 | |
|             
 | |
|             Blend SrcAlpha OneMinusSrcAlpha
 | |
|             ZWrite Off
 | |
| 
 | |
|             CGPROGRAM
 | |
|             #include "OculusHandInteriorCG.cginc"
 | |
|             ENDCG
 | |
|         } 
 | |
| 
 | |
|         Pass
 | |
|         {
 | |
|             Name "Interior-DRP"
 | |
|             Tags { "RenderType" = "MaskedOutline" "Queue" = "Transparent" "IgnoreProjector" = "True" "IsEmissive" = "true" }
 | |
|             
 | |
|             Blend SrcAlpha OneMinusSrcAlpha
 | |
|             ZWrite Off
 | |
|             
 | |
|             CGPROGRAM
 | |
|             #include "OculusHandInteriorCG.cginc"
 | |
|             ENDCG
 | |
|         }
 | |
|     }
 | |
| }
 | |
| 
 |