mirror of
https://github.com/TorqueGameEngines/Torque3D.git
synced 2026-03-04 21:10:32 +00:00
Merge pull request #319 from Areloch/NewLightingOptions
Implements new shape fadeout and lighting fade/max lights/shadows pref options into the options menu
This commit is contained in:
commit
d160e3f020
2 changed files with 149 additions and 25 deletions
|
|
@ -100,6 +100,61 @@ new SimGroup( MeshQualityGroup )
|
|||
};
|
||||
};
|
||||
|
||||
new SimGroup( MeshDrawDistQualityGroup )
|
||||
{
|
||||
class = "GraphicsOptionsMenuGroup";
|
||||
|
||||
new ArrayObject()
|
||||
{
|
||||
class = "GraphicsQualityLevel";
|
||||
caseSensitive = true;
|
||||
|
||||
displayName = "High";
|
||||
|
||||
key["$pref::useStaticObjectFade"] = false;
|
||||
key["$pref::staticObjectFadeStart"] = 75;
|
||||
key["$pref::staticObjectFadeEnd"] = 100;
|
||||
key["$pref::staticObjectUnfadeableSize"] = 75;
|
||||
|
||||
};
|
||||
new ArrayObject( )
|
||||
{
|
||||
class = "GraphicsQualityLevel";
|
||||
caseSensitive = true;
|
||||
|
||||
displayName = "Medium";
|
||||
|
||||
key["$pref::useStaticObjectFade"] = true;
|
||||
key["$pref::staticObjectFadeStart"] = 75;
|
||||
key["$pref::staticObjectFadeEnd"] = 100;
|
||||
key["$pref::staticObjectUnfadeableSize"] = 75;
|
||||
};
|
||||
new ArrayObject()
|
||||
{
|
||||
class = "GraphicsQualityLevel";
|
||||
caseSensitive = true;
|
||||
|
||||
displayName = "Low";
|
||||
|
||||
key["$pref::useStaticObjectFade"] = true;
|
||||
key["$pref::staticObjectFadeStart"] = 50;
|
||||
key["$pref::staticObjectFadeEnd"] = 75;
|
||||
key["$pref::staticObjectUnfadeableSize"] = 100;
|
||||
};
|
||||
new ArrayObject()
|
||||
{
|
||||
class = "GraphicsQualityLevel";
|
||||
caseSensitive = true;
|
||||
|
||||
displayName = "Lowest";
|
||||
|
||||
key["$pref::useStaticObjectFade"] = true;
|
||||
key["$pref::staticObjectFadeStart"] = 25;
|
||||
key["$pref::staticObjectFadeEnd"] = 50;
|
||||
key["$pref::staticObjectUnfadeableSize"] = 200;
|
||||
};
|
||||
};
|
||||
|
||||
new SimGroup( TextureQualityGroup )
|
||||
{
|
||||
class = "GraphicsOptionsMenuGroup";
|
||||
|
|
@ -294,6 +349,8 @@ new SimGroup( ShadowQualityList )
|
|||
key["$pref::lightManager"] = "Advanced Lighting";
|
||||
key["$pref::Shadows::disable"] = false;
|
||||
key["$pref::Shadows::textureScalar"] = 1.0;
|
||||
key["$pref::PSSM::detailAdjustScale"] = 1.0;
|
||||
key["$pref::allowLocalLightShadows"] = true;
|
||||
};
|
||||
new ArrayObject()
|
||||
{
|
||||
|
|
@ -305,6 +362,8 @@ new SimGroup( ShadowQualityList )
|
|||
key["$pref::lightManager"] = "Advanced Lighting";
|
||||
key["$pref::Shadows::disable"] = false;
|
||||
key["$pref::Shadows::textureScalar"] = 0.5;
|
||||
key["$pref::PSSM::detailAdjustScale"] = 0.5;
|
||||
key["$pref::allowLocalLightShadows"] = true;
|
||||
};
|
||||
new ArrayObject()
|
||||
{
|
||||
|
|
@ -316,6 +375,8 @@ new SimGroup( ShadowQualityList )
|
|||
key["$pref::lightManager"] = "Advanced Lighting";
|
||||
key["$pref::Shadows::disable"] = false;
|
||||
key["$pref::Shadows::textureScalar"] = 0.25;
|
||||
key["$pref::PSSM::detailAdjustScale"] = 0.25;
|
||||
key["$pref::allowLocalLightShadows"] = false;
|
||||
|
||||
};
|
||||
new ArrayObject()
|
||||
|
|
@ -328,6 +389,7 @@ new SimGroup( ShadowQualityList )
|
|||
key["$pref::lightManager"] = "Advanced Lighting";
|
||||
key["$pref::Shadows::disable"] = true;
|
||||
key["$pref::Shadows::textureScalar"] = 0.5;
|
||||
key["$pref::allowLocalLightShadows"] = false;
|
||||
};
|
||||
};
|
||||
|
||||
|
|
@ -342,7 +404,7 @@ new SimGroup( ShadowDistanceList )
|
|||
|
||||
displayName = "Highest";
|
||||
|
||||
key["$pref::Shadows::drawDistance"] = 2;
|
||||
key["$pref::Shadows::drawDistance"] = 1;
|
||||
};
|
||||
new ArrayObject()
|
||||
{
|
||||
|
|
@ -351,7 +413,7 @@ new SimGroup( ShadowDistanceList )
|
|||
|
||||
displayName = "High";
|
||||
|
||||
key["$pref::Shadows::drawDistance"] = 1.5;
|
||||
key["$pref::Shadows::drawDistance"] = 0.75;
|
||||
};
|
||||
new ArrayObject()
|
||||
{
|
||||
|
|
@ -360,7 +422,7 @@ new SimGroup( ShadowDistanceList )
|
|||
|
||||
displayName = "Medium";
|
||||
|
||||
key["$pref::Shadows::drawDistance"] = 1;
|
||||
key["$pref::Shadows::drawDistance"] = 0.5;
|
||||
};
|
||||
new ArrayObject()
|
||||
{
|
||||
|
|
@ -369,7 +431,7 @@ new SimGroup( ShadowDistanceList )
|
|||
|
||||
displayName = "Low";
|
||||
|
||||
key["$pref::Shadows::drawDistance"] = 0.5;
|
||||
key["$pref::Shadows::drawDistance"] = 0.25;
|
||||
};
|
||||
new ArrayObject()
|
||||
{
|
||||
|
|
@ -378,10 +440,68 @@ new SimGroup( ShadowDistanceList )
|
|||
|
||||
displayName = "Lowest";
|
||||
|
||||
key["$pref::Shadows::drawDistance"] = 0.25;
|
||||
key["$pref::Shadows::drawDistance"] = 0.1;
|
||||
};
|
||||
};
|
||||
|
||||
new SimGroup( LightingQualityList )
|
||||
{
|
||||
class = "GraphicsOptionsMenuGroup";
|
||||
|
||||
new ArrayObject()
|
||||
{
|
||||
class = "GraphicsQualityLevel";
|
||||
caseSensitive = true;
|
||||
|
||||
displayName = "High";
|
||||
|
||||
key["$pref::maximumNumOfLights"] = -1;
|
||||
key["$pref::useLightFade"] = false;
|
||||
key["$pref::lightFadeStart"] = 50;
|
||||
key["$pref::lightFadeEnd"] = 75;
|
||||
};
|
||||
|
||||
new ArrayObject()
|
||||
{
|
||||
class = "GraphicsQualityLevel";
|
||||
caseSensitive = true;
|
||||
|
||||
displayName = "High";
|
||||
|
||||
key["$pref::maximumNumOfLights"] = 15;
|
||||
key["$pref::useLightFade"] = true;
|
||||
key["$pref::lightFadeStart"] = 50;
|
||||
key["$pref::lightFadeEnd"] = 75;
|
||||
};
|
||||
|
||||
new ArrayObject()
|
||||
{
|
||||
class = "GraphicsQualityLevel";
|
||||
caseSensitive = true;
|
||||
|
||||
displayName = "Medium";
|
||||
|
||||
key["$pref::maximumNumOfLights"] = 10;
|
||||
key["$pref::useLightFade"] = true;
|
||||
key["$pref::lightFadeStart"] = 25;
|
||||
key["$pref::lightFadeEnd"] = 50;
|
||||
};
|
||||
|
||||
new ArrayObject()
|
||||
{
|
||||
class = "GraphicsQualityLevel";
|
||||
caseSensitive = true;
|
||||
|
||||
displayName = "Low";
|
||||
|
||||
key["$pref::maximumNumOfLights"] = 5;
|
||||
key["$pref::useLightFade"] = true;
|
||||
key["$pref::lightFadeStart"] = 10;
|
||||
key["$pref::lightFadeEnd"] = 25;
|
||||
|
||||
};
|
||||
};
|
||||
|
||||
new SimGroup( SoftShadowList )
|
||||
{
|
||||
class = "GraphicsOptionsMenuGroup";
|
||||
|
|
@ -426,7 +546,7 @@ new SimGroup( LightDistanceList )
|
|||
|
||||
displayName = "Highest";
|
||||
|
||||
key["$pref::Lights::drawDistance"] = 2;
|
||||
key["$pref::Lights::drawDistance"] = 1;
|
||||
};
|
||||
new ArrayObject()
|
||||
{
|
||||
|
|
@ -435,7 +555,7 @@ new SimGroup( LightDistanceList )
|
|||
|
||||
displayName = "High";
|
||||
|
||||
key["$pref::Lights::drawDistance"] = 1.5;
|
||||
key["$pref::Lights::drawDistance"] = 0.75;
|
||||
};
|
||||
new ArrayObject()
|
||||
{
|
||||
|
|
@ -444,7 +564,7 @@ new SimGroup( LightDistanceList )
|
|||
|
||||
displayName = "Medium";
|
||||
|
||||
key["$pref::Lights::drawDistance"] = 1;
|
||||
key["$pref::Lights::drawDistance"] = 0.5;
|
||||
};
|
||||
new ArrayObject()
|
||||
{
|
||||
|
|
@ -453,7 +573,7 @@ new SimGroup( LightDistanceList )
|
|||
|
||||
displayName = "Low";
|
||||
|
||||
key["$pref::Lights::drawDistance"] = 0.5;
|
||||
key["$pref::Lights::drawDistance"] = 0.25;
|
||||
};
|
||||
new ArrayObject()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -279,9 +279,11 @@ function OptionsMenu::populateGraphicsSettingsList(%this)
|
|||
%highMedLow = "Low\tMedium\tHigh";
|
||||
%anisoFilter = "Off\t4\t8\t16";
|
||||
%aaFilter = "Off\t1\t2\t4";
|
||||
OptionsMenuSettingsList.addOptionRow("Lighting Quality", getQualityLevels(LightingQualityList), false, "", -1, -30, true, "Amount and drawdistance of local lights", getCurrentQualityLevel(LightingQualityList));
|
||||
OptionsMenuSettingsList.addOptionRow("Shadow Quality", getQualityLevels(ShadowQualityList), false, "", -1, -30, true, "Shadow revolution quality", getCurrentQualityLevel(ShadowQualityList));
|
||||
OptionsMenuSettingsList.addOptionRow("Soft Shadow Quality", getQualityLevels(SoftShadowList), false, "", -1, -30, true, "Amount of softening applied to shadowmaps", getCurrentQualityLevel(SoftShadowList));
|
||||
OptionsMenuSettingsList.addOptionRow("Mesh Quality", getQualityLevels(MeshQualityGroup), false, "", -1, -30, true, "Fidelity of rendering of mesh objects", getCurrentQualityLevel(MeshQualityGroup));
|
||||
OptionsMenuSettingsList.addOptionRow("Object Draw Distance", getQualityLevels(MeshDrawDistQualityGroup), false, "", -1, -30, true, "Dictates if and when static objects fade out in the distance", getCurrentQualityLevel(MeshDrawDistQualityGroup));
|
||||
OptionsMenuSettingsList.addOptionRow("Texture Quality", getQualityLevels(TextureQualityGroup), false, "", -1, -30, true, "Fidelity of textures", getCurrentQualityLevel(TextureQualityGroup));
|
||||
OptionsMenuSettingsList.addOptionRow("Terrain Quality", getQualityLevels(TerrainQualityGroup), false, "", -1, -30, true, "Quality level of terrain objects", getCurrentQualityLevel(TerrainQualityGroup));
|
||||
OptionsMenuSettingsList.addOptionRow("Decal Lifetime", getQualityLevels(DecalLifetimeGroup), false, "", -1, -30, true, "How long decals are rendered", getCurrentQualityLevel(DecalLifetimeGroup));
|
||||
|
|
@ -301,15 +303,17 @@ function OptionsMenu::populateGraphicsSettingsList(%this)
|
|||
|
||||
function OptionsMenu::applyGraphicsSettings(%this)
|
||||
{
|
||||
ShadowQualityList.applySetting(OptionsMenuSettingsList.getCurrentOption(0));
|
||||
SoftShadowList.applySetting(OptionsMenuSettingsList.getCurrentOption(1));
|
||||
LightingQualityList.applySetting(OptionsMenuSettingsList.getCurrentOption(0));
|
||||
ShadowQualityList.applySetting(OptionsMenuSettingsList.getCurrentOption(1));
|
||||
SoftShadowList.applySetting(OptionsMenuSettingsList.getCurrentOption(2));
|
||||
|
||||
MeshQualityGroup.applySetting(OptionsMenuSettingsList.getCurrentOption(2));
|
||||
TextureQualityGroup.applySetting(OptionsMenuSettingsList.getCurrentOption(3));
|
||||
TerrainQualityGroup.applySetting(OptionsMenuSettingsList.getCurrentOption(4));
|
||||
DecalLifetimeGroup.applySetting(OptionsMenuSettingsList.getCurrentOption(5));
|
||||
GroundCoverDensityGroup.applySetting(OptionsMenuSettingsList.getCurrentOption(6));
|
||||
ShaderQualityGroup.applySetting(OptionsMenuSettingsList.getCurrentOption(7));
|
||||
MeshQualityGroup.applySetting(OptionsMenuSettingsList.getCurrentOption(3));
|
||||
MeshDrawDistQualityGroup.applySetting(OptionsMenuSettingsList.getCurrentOption(4));
|
||||
TextureQualityGroup.applySetting(OptionsMenuSettingsList.getCurrentOption(5));
|
||||
TerrainQualityGroup.applySetting(OptionsMenuSettingsList.getCurrentOption(6));
|
||||
DecalLifetimeGroup.applySetting(OptionsMenuSettingsList.getCurrentOption(7));
|
||||
GroundCoverDensityGroup.applySetting(OptionsMenuSettingsList.getCurrentOption(8));
|
||||
ShaderQualityGroup.applySetting(OptionsMenuSettingsList.getCurrentOption(9));
|
||||
|
||||
//Update Textures
|
||||
reloadTextures();
|
||||
|
|
@ -319,23 +323,23 @@ function OptionsMenu::applyGraphicsSettings(%this)
|
|||
// if its already set or if its not compatible.
|
||||
//setLightManager( $pref::lightManager );
|
||||
|
||||
$pref::PostFX::EnableSSAO = convertOptionToBool(OptionsMenuSettingsList.getCurrentOption(12));
|
||||
$pref::PostFX::EnableDOF = convertOptionToBool(OptionsMenuSettingsList.getCurrentOption(13));
|
||||
$pref::PostFX::EnableVignette = convertOptionToBool(OptionsMenuSettingsList.getCurrentOption(14));
|
||||
$pref::PostFX::EnableLightRays = convertOptionToBool(OptionsMenuSettingsList.getCurrentOption(15));
|
||||
$pref::PostFX::EnableSSAO = convertOptionToBool(OptionsMenuSettingsList.getCurrentOption(14));
|
||||
$pref::PostFX::EnableDOF = convertOptionToBool(OptionsMenuSettingsList.getCurrentOption(15));
|
||||
$pref::PostFX::EnableVignette = convertOptionToBool(OptionsMenuSettingsList.getCurrentOption(16));
|
||||
$pref::PostFX::EnableLightRays = convertOptionToBool(OptionsMenuSettingsList.getCurrentOption(17));
|
||||
|
||||
PostFXManager.settingsEffectSetEnabled(SSAOPostFx, $pref::PostFX::EnableSSAO);
|
||||
PostFXManager.settingsEffectSetEnabled(DOFPostEffect, $pref::PostFX::EnableDOF);
|
||||
PostFXManager.settingsEffectSetEnabled(LightRayPostFX, $pref::PostFX::EnableLightRays);
|
||||
PostFXManager.settingsEffectSetEnabled(vignettePostFX, $pref::PostFX::EnableVignette);
|
||||
|
||||
$pref::Video::disableParallaxMapping = !convertOptionToBool(OptionsMenuSettingsList.getCurrentOption(10));
|
||||
$pref::Video::disableParallaxMapping = !convertOptionToBool(OptionsMenuSettingsList.getCurrentOption(12));
|
||||
|
||||
//water reflections
|
||||
$pref::Water::disableTrueReflections = !convertOptionToBool(OptionsMenuSettingsList.getCurrentOption(11));
|
||||
$pref::Water::disableTrueReflections = !convertOptionToBool(OptionsMenuSettingsList.getCurrentOption(13));
|
||||
|
||||
// Check the anisotropic filtering.
|
||||
%level = OptionsMenuSettingsList.getCurrentOption(8);
|
||||
%level = OptionsMenuSettingsList.getCurrentOption(10);
|
||||
if ( %level != $pref::Video::defaultAnisotropy )
|
||||
{
|
||||
if ( %testNeedApply )
|
||||
|
|
@ -344,7 +348,7 @@ function OptionsMenu::applyGraphicsSettings(%this)
|
|||
$pref::Video::defaultAnisotropy = %level;
|
||||
}
|
||||
|
||||
%newFSAA = OptionsMenuSettingsList.getCurrentOption(9);
|
||||
%newFSAA = OptionsMenuSettingsList.getCurrentOption(11);
|
||||
if (%newFSAA $= "off")
|
||||
%newFSAA = 0;
|
||||
if (%newFSAA !$= $pref::Video::AA)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue