diff --git a/Engine/source/T3D/levelInfo.cpp b/Engine/source/T3D/levelInfo.cpp index bd0eb6f96..8edb6993f 100644 --- a/Engine/source/T3D/levelInfo.cpp +++ b/Engine/source/T3D/levelInfo.cpp @@ -68,7 +68,7 @@ extern ColorI gCanvasClearColor; /// @see DecalManager extern F32 gDecalBias; -extern LinearColorF gFallbackAmbient; + /// @see AccumulationVolume extern GFXTexHandle gLevelAccuMap; @@ -86,7 +86,6 @@ LevelInfo::LevelInfo() mDecalBias( 0.0015f ), mCanvasClearColor( 255, 0, 255, 255 ), mAmbientLightBlendPhase( 1.f ), - mFallbackAmbient(LinearColorF(0.1f, 0.1f, 0.1f, 1.0f)), mSoundAmbience( NULL ), mSoundDistanceModel( SFXDistanceModelLinear ), mSoundscape( NULL ) @@ -164,8 +163,6 @@ void LevelInfo::initPersistFields() addField( "ambientLightBlendCurve", TypeEaseF, Offset( mAmbientLightBlendCurve, LevelInfo ), "Interpolation curve to use for blending from one ambient light color to a different one." ); - addField("fallbackAmbient", TypeColorF, Offset(mFallbackAmbient, LevelInfo), - "Ambient Color to use if no global light source exists."); //addField( "advancedLightmapSupport", TypeBool, Offset( mAdvancedLightmapSupport, LevelInfo ), // "Enable expanded support for mixing static and dynamic lighting (more costly)" ); @@ -214,7 +211,6 @@ U32 LevelInfo::packUpdate(NetConnection *conn, U32 mask, BitStream *stream) stream->writeFlag( mAdvancedLightmapSupport ); stream->write( mAmbientLightBlendPhase ); mathWrite( *stream, mAmbientLightBlendCurve ); - stream->write(mFallbackAmbient); sfxWrite( stream, mSoundAmbience ); stream->writeInt( mSoundDistanceModel, 1 ); @@ -245,7 +241,6 @@ void LevelInfo::unpackUpdate(NetConnection *conn, BitStream *stream) mAdvancedLightmapSupport = stream->readFlag(); stream->read( &mAmbientLightBlendPhase ); mathRead( *stream, &mAmbientLightBlendCurve ); - stream->read(&mFallbackAmbient); String errorStr; if( !sfxReadAndResolve( stream, &mSoundAmbience, errorStr ) ) @@ -328,8 +323,8 @@ void LevelInfo::_updateSceneGraph() scene->setVisibleGhostDistance( mVisibleGhostDistance ); gDecalBias = mDecalBias; + // Set ambient lighting properties. - gFallbackAmbient = mFallbackAmbient; scene->setAmbientLightTransitionTime( mAmbientLightBlendPhase * 1000.f ); scene->setAmbientLightTransitionCurve( mAmbientLightBlendCurve ); diff --git a/Engine/source/T3D/levelInfo.h b/Engine/source/T3D/levelInfo.h index 084726f4e..122d7ad8d 100644 --- a/Engine/source/T3D/levelInfo.h +++ b/Engine/source/T3D/levelInfo.h @@ -78,7 +78,7 @@ class LevelInfo : public NetObject /// Interpolation for going from one global ambient color /// to a different one. EaseF mAmbientLightBlendCurve; - LinearColorF mFallbackAmbient; + /// @} /// @name Sound Properties diff --git a/Engine/source/T3D/lighting/reflectionProbe.cpp b/Engine/source/T3D/lighting/reflectionProbe.cpp index 795ac8927..17966623b 100644 --- a/Engine/source/T3D/lighting/reflectionProbe.cpp +++ b/Engine/source/T3D/lighting/reflectionProbe.cpp @@ -817,7 +817,7 @@ void ReflectionProbe::createEditorResources() void ReflectionProbe::prepRenderImage(SceneRenderState *state) { - if (!mEnabled || (!RenderProbeMgr::smRenderReflectionProbes && Con::getVariable("$Probes::Capturing", "0") == "0")) + if (!mEnabled || (!RenderProbeMgr::smRenderReflectionProbes && dStrcmp(Con::getVariable("$Probes::Capturing", "0"),"1"))) return; Point3F distVec = getRenderPosition() - state->getCameraPosition(); diff --git a/Engine/source/lighting/lightManager.cpp b/Engine/source/lighting/lightManager.cpp index 11cd361ff..57a1936f5 100644 --- a/Engine/source/lighting/lightManager.cpp +++ b/Engine/source/lighting/lightManager.cpp @@ -42,7 +42,6 @@ Signal LightManager::smActivateSignal; LightManager *LightManager::smActiveLM = NULL; -LinearColorF gFallbackAmbient; LightManager::LightManager( const char *name, const char *id ) : mName( name ), @@ -163,28 +162,19 @@ LightInfo* LightManager::getDefaultLight() { // The sun is always our default light when // when its registered. - if (mSpecialLights[LightManager::slSunLightType]) - { - mSpecialLights[LightManager::slSunLightType]->setAmbient(gFallbackAmbient); - return mSpecialLights[LightManager::slSunLightType]; - } + if ( mSpecialLights[ LightManager::slSunLightType ] ) + return mSpecialLights[ LightManager::slSunLightType ]; // Else return a dummy special light. - if (!mDefaultLight) - { + if ( !mDefaultLight ) mDefaultLight = createLightInfo(); - } - mDefaultLight->setAmbient(gFallbackAmbient); return mDefaultLight; } LightInfo* LightManager::getSpecialLight( LightManager::SpecialLightTypesEnum type, bool useDefault ) { - if (mSpecialLights[type]) - { - mSpecialLights[LightManager::slSunLightType]->setAmbient(gFallbackAmbient); + if ( mSpecialLights[type] ) return mSpecialLights[type]; - } if ( useDefault ) return getDefaultLight(); diff --git a/Engine/source/renderInstance/renderProbeMgr.cpp b/Engine/source/renderInstance/renderProbeMgr.cpp index a6aedc1b9..2203b253d 100644 --- a/Engine/source/renderInstance/renderProbeMgr.cpp +++ b/Engine/source/renderInstance/renderProbeMgr.cpp @@ -798,7 +798,7 @@ void RenderProbeMgr::render( SceneRenderState *state ) _setupPerFrameParameters(state); // Early out if nothing to draw. - if ((!RenderProbeMgr::smRenderReflectionProbes && Con::getVariable("$Probes::Capturing", "0") == "0") || (!mHasSkylight && mProbeData.effectiveProbeCount == 0)) + if ((!RenderProbeMgr::smRenderReflectionProbes && dStrcmp(Con::getVariable("$Probes::Capturing", "0"), "1")) || (!mHasSkylight && mProbeData.effectiveProbeCount == 0)) { getProbeArrayEffect()->setSkip(true); mActiveProbes.clear(); diff --git a/Templates/BaseGame/game/core/rendering/shaders/gl/lighting.glsl b/Templates/BaseGame/game/core/rendering/shaders/gl/lighting.glsl index 998dcfb46..5ed56658e 100644 --- a/Templates/BaseGame/game/core/rendering/shaders/gl/lighting.glsl +++ b/Templates/BaseGame/game/core/rendering/shaders/gl/lighting.glsl @@ -500,7 +500,7 @@ vec4 computeForwardProbes(Surface surface, float horizon = saturate( 1 + horizonOcclusion * dot(surface.R, surface.N)); horizon *= horizon; #if CAPTURING == 1 - return vec4(mix(surface.baseColor.rgb,(irradiance + specular* horizon) ,surface.metalness/2),0); + return vec4(mix((irradiance + specular* horizon),surface.baseColor.rgb,surface.metalness),0); #else return vec4((irradiance + specular* horizon) , 0);//alpha writes disabled #endif diff --git a/Templates/BaseGame/game/core/rendering/shaders/lighting.hlsl b/Templates/BaseGame/game/core/rendering/shaders/lighting.hlsl index 2f4c6af5f..66f531c83 100644 --- a/Templates/BaseGame/game/core/rendering/shaders/lighting.hlsl +++ b/Templates/BaseGame/game/core/rendering/shaders/lighting.hlsl @@ -506,7 +506,7 @@ float4 computeForwardProbes(Surface surface, float horizon = saturate( 1 + horizonOcclusion * dot(surface.R, surface.N)); horizon *= horizon; #if CAPTURING == 1 - return float4(lerp(surface.baseColor.rgb,(irradiance + specular* horizon) ,surface.metalness/2),0); + return float4(lerp((irradiance + specular* horizon),surface.baseColor.rgb,surface.metalness),0); #else return float4((irradiance + specular* horizon) , 0);//alpha writes disabled #endif diff --git a/Templates/BaseGame/game/core/rendering/shaders/lighting/advanced/gl/reflectionProbeArrayP.glsl b/Templates/BaseGame/game/core/rendering/shaders/lighting/advanced/gl/reflectionProbeArrayP.glsl index 69988e4b3..bc9f19fce 100644 --- a/Templates/BaseGame/game/core/rendering/shaders/lighting/advanced/gl/reflectionProbeArrayP.glsl +++ b/Templates/BaseGame/game/core/rendering/shaders/lighting/advanced/gl/reflectionProbeArrayP.glsl @@ -205,7 +205,7 @@ void main() float horizon = saturate( 1 + horizonOcclusion * dot(surface.R, surface.N)); horizon *= horizon; #if CAPTURING == 1 - OUT_col = vec4(mix(surface.baseColor.rgb,(irradiance + specular* horizon) ,surface.metalness/2),0); + OUT_col = vec4(mix((irradiance + specular* horizon),surface.baseColor.rgb, surface.metalness),0); #else OUT_col = vec4((irradiance + specular* horizon)*ambientColor, 0);//alpha writes disabled #endif diff --git a/Templates/BaseGame/game/core/rendering/shaders/lighting/advanced/reflectionProbeArrayP.hlsl b/Templates/BaseGame/game/core/rendering/shaders/lighting/advanced/reflectionProbeArrayP.hlsl index 741340d05..bd192f711 100644 --- a/Templates/BaseGame/game/core/rendering/shaders/lighting/advanced/reflectionProbeArrayP.hlsl +++ b/Templates/BaseGame/game/core/rendering/shaders/lighting/advanced/reflectionProbeArrayP.hlsl @@ -191,7 +191,7 @@ float4 main(PFXVertToPix IN) : SV_TARGET float horizon = saturate( 1 + horizonOcclusion * dot(surface.R, surface.N)); horizon *= horizon; #if CAPTURING == 1 - return float4(lerp(surface.baseColor.rgb,(irradiance + specular* horizon) ,surface.metalness/2),0); + return float4(lerp((irradiance + specular* horizon), surface.baseColor.rgb,surface.metalness),0); #else return float4((irradiance + specular* horizon)*ambientColor, 0);//alpha writes disabled #endif