From 51d7f3e7725c9fd1197470e9149a053b232c5e0a Mon Sep 17 00:00:00 2001 From: cosmonaut Date: Sat, 12 Dec 2020 01:23:08 -0800 Subject: [PATCH] fix diffuse lit effect not discarding transparency --- Effects/FXB/DiffuseLitSpriteEffect.fxb | 4 ++-- Effects/HLSL/DiffuseLitSpriteEffect.fx | 6 ++++++ 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Effects/FXB/DiffuseLitSpriteEffect.fxb b/Effects/FXB/DiffuseLitSpriteEffect.fxb index 6611fbc..5902373 100644 --- a/Effects/FXB/DiffuseLitSpriteEffect.fxb +++ b/Effects/FXB/DiffuseLitSpriteEffect.fxb @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:739429f89531ea53a1eebb8e19d43615af2b6d4ee80102f18dce969b8dfcc6af -size 7340 +oid sha256:cba6863140b91a4dd83f10bc7e1acaf3ab317d5a77e9deea5102723bfe805ab9 +size 7396 diff --git a/Effects/HLSL/DiffuseLitSpriteEffect.fx b/Effects/HLSL/DiffuseLitSpriteEffect.fx index bdc2504..6173e4e 100644 --- a/Effects/HLSL/DiffuseLitSpriteEffect.fx +++ b/Effects/HLSL/DiffuseLitSpriteEffect.fx @@ -98,6 +98,9 @@ float4 LightColor(float3 worldPosition, float3 worldNormal) float4 WithoutNormalMap(PixelShaderInput input) : COLOR0 { float4 tex = SAMPLE_TEXTURE(Texture, input.TexCoord); + + if (tex.a == 0.0) { discard; } + float3 normalWS = normalize(input.NormalWS); return tex * LightColor(input.PositionWS, normalWS); @@ -106,6 +109,9 @@ float4 WithoutNormalMap(PixelShaderInput input) : COLOR0 float4 WithNormalMap(PixelShaderInput input) : COLOR0 { float4 tex = SAMPLE_TEXTURE(Texture, input.TexCoord); + + if (tex.a == 0.0) { discard; } + float3 normalWS = GetNormalFromMap(input.PositionWS, input.TexCoord, input.NormalWS); return tex * LightColor(input.PositionWS, normalWS);