diff --git a/Engine/source/lighting/advanced/advancedLightManager.cpp b/Engine/source/lighting/advanced/advancedLightManager.cpp index 0b14a12a4..3c851cf81 100644 --- a/Engine/source/lighting/advanced/advancedLightManager.cpp +++ b/Engine/source/lighting/advanced/advancedLightManager.cpp @@ -39,6 +39,9 @@ #include "gfx/gfxCardProfile.h" #include "gfx/gfxTextureProfile.h" +#ifndef TORQUE_BASIC_LIGHTING +F32 AdvancedLightManager::smProjectedShadowFilterDistance = 40.0f; +#endif ImplementEnumType( ShadowType, "\n\n" diff --git a/Engine/source/lighting/advanced/advancedLightManager.h b/Engine/source/lighting/advanced/advancedLightManager.h index ac03bad48..ca747d8a0 100644 --- a/Engine/source/lighting/advanced/advancedLightManager.h +++ b/Engine/source/lighting/advanced/advancedLightManager.h @@ -97,6 +97,10 @@ public: LightShadowMap* findShadowMapForObject( SimObject *object ); +#ifndef TORQUE_BASIC_LIGHTING + static F32 getShadowFilterDistance() { return smProjectedShadowFilterDistance; } +#endif + protected: // LightManager @@ -138,6 +142,12 @@ protected: LightingShaderConstants* getLightingShaderConstants(GFXShaderConstBuffer* shader); +#ifndef TORQUE_BASIC_LIGHTING + /// This is used to determine the distance + /// at which the shadow filtering PostEffect + /// will be enabled for ProjectedShadow. + static F32 smProjectedShadowFilterDistance; +#endif }; #endif // _ADVANCEDLIGHTMANAGER_H_ diff --git a/Engine/source/lighting/common/projectedShadow.cpp b/Engine/source/lighting/common/projectedShadow.cpp index 1ad88cd10..2f4657018 100644 --- a/Engine/source/lighting/common/projectedShadow.cpp +++ b/Engine/source/lighting/common/projectedShadow.cpp @@ -43,7 +43,11 @@ #include "materials/materialFeatureTypes.h" #include "console/console.h" #include "postFx/postEffect.h" -#include "lighting/basic/basicLightManager.h" +#ifdef TORQUE_BASIC_LIGHTING +#include "lighting/basic/basicLightManager.h" +#else +#include "lighting/advanced/advancedLightManager.h" +#endif #include "lighting/shadowMap/shadowMatHook.h" #include "materials/materialManager.h" #include "lighting/shadowMap/lightShadowMap.h" @@ -529,8 +533,12 @@ void ProjectedShadow::_renderToTexture( F32 camDist, const TSRenderState &rdata mRenderTarget->resolve(); GFX->popActiveRenderTarget(); - // If we're close enough then filter the shadow. - if ( camDist < BasicLightManager::getShadowFilterDistance() ) + // If we're close enough then filter the shadow. +#ifdef TORQUE_BASIC_LIGHTING + if (camDist < BasicLightManager::getShadowFilterDistance()) +#else + if (camDist < AdvancedLightManager::getShadowFilterDistance()) +#endif { if ( !smShadowFilter ) {