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
|
|
}
|
|
}
|
|
}
|
|
|