VR4RoboticArm2/VR4RoboticArm/Library/PackageCache/com.meta.xr.sdk.interaction/Runtime/Shaders/Locomotion/TransparentVertexTexture.shader
IonutMocanu 48cccc22ad Main2
2025-09-08 11:13:29 +03:00

86 lines
2.6 KiB
Plaintext

Shader "Unlit/TransparentVertexTexture"
{
Properties
{
_MainTex("Texture", 2D) = "white" {}
_Color("Color",COLOR) = (1,1,1,1)
_FadeLimit("Fade Limit",VECTOR) = (0,0,1,1)
_FadeSign("Fade Sign",Range(-1,1)) = 1
_Fade("Fade",Range(0,1)) = 1
_Highlight("Highlight Strength",Range(0,1)) = 0
_HighlightColor("Highlight Color", COLOR) = (1,1,1,1)
_OffsetFactor("Offset Factor", float) = 0
_OffsetUnits("Offset Units", float) = 0
}
SubShader
{
Tags { "RenderType"="Transparent" "Queue"="Transparent" }
LOD 100
Blend SrcAlpha OneMinusSrcAlpha
Pass
{
Offset[_OffsetFactor],[_OffsetUnits]
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
#pragma multi_compile_fwdbase nolightmap nodirlightmap nodynlightmap novertexlight
#include "UnityCG.cginc"
struct VertexInput
{
float4 vertex : POSITION;
float4 color : COLOR;
float2 uv : TEXCOORD0;
UNITY_VERTEX_INPUT_INSTANCE_ID
};
struct VertexOutput
{
float4 vertex : SV_POSITION;
float4 color : TEXCOORD1;
float2 uv : TEXCOORD0;
UNITY_VERTEX_INPUT_INSTANCE_ID
UNITY_VERTEX_OUTPUT_STEREO
};
sampler2D _MainTex;
half4 _Color;
half4 _FadeLimit;
half _FadeSign;
half _Fade;
half _Highlight;
half4 _HighlightColor;
float _OffsetFactor;
float _OffsetUnits;
VertexOutput vert (VertexInput v)
{
VertexOutput o;
UNITY_SETUP_INSTANCE_ID(v);
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
UNITY_TRANSFER_INSTANCE_ID(v, o);
o.vertex = UnityObjectToClipPos(v.vertex);
o.uv = v.uv;
o.color = lerp(v.color * _Color, _HighlightColor, _Highlight);
return o;
}
half4 frag(VertexOutput i) : SV_Target
{
half4 color = tex2D(_MainTex, i.uv) * i.color;
half lowLimit = smoothstep(_FadeLimit.x, _FadeLimit.y, i.uv.y);
half highLimit = smoothstep(_FadeLimit.z, _FadeLimit.w, i.uv.y);
color.a *= saturate(lowLimit - _FadeSign * highLimit) * _Fade;
return color;
}
ENDCG
}
}
}