diff --git a/WickedEngine/wiLoader.h b/WickedEngine/wiLoader.h index 8361d4513..96c8561ef 100644 --- a/WickedEngine/wiLoader.h +++ b/WickedEngine/wiLoader.h @@ -242,7 +242,7 @@ struct Material planar_reflections = false; - alphaRef = 0.75f; + alphaRef = 1.0f; // no alpha test by default } bool IsTransparent() const { return alpha < 1.0f; } diff --git a/WickedEngine/wiRenderer.cpp b/WickedEngine/wiRenderer.cpp index 9ece76210..6c127580c 100644 --- a/WickedEngine/wiRenderer.cpp +++ b/WickedEngine/wiRenderer.cpp @@ -3980,7 +3980,15 @@ void wiRenderer::RenderMeshes(const XMFLOAT3& eye, const CulledCollection& culle } PSTYPES realPS = GetPSTYPE(shaderType, material); - GetDevice()->BindPS(pixelShaders[realPS], threadID); + if (shaderType == SHADERTYPE_SHADOW && material->alphaRef > 1.0f - 1.0f/256.0f) + { + // bypass pixel shader for non alpha tested shadows + GetDevice()->BindPS(nullptr, threadID); + } + else + { + GetDevice()->BindPS(pixelShaders[realPS], threadID); + } } else { diff --git a/WickedEngine/wiVersion.cpp b/WickedEngine/wiVersion.cpp index 9dff3f724..78ccecbc9 100644 --- a/WickedEngine/wiVersion.cpp +++ b/WickedEngine/wiVersion.cpp @@ -7,7 +7,7 @@ namespace wiVersion // minor features, major updates const int minor = 11; // minor bug fixes, alterations, refactors, updates - const int revision = 36; + const int revision = 37; long GetVersion()