testss
This commit is contained in:
@@ -0,0 +1,115 @@
|
||||
Shader "Hidden/Light2D-Shape"
|
||||
{
|
||||
Properties
|
||||
{
|
||||
[HideInInspector] _SrcBlend("__src", Float) = 1.0
|
||||
[HideInInspector] _DstBlend("__dst", Float) = 0.0
|
||||
}
|
||||
|
||||
SubShader
|
||||
{
|
||||
Tags { "Queue" = "Transparent" "RenderType" = "Transparent" "RenderPipeline" = "UniversalPipeline" }
|
||||
|
||||
Pass
|
||||
{
|
||||
Blend[_SrcBlend][_DstBlend]
|
||||
ZWrite Off
|
||||
Cull Off
|
||||
|
||||
HLSLPROGRAM
|
||||
#pragma vertex vert
|
||||
#pragma fragment frag
|
||||
#pragma multi_compile_local SPRITE_LIGHT __
|
||||
#pragma multi_compile_local USE_NORMAL_MAP __
|
||||
#pragma multi_compile_local USE_ADDITIVE_BLENDING __
|
||||
|
||||
#include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
|
||||
#include "Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/LightingUtility.hlsl"
|
||||
|
||||
struct Attributes
|
||||
{
|
||||
float3 positionOS : POSITION;
|
||||
float4 color : COLOR;
|
||||
float2 uv : TEXCOORD0;
|
||||
};
|
||||
|
||||
struct Varyings
|
||||
{
|
||||
float4 positionCS : SV_POSITION;
|
||||
half4 color : COLOR;
|
||||
half2 uv : TEXCOORD0;
|
||||
|
||||
SHADOW_COORDS(TEXCOORD1)
|
||||
NORMALS_LIGHTING_COORDS(TEXCOORD2, TEXCOORD3)
|
||||
};
|
||||
|
||||
half _InverseHDREmulationScale;
|
||||
half4 _LightColor;
|
||||
half _FalloffDistance;
|
||||
|
||||
#ifdef SPRITE_LIGHT
|
||||
TEXTURE2D(_CookieTex); // This can either be a sprite texture uv or a falloff texture
|
||||
SAMPLER(sampler_CookieTex);
|
||||
#else
|
||||
half _FalloffIntensity;
|
||||
TEXTURE2D(_FalloffLookup);
|
||||
SAMPLER(sampler_FalloffLookup);
|
||||
#endif
|
||||
NORMALS_LIGHTING_VARIABLES
|
||||
SHADOW_VARIABLES
|
||||
|
||||
Varyings vert(Attributes attributes)
|
||||
{
|
||||
Varyings o = (Varyings)0;
|
||||
|
||||
float3 positionOS = attributes.positionOS;
|
||||
|
||||
positionOS.x = positionOS.x + _FalloffDistance * attributes.color.r;
|
||||
positionOS.y = positionOS.y + _FalloffDistance * attributes.color.g;
|
||||
|
||||
o.positionCS = TransformObjectToHClip(positionOS);
|
||||
o.color = _LightColor * _InverseHDREmulationScale;
|
||||
o.color.a = attributes.color.a;
|
||||
|
||||
#ifdef SPRITE_LIGHT
|
||||
o.uv = attributes.uv;
|
||||
#else
|
||||
o.uv = float2(o.color.a, _FalloffIntensity);
|
||||
#endif
|
||||
|
||||
float4 worldSpacePos;
|
||||
worldSpacePos.xyz = TransformObjectToWorld(positionOS);
|
||||
worldSpacePos.w = 1;
|
||||
TRANSFER_NORMALS_LIGHTING(o, worldSpacePos)
|
||||
TRANSFER_SHADOWS(o)
|
||||
|
||||
return o;
|
||||
}
|
||||
|
||||
half4 frag(Varyings i) : SV_Target
|
||||
{
|
||||
half4 color = i.color;
|
||||
#if SPRITE_LIGHT
|
||||
half4 cookie = SAMPLE_TEXTURE2D(_CookieTex, sampler_CookieTex, i.uv);
|
||||
#if USE_ADDITIVE_BLENDING
|
||||
|
||||
color *= cookie * cookie.a;
|
||||
#else
|
||||
color *= cookie;
|
||||
#endif
|
||||
#else
|
||||
#if USE_ADDITIVE_BLENDING
|
||||
color *= SAMPLE_TEXTURE2D(_FalloffLookup, sampler_FalloffLookup, i.uv).r;
|
||||
#else
|
||||
color.a = SAMPLE_TEXTURE2D(_FalloffLookup, sampler_FalloffLookup, i.uv).r;
|
||||
#endif
|
||||
#endif
|
||||
APPLY_NORMALS_LIGHTING(i, color);
|
||||
APPLY_SHADOWS(i, color, _ShadowIntensity);
|
||||
|
||||
return color;
|
||||
}
|
||||
ENDHLSL
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user