[unity] Fixed Universal Render Pipeline/2D/Spine/Sprite normals being incorrect in transparent areas. Closes #1588.

This commit is contained in:
Harald Csaszar 2020-01-02 18:38:07 +01:00
parent 12897260d7
commit c1fd32abfd
2 changed files with 51 additions and 44 deletions

View File

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

View File

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