mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-02-06 23:34:53 +08:00
[unity] Fixed Universal Render Pipeline/2D/Spine/Sprite normals being incorrect in transparent areas. Closes #1588.
This commit is contained in:
parent
12897260d7
commit
c1fd32abfd
@ -170,46 +170,50 @@
|
||||
}
|
||||
|
||||
Pass
|
||||
{
|
||||
{
|
||||
Name "Unlit"
|
||||
Tags { "LightMode" = "UniversalForward" "Queue"="Transparent" "RenderType"="Transparent"}
|
||||
Tags { "LightMode" = "UniversalForward" "Queue"="Transparent" "RenderType"="Transparent"}
|
||||
|
||||
HLSLPROGRAM
|
||||
#pragma prefer_hlslcc gles
|
||||
#pragma vertex UnlitVertex
|
||||
#pragma fragment UnlitFragment
|
||||
ZWrite Off
|
||||
Cull Off
|
||||
Blend One OneMinusSrcAlpha
|
||||
|
||||
struct Attributes
|
||||
{
|
||||
float3 positionOS : POSITION;
|
||||
float4 color : COLOR;
|
||||
float2 uv : TEXCOORD0;
|
||||
};
|
||||
HLSLPROGRAM
|
||||
#pragma prefer_hlslcc gles
|
||||
#pragma vertex UnlitVertex
|
||||
#pragma fragment UnlitFragment
|
||||
|
||||
struct Varyings
|
||||
{
|
||||
float4 positionCS : SV_POSITION;
|
||||
float4 color : COLOR;
|
||||
float2 uv : TEXCOORD0;
|
||||
};
|
||||
struct Attributes
|
||||
{
|
||||
float3 positionOS : POSITION;
|
||||
float4 color : COLOR;
|
||||
float2 uv : TEXCOORD0;
|
||||
};
|
||||
|
||||
TEXTURE2D(_MainTex);
|
||||
SAMPLER(sampler_MainTex);
|
||||
float4 _MainTex_ST;
|
||||
struct Varyings
|
||||
{
|
||||
float4 positionCS : SV_POSITION;
|
||||
float4 color : COLOR;
|
||||
float2 uv : TEXCOORD0;
|
||||
};
|
||||
|
||||
Varyings UnlitVertex(Attributes attributes)
|
||||
{
|
||||
Varyings o = (Varyings)0;
|
||||
TEXTURE2D(_MainTex);
|
||||
SAMPLER(sampler_MainTex);
|
||||
float4 _MainTex_ST;
|
||||
|
||||
o.positionCS = TransformObjectToHClip(attributes.positionOS);
|
||||
o.uv = TRANSFORM_TEX(attributes.uv, _MainTex);
|
||||
o.uv = attributes.uv;
|
||||
o.color = attributes.color;
|
||||
return o;
|
||||
}
|
||||
Varyings UnlitVertex(Attributes attributes)
|
||||
{
|
||||
Varyings o = (Varyings)0;
|
||||
|
||||
float4 UnlitFragment(Varyings i) : SV_Target
|
||||
{
|
||||
o.positionCS = TransformObjectToHClip(attributes.positionOS);
|
||||
o.uv = TRANSFORM_TEX(attributes.uv, _MainTex);
|
||||
o.uv = attributes.uv;
|
||||
o.color = attributes.color;
|
||||
return o;
|
||||
}
|
||||
|
||||
float4 UnlitFragment(Varyings i) : SV_Target
|
||||
{
|
||||
half4 tex = SAMPLE_TEXTURE2D(_MainTex, sampler_MainTex, i.uv);
|
||||
half4 main;
|
||||
#if defined(_STRAIGHT_ALPHA_INPUT)
|
||||
@ -219,10 +223,10 @@
|
||||
#endif
|
||||
main.a = tex.a * i.color.a;
|
||||
|
||||
return main;
|
||||
}
|
||||
ENDHLSL
|
||||
}
|
||||
return main;
|
||||
}
|
||||
ENDHLSL
|
||||
}
|
||||
}
|
||||
FallBack "Universal Render Pipeline/2D/Sprite-Lit-Default"
|
||||
}
|
||||
|
||||
@ -111,12 +111,15 @@ Shader "Universal Render Pipeline/2D/Spine/Sprite"
|
||||
}
|
||||
|
||||
Pass
|
||||
{
|
||||
Tags { "LightMode" = "NormalsRendering"}
|
||||
HLSLPROGRAM
|
||||
#pragma prefer_hlslcc gles
|
||||
#pragma vertex NormalsRenderingVertex
|
||||
#pragma fragment NormalsRenderingFragment
|
||||
{
|
||||
Tags { "LightMode" = "NormalsRendering"}
|
||||
|
||||
Blend SrcAlpha OneMinusSrcAlpha
|
||||
|
||||
HLSLPROGRAM
|
||||
#pragma prefer_hlslcc gles
|
||||
#pragma vertex NormalsRenderingVertex
|
||||
#pragma fragment NormalsRenderingFragment
|
||||
|
||||
// -------------------------------------
|
||||
// Material Keywords
|
||||
@ -138,8 +141,8 @@ Shader "Universal Render Pipeline/2D/Spine/Sprite"
|
||||
|
||||
#include "Include/Spine-Sprite-NormalsPass-URP-2D.hlsl"
|
||||
|
||||
ENDHLSL
|
||||
}
|
||||
ENDHLSL
|
||||
}
|
||||
|
||||
UsePass "Universal Render Pipeline/2D/Spine/Skeleton Lit/UNLIT"
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user