mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-01-20 04:34:48 +00:00
Merge pull request #858 from Azaezel/alpha401/ambientFallbackClean
provide a new levelinfo. fallbackAmbient
This commit is contained in:
commit
674f75dbd0
|
|
@ -68,7 +68,7 @@ extern ColorI gCanvasClearColor;
|
|||
|
||||
/// @see DecalManager
|
||||
extern F32 gDecalBias;
|
||||
|
||||
extern LinearColorF gFallbackAmbient;
|
||||
/// @see AccumulationVolume
|
||||
extern GFXTexHandle gLevelAccuMap;
|
||||
|
||||
|
|
@ -86,6 +86,7 @@ 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 )
|
||||
|
|
@ -163,6 +164,8 @@ 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)" );
|
||||
|
||||
|
|
@ -211,6 +214,7 @@ 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 );
|
||||
|
|
@ -241,6 +245,7 @@ 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 ) )
|
||||
|
|
@ -323,8 +328,8 @@ void LevelInfo::_updateSceneGraph()
|
|||
scene->setVisibleGhostDistance( mVisibleGhostDistance );
|
||||
|
||||
gDecalBias = mDecalBias;
|
||||
|
||||
// Set ambient lighting properties.
|
||||
gFallbackAmbient = mFallbackAmbient;
|
||||
|
||||
scene->setAmbientLightTransitionTime( mAmbientLightBlendPhase * 1000.f );
|
||||
scene->setAmbientLightTransitionCurve( mAmbientLightBlendCurve );
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@
|
|||
Signal<void(const char*,bool)> LightManager::smActivateSignal;
|
||||
LightManager *LightManager::smActiveLM = NULL;
|
||||
|
||||
LinearColorF gFallbackAmbient;
|
||||
|
||||
LightManager::LightManager( const char *name, const char *id )
|
||||
: mName( name ),
|
||||
|
|
@ -162,19 +163,28 @@ LightInfo* LightManager::getDefaultLight()
|
|||
{
|
||||
// The sun is always our default light when
|
||||
// when its registered.
|
||||
if ( mSpecialLights[ LightManager::slSunLightType ] )
|
||||
return mSpecialLights[ LightManager::slSunLightType ];
|
||||
if (mSpecialLights[LightManager::slSunLightType])
|
||||
{
|
||||
mSpecialLights[LightManager::slSunLightType]->setAmbient(gFallbackAmbient);
|
||||
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] )
|
||||
if (mSpecialLights[type])
|
||||
{
|
||||
mSpecialLights[LightManager::slSunLightType]->setAmbient(gFallbackAmbient);
|
||||
return mSpecialLights[type];
|
||||
}
|
||||
|
||||
if ( useDefault )
|
||||
return getDefaultLight();
|
||||
|
|
|
|||
Loading…
Reference in a new issue