Merge DRTVWR-440

master
Ansariel 2020-01-31 12:44:28 +01:00
commit 3c158f981a
48 changed files with 443 additions and 663 deletions

View File

@ -725,7 +725,7 @@ bool LLSettingsDay::moveTrackKeyframe(S32 trackno, const LLSettingsBase::TrackPo
return false;
}
if (old_frame == new_frame)
if (llabs(old_frame - new_frame) < F_APPROXIMATELY_ZERO)
{
return false;
}

View File

@ -55,7 +55,6 @@
<string>RenderWaterRefResolution</string>
<string>TextureDiscardLevel</string>
<string>TextureMemory</string>
<string>VertexShaderEnable</string>
<string>WindLightUseAtmosShaders</string>
<string>WLSkyDetail</string>
</array>

View File

@ -33,8 +33,6 @@
<!--Default for now-->
<RenderVolumeLODFactor value="1.125"/>
<!--NO SHADERS-->
<VertexShaderEnable value="TRUE"/>
<!--NO SHADERS-->
<WindLightUseAtmosShaders value="TRUE"/>
<!--Deferred Shading-->
<RenderDeferred value="FALSE"/>

View File

@ -33,8 +33,6 @@
<!--Default for now-->
<RenderVolumeLODFactor value="1.125"/>
<!--NO SHADERS-->
<VertexShaderEnable value="FALSE"/>
<!--NO SHADERS-->
<WindLightUseAtmosShaders value="FALSE"/>
<!--No Deferred Shading-->
<RenderDeferred value="FALSE"/>

View File

@ -33,8 +33,6 @@
<!--Default for now-->
<RenderVolumeLODFactor value="1.125"/>
<!--NO SHADERS-->
<VertexShaderEnable value="TRUE"/>
<!--NO SHADERS-->
<WindLightUseAtmosShaders value="FALSE"/>
<!--No Deferred Shading-->
<RenderDeferred value="FALSE"/>

View File

@ -17769,6 +17769,7 @@ Change of this parameter will affect the layout of buttons in notification toast
<key>Value</key>
<integer>1</integer>
</map>
<!-- SL-12594 removes fixed function rendering
<key>VertexShaderEnable</key>
<map>
<key>Comment</key>
@ -17780,6 +17781,7 @@ Change of this parameter will affect the layout of buttons in notification toast
<key>Value</key>
<integer>0</integer>
</map>
-->
<key>VivoxAutoPostCrashDumps</key>
<map>
<key>Comment</key>

View File

@ -272,7 +272,7 @@ void main()
#if (DIFFUSE_ALPHA_MODE == DIFFUSE_ALPHA_MODE_EMISSIVE)
final_color.a = diffuse_linear.a;
final_color.rgb *= 0.5;
final_color.rgb = mix( diffuse_linear.rgb, final_color.rgb*0.5, diffuse_tap.a ); // SL-12171: Fix emissive texture portion being twice as bright.
#endif
final_color.a = max(final_color.a, emissive_brightness);
@ -290,9 +290,7 @@ void main()
// OR
// adjust the final color via:
// final_color *= 0.666666;
// We remap the environment intensity to closely simulate what non-EEP is doing.
// At midnight the brightness is exact.
// At midday the brightness is very close.
// We don't remap the environment intensity but adjust the final color to closely simulate what non-EEP is doing.
vec4 final_normal = vec4(abnormal, env_intensity, 0.0);
vec3 color = vec3(0.0);
@ -301,9 +299,8 @@ void main()
if (emissive_brightness >= 1.0)
{
#ifdef HAS_SPECULAR_MAP
float ei = env_intensity*0.5 + 0.5;
final_normal = vec4(abnormal, ei, 0.0);
// Note: We actually need to adjust all 4 channels not just .rgb
final_color *= 0.666666;
#endif
color.rgb = final_color.rgb;
al = vertex_color.a;

View File

@ -34,8 +34,6 @@
<!--Default for now-->
<RenderVolumeLODFactor value="2.0"/>
<!--NO SHADERS-->
<VertexShaderEnable value="TRUE"/>
<!--NO SHADERS-->
<WindLightUseAtmosShaders value="TRUE"/>
<!--Deferred Shading-->
<RenderDeferred value="TRUE"/>

View File

@ -2533,7 +2533,9 @@ void LLEnvironment::DayInstance::setWater(const LLSettingsWater::ptr_t &pwater)
mType = TYPE_FIXED;
mInitialized = false;
bool different_water = mWater != pwater;
mWater = pwater;
mWater->mReplaced |= different_water;
mWater->update();
mBlenderWater.reset();
}

View File

@ -627,36 +627,36 @@ void LLFeatureManager::applyFeatures(bool skipFeatures)
void LLFeatureManager::setGraphicsLevel(U32 level, bool skipFeatures)
{
LLViewerShaderMgr::sSkipReload = true;
LLViewerShaderMgr::sSkipReload = true;
applyBaseMasks();
applyBaseMasks();
// if we're passed an invalid level, default to "Low"
std::string features(isValidGraphicsLevel(level)? getNameForGraphicsLevel(level) : "Low");
if (features == "Low")
{
// if we're passed an invalid level, default to "Low"
std::string features(isValidGraphicsLevel(level)? getNameForGraphicsLevel(level) : "Low");
if (features == "Low")
{
#if LL_DARWIN
// This Mac-specific change is to insure that we force 'Basic Shaders' for all Mac
// systems which support them instead of falling back to fixed-function unnecessarily
// MAINT-2157
if (gGLManager.mGLVersion < 2.1f)
// This Mac-specific change is to insure that we force 'Basic Shaders' for all Mac
// systems which support them instead of falling back to fixed-function unnecessarily
// MAINT-2157
if (gGLManager.mGLVersion < 2.1f)
#else
// only use fixed function by default if GL version < 3.0 or this is an intel graphics chip
if (gGLManager.mGLVersion < 3.f || gGLManager.mIsIntel)
// only use fixed function by default if GL version < 3.0 or this is an intel graphics chip
if (gGLManager.mGLVersion < 3.f || gGLManager.mIsIntel)
#endif
{
{
// same as Low, but with "Basic Shaders" disabled
features = "LowFixedFunction";
}
}
features = "LowFixedFunction";
}
}
maskFeatures(features);
maskFeatures(features);
applyFeatures(skipFeatures);
applyFeatures(skipFeatures);
LLViewerShaderMgr::sSkipReload = false;
LLViewerShaderMgr::instance()->setShaders();
gPipeline.refreshCachedSettings();
LLViewerShaderMgr::sSkipReload = false;
LLViewerShaderMgr::instance()->setShaders();
gPipeline.refreshCachedSettings();
}
void LLFeatureManager::applyBaseMasks()

View File

@ -565,7 +565,7 @@ LLFloaterPreference::LLFloaterPreference(const LLSD& key)
mCommitCallbackRegistrar.add("Pref.HardwareDefaults", boost::bind(&LLFloaterPreference::setHardwareDefaults, this));
mCommitCallbackRegistrar.add("Pref.AvatarImpostorsEnable", boost::bind(&LLFloaterPreference::onAvatarImpostorsEnable, this));
mCommitCallbackRegistrar.add("Pref.UpdateIndirectMaxComplexity", boost::bind(&LLFloaterPreference::updateMaxComplexity, this));
mCommitCallbackRegistrar.add("Pref.VertexShaderEnable", boost::bind(&LLFloaterPreference::onVertexShaderEnable, this));
mCommitCallbackRegistrar.add("Pref.RenderOptionUpdate", boost::bind(&LLFloaterPreference::onRenderOptionEnable, this));
mCommitCallbackRegistrar.add("Pref.LocalLightsEnable", boost::bind(&LLFloaterPreference::onLocalLightsEnable, this));
mCommitCallbackRegistrar.add("Pref.WindowedMod", boost::bind(&LLFloaterPreference::onCommitWindowedMode, this));
mCommitCallbackRegistrar.add("Pref.UpdateSliderText", boost::bind(&LLFloaterPreference::refreshUI,this));
@ -1328,12 +1328,12 @@ void LLFloaterPreference::onOpen(const LLSD& key)
}
}
void LLFloaterPreference::onVertexShaderEnable()
void LLFloaterPreference::onRenderOptionEnable()
{
refreshEnabledGraphics();
}
void LLFloaterPreferenceGraphicsAdvanced::onVertexShaderEnable()
void LLFloaterPreferenceGraphicsAdvanced::onRenderOptionEnable()
{
LLFloaterPreference* instance = LLFloaterReg::findTypedInstance<LLFloaterPreference>("preferences");
if (instance)
@ -2117,20 +2117,19 @@ void LLFloaterPreference::refreshEnabledState()
//LLCheckBoxCtrl* ctrl_deferred = getChild<LLCheckBoxCtrl>("UseLightShaders");
//// if vertex shaders off, disable all shader related products
//if (!LLFeatureManager::getInstance()->isFeatureAvailable("VertexShaderEnable") ||
// !LLFeatureManager::getInstance()->isFeatureAvailable("WindLightUseAtmosShaders"))
//if (!LLFeatureManager::getInstance()->isFeatureAvailable("WindLightUseAtmosShaders"))
//{
// ctrl_wind_light->setEnabled(FALSE);
// ctrl_wind_light->setValue(FALSE);
//}
//else
//{
// ctrl_wind_light->setEnabled(gSavedSettings.getBOOL("VertexShaderEnable"));
// ctrl_wind_light->setEnabled(TRUE);
//}
////Deferred/SSAO/Shadows
//BOOL bumpshiny = gGLManager.mHasCubeMap && LLCubeMap::sUseCubeMaps && LLFeatureManager::getInstance()->isFeatureAvailable("RenderObjectBump") && gSavedSettings.getBOOL("RenderObjectBump");
//BOOL shaders = gSavedSettings.getBOOL("WindLightUseAtmosShaders") && gSavedSettings.getBOOL("VertexShaderEnable");
//BOOL shaders = gSavedSettings.getBOOL("WindLightUseAtmosShaders");
//BOOL enabled = LLFeatureManager::getInstance()->isFeatureAvailable("RenderDeferred") &&
// bumpshiny &&
// shaders &&
@ -2204,9 +2203,7 @@ void LLFloaterPreference::refreshEnabledState()
// [/RLVa:KB]
// Reflections
BOOL reflections = gSavedSettings.getBOOL("VertexShaderEnable")
&& gGLManager.mHasCubeMap
&& LLCubeMap::sUseCubeMaps;
BOOL reflections = gGLManager.mHasCubeMap && LLCubeMap::sUseCubeMaps;
ctrl_reflections->setEnabled(reflections);
// Bump & Shiny
@ -2235,8 +2232,7 @@ void LLFloaterPreference::refreshEnabledState()
ctrl_avatar_vp->setEnabled(avatar_vp_enabled);
if (gSavedSettings.getBOOL("VertexShaderEnable") == FALSE ||
gSavedSettings.getBOOL("RenderAvatarVP") == FALSE)
if (gSavedSettings.getBOOL("RenderAvatarVP") == FALSE)
{
ctrl_avatar_cloth->setEnabled(false);
}
@ -2245,52 +2241,28 @@ void LLFloaterPreference::refreshEnabledState()
ctrl_avatar_cloth->setEnabled(true);
}
// Vertex Shaders
// Global Shader Enable
LLCheckBoxCtrl* ctrl_shader_enable = getChild<LLCheckBoxCtrl>("BasicShaders");
// radio set for terrain detail mode
// Vertex Shaders, Global Shader Enable
LLRadioGroup* terrain_detail = getChild<LLRadioGroup>("TerrainDetailRadio"); // can be linked with control var
// ctrl_shader_enable->setEnabled(LLFeatureManager::getInstance()->isFeatureAvailable("VertexShaderEnable"));
// [RLVa:KB] - Checked: 2010-03-18 (RLVa-1.2.0a) | Modified: RLVa-0.2.0a
// "Basic Shaders" can't be disabled - but can be enabled - under @setenv=n
bool fCtrlShaderEnable = LLFeatureManager::getInstance()->isFeatureAvailable("VertexShaderEnable");
ctrl_shader_enable->setEnabled(
fCtrlShaderEnable && ((!gRlvHandler.hasBehaviour(RLV_BHVR_SETENV)) || (!gSavedSettings.getBOOL("VertexShaderEnable"))) );
// [/RLVa:KB]
BOOL shaders = ctrl_shader_enable->get();
if (shaders)
{
terrain_detail->setEnabled(FALSE);
}
else
{
terrain_detail->setEnabled(TRUE);
}
terrain_detail->setEnabled(FALSE);
// WindLight
LLCheckBoxCtrl* ctrl_wind_light = getChild<LLCheckBoxCtrl>("WindLightUseAtmosShaders");
LLSliderCtrl* sky = getChild<LLSliderCtrl>("SkyMeshDetail");
// *HACK just checks to see if we can use shaders...
// maybe some cards that use shaders, but don't support windlight
// ctrl_wind_light->setEnabled(ctrl_shader_enable->getEnabled() && shaders);
// ctrl_wind_light->setEnabled(TRUE);
// [RLVa:KB] - Checked: 2010-03-18 (RLVa-1.2.0a) | Modified: RLVa-0.2.0a
// "Atmospheric Shaders" can't be disabled - but can be enabled - under @setenv=n
bool fCtrlWindLightEnable = fCtrlShaderEnable && shaders;
ctrl_wind_light->setEnabled(
fCtrlWindLightEnable && ((!gRlvHandler.hasBehaviour(RLV_BHVR_SETENV)) || (!gSavedSettings.getBOOL("WindLightUseAtmosShaders"))) );
ctrl_wind_light->setEnabled((!gRlvHandler.hasBehaviour(RLV_BHVR_SETENV)) || (!gSavedSettings.getBOOL("WindLightUseAtmosShaders")) );
// [/RLVa:KB]
sky->setEnabled(ctrl_wind_light->get() && shaders);
sky->setEnabled(TRUE);
//Deferred/SSAO/Shadows
LLCheckBoxCtrl* ctrl_deferred = getChild<LLCheckBoxCtrl>("UseLightShaders");
BOOL enabled = LLFeatureManager::getInstance()->isFeatureAvailable("RenderDeferred") &&
((bumpshiny_ctrl && bumpshiny_ctrl->get()) ? TRUE : FALSE) &&
shaders &&
gGLManager.mHasFramebufferObject &&
gSavedSettings.getBOOL("RenderAvatarVP") &&
(ctrl_wind_light->get()) ? TRUE : FALSE;
@ -2329,9 +2301,7 @@ void LLFloaterPreferenceGraphicsAdvanced::refreshEnabledState()
LLTextBox* reflections_text = getChild<LLTextBox>("ReflectionsText");
// Reflections
BOOL reflections = gSavedSettings.getBOOL("VertexShaderEnable")
&& gGLManager.mHasCubeMap
&& LLCubeMap::sUseCubeMaps;
BOOL reflections = gGLManager.mHasCubeMap && LLCubeMap::sUseCubeMaps;
ctrl_reflections->setEnabled(reflections);
reflections_text->setEnabled(reflections);
@ -2355,71 +2325,44 @@ void LLFloaterPreferenceGraphicsAdvanced::refreshEnabledState()
ctrl_avatar_vp->setEnabled(avatar_vp_enabled);
if (gSavedSettings.getBOOL("VertexShaderEnable") == FALSE ||
gSavedSettings.getBOOL("RenderAvatarVP") == FALSE)
{
ctrl_avatar_cloth->setEnabled(FALSE);
}
else
{
ctrl_avatar_cloth->setEnabled(TRUE);
}
// Vertex Shaders
// Global Shader Enable
LLCheckBoxCtrl* ctrl_shader_enable = getChild<LLCheckBoxCtrl>("BasicShaders");
LLSliderCtrl* terrain_detail = getChild<LLSliderCtrl>("TerrainDetail"); // can be linked with control var
LLTextBox* terrain_text = getChild<LLTextBox>("TerrainDetailText");
if (gSavedSettings.getBOOL("RenderAvatarVP") == FALSE)
{
ctrl_avatar_cloth->setEnabled(FALSE);
}
else
{
ctrl_avatar_cloth->setEnabled(TRUE);
}
// ctrl_shader_enable->setEnabled(LLFeatureManager::getInstance()->isFeatureAvailable("VertexShaderEnable"));
// Vertex Shaders, Global Shader Enable
// SL-12594 Basic shaders are always enabled. DJH TODO clean up now-orphaned state handling code
LLSliderCtrl* terrain_detail = getChild<LLSliderCtrl>("TerrainDetail"); // can be linked with control var
LLTextBox* terrain_text = getChild<LLTextBox>("TerrainDetailText");
terrain_detail->setEnabled(FALSE);
terrain_text->setEnabled(FALSE);
// WindLight
LLCheckBoxCtrl* ctrl_wind_light = getChild<LLCheckBoxCtrl>("WindLightUseAtmosShaders");
LLSliderCtrl* sky = getChild<LLSliderCtrl>("SkyMeshDetail");
LLTextBox* sky_text = getChild<LLTextBox>("SkyMeshDetailText");
// ctrl_wind_light->setEnabled(TRUE);
// [RLVa:KB] - Checked: 2010-03-18 (RLVa-1.2.0a) | Modified: RLVa-0.2.0a
// "Basic Shaders" can't be disabled - but can be enabled - under @setenv=n
bool fCtrlShaderEnable = LLFeatureManager::getInstance()->isFeatureAvailable("VertexShaderEnable");
ctrl_shader_enable->setEnabled(
fCtrlShaderEnable && ((!gRlvHandler.hasBehaviour(RLV_BHVR_SETENV)) || (!gSavedSettings.getBOOL("VertexShaderEnable"))) );
// "Atmospheric Shaders" can't be disabled - but can be enabled - under @setenv=n
ctrl_wind_light->setEnabled(((!gRlvHandler.hasBehaviour(RLV_BHVR_SETENV)) || (!gSavedSettings.getBOOL("WindLightUseAtmosShaders"))) );
// [/RLVa:KB]
sky->setEnabled(TRUE);
sky_text->setEnabled(TRUE);
BOOL shaders = ctrl_shader_enable->get();
if (shaders)
{
terrain_detail->setEnabled(FALSE);
terrain_text->setEnabled(FALSE);
}
else
{
terrain_detail->setEnabled(TRUE);
terrain_text->setEnabled(TRUE);
}
// WindLight
LLCheckBoxCtrl* ctrl_wind_light = getChild<LLCheckBoxCtrl>("WindLightUseAtmosShaders");
LLSliderCtrl* sky = getChild<LLSliderCtrl>("SkyMeshDetail");
LLTextBox* sky_text = getChild<LLTextBox>("SkyMeshDetailText");
//Deferred/SSAO/Shadows
LLCheckBoxCtrl* ctrl_deferred = getChild<LLCheckBoxCtrl>("UseLightShaders");
BOOL enabled = LLFeatureManager::getInstance()->isFeatureAvailable("RenderDeferred") &&
((bumpshiny_ctrl && bumpshiny_ctrl->get()) ? TRUE : FALSE) &&
gGLManager.mHasFramebufferObject &&
gSavedSettings.getBOOL("RenderAvatarVP") &&
(ctrl_wind_light->get()) ? TRUE : FALSE;
// *HACK just checks to see if we can use shaders...
// maybe some cards that use shaders, but don't support windlight
// ctrl_wind_light->setEnabled(ctrl_shader_enable->getEnabled() && shaders);
// [RLVa:KB] - Checked: 2010-03-18 (RLVa-1.2.0a) | Modified: RLVa-0.2.0a
// "Atmospheric Shaders" can't be disabled - but can be enabled - under @setenv=n
bool fCtrlWindLightEnable = fCtrlShaderEnable && shaders;
ctrl_wind_light->setEnabled(
fCtrlWindLightEnable && ((!gRlvHandler.hasBehaviour(RLV_BHVR_SETENV)) || (!gSavedSettings.getBOOL("WindLightUseAtmosShaders"))) );
// [/RLVa:KB]
sky->setEnabled(ctrl_wind_light->get() && shaders);
sky_text->setEnabled(ctrl_wind_light->get() && shaders);
//Deferred/SSAO/Shadows
LLCheckBoxCtrl* ctrl_deferred = getChild<LLCheckBoxCtrl>("UseLightShaders");
BOOL enabled = LLFeatureManager::getInstance()->isFeatureAvailable("RenderDeferred") &&
((bumpshiny_ctrl && bumpshiny_ctrl->get()) ? TRUE : FALSE) &&
shaders &&
gGLManager.mHasFramebufferObject &&
gSavedSettings.getBOOL("RenderAvatarVP") &&
(ctrl_wind_light->get()) ? TRUE : FALSE;
ctrl_deferred->setEnabled(enabled);
ctrl_deferred->setEnabled(enabled);
LLCheckBoxCtrl* ctrl_ssao = getChild<LLCheckBoxCtrl>("UseSSAO");
LLCheckBoxCtrl* ctrl_dof = getChild<LLCheckBoxCtrl>("UseDoF");
@ -2655,7 +2598,6 @@ void LLFloaterPreferenceGraphicsAdvanced::disableUnavailableSettings()
LLTextBox* reflections_text = getChild<LLTextBox>("ReflectionsText");
LLCheckBoxCtrl* ctrl_avatar_vp = getChild<LLCheckBoxCtrl>("AvatarVertexProgram");
LLCheckBoxCtrl* ctrl_avatar_cloth = getChild<LLCheckBoxCtrl>("AvatarCloth");
LLCheckBoxCtrl* ctrl_shader_enable = getChild<LLCheckBoxCtrl>("BasicShaders");
LLCheckBoxCtrl* ctrl_wind_light = getChild<LLCheckBoxCtrl>("WindLightUseAtmosShaders");
LLCheckBoxCtrl* ctrl_deferred = getChild<LLCheckBoxCtrl>("UseLightShaders");
LLComboBox* ctrl_shadows = getChild<LLComboBox>("ShadowDetail");
@ -2665,42 +2607,6 @@ void LLFloaterPreferenceGraphicsAdvanced::disableUnavailableSettings()
LLSliderCtrl* sky = getChild<LLSliderCtrl>("SkyMeshDetail");
LLTextBox* sky_text = getChild<LLTextBox>("SkyMeshDetailText");
// if vertex shaders off, disable all shader related products
if (!LLFeatureManager::getInstance()->isFeatureAvailable("VertexShaderEnable"))
{
ctrl_shader_enable->setEnabled(FALSE);
ctrl_shader_enable->setValue(FALSE);
ctrl_wind_light->setEnabled(FALSE);
ctrl_wind_light->setValue(FALSE);
sky->setEnabled(FALSE);
sky_text->setEnabled(FALSE);
ctrl_reflections->setEnabled(FALSE);
ctrl_reflections->setValue(0);
reflections_text->setEnabled(FALSE);
ctrl_avatar_vp->setEnabled(FALSE);
ctrl_avatar_vp->setValue(FALSE);
ctrl_avatar_cloth->setEnabled(FALSE);
ctrl_avatar_cloth->setValue(FALSE);
ctrl_shadows->setEnabled(FALSE);
ctrl_shadows->setValue(0);
shadows_text->setEnabled(FALSE);
ctrl_ssao->setEnabled(FALSE);
ctrl_ssao->setValue(FALSE);
ctrl_dof->setEnabled(FALSE);
ctrl_dof->setValue(FALSE);
ctrl_deferred->setEnabled(FALSE);
ctrl_deferred->setValue(FALSE);
}
// disabled windlight
if (!LLFeatureManager::getInstance()->isFeatureAvailable("WindLightUseAtmosShaders"))
{
@ -4581,7 +4487,7 @@ void LLPanelPreferenceGraphics::setHardwareDefaults()
LLFloaterPreferenceGraphicsAdvanced::LLFloaterPreferenceGraphicsAdvanced(const LLSD& key)
: LLFloater(key)
{
mCommitCallbackRegistrar.add("Pref.VertexShaderEnable", boost::bind(&LLFloaterPreferenceGraphicsAdvanced::onVertexShaderEnable, this));
mCommitCallbackRegistrar.add("Pref.RenderOptionUpdate", boost::bind(&LLFloaterPreferenceGraphicsAdvanced::onRenderOptionEnable, this));
mCommitCallbackRegistrar.add("Pref.UpdateIndirectMaxNonImpostors", boost::bind(&LLFloaterPreferenceGraphicsAdvanced::updateMaxNonImpostors,this));
mCommitCallbackRegistrar.add("Pref.UpdateIndirectMaxComplexity", boost::bind(&LLFloaterPreferenceGraphicsAdvanced::updateMaxComplexity,this));
}

View File

@ -137,8 +137,8 @@ protected:
// callback for defaults
void setHardwareDefaults();
void setRecommended();
// callback for when client turns on shaders
void onVertexShaderEnable();
// callback for when client modifies a render option
void onRenderOptionEnable();
// callback for when client turns on impostors
void onAvatarImpostorsEnable();
// <FS:AO> callback for local lights toggle
@ -416,8 +416,8 @@ class LLFloaterPreferenceGraphicsAdvanced : public LLFloater
static void setIndirectMaxNonImpostors();
static void setIndirectMaxArc();
void refresh();
// callback for when client turns on shaders
void onVertexShaderEnable();
// callback for when client modifies a render option
void onRenderOptionEnable();
void onAdvancedAtmosphericsEnable();
LOG_CLASS(LLFloaterPreferenceGraphicsAdvanced);
};

View File

@ -1003,7 +1003,6 @@ void settings_setup_listeners()
gSavedSettings.getControl("RenderMaxTextureIndex")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _2));
gSavedSettings.getControl("RenderUseTriStrips")->getSignal()->connect(boost::bind(&handleResetVertexBuffersChanged, _2));
gSavedSettings.getControl("RenderAvatarVP")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _2));
gSavedSettings.getControl("VertexShaderEnable")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _2));
gSavedSettings.getControl("RenderUIBuffer")->getSignal()->connect(boost::bind(&handleWindowResized, _2));
gSavedSettings.getControl("RenderDepthOfField")->getSignal()->connect(boost::bind(&handleReleaseGLBufferChanged, _2));
gSavedSettings.getControl("RenderFSAASamples")->getSignal()->connect(boost::bind(&handleReleaseGLBufferChanged, _2));

View File

@ -393,359 +393,329 @@ S32 LLViewerShaderMgr::getShaderLevel(S32 type)
void LLViewerShaderMgr::setShaders()
{
//setShaders might be called redundantly by gSavedSettings, so return on reentrance
static bool reentrance = false;
if (!gPipeline.mInitialized || !sInitialized || reentrance || sSkipReload)
{
return;
}
//setShaders might be called redundantly by gSavedSettings, so return on reentrance
static bool reentrance = false;
if (!gPipeline.mInitialized || !sInitialized || reentrance || sSkipReload)
{
return;
}
static LLCachedControl<U32> max_texture_index(gSavedSettings, "RenderMaxTextureIndex", 16);
LLGLSLShader::sIndexedTextureChannels = llmax(llmin(gGLManager.mNumTextureImageUnits, (S32) max_texture_index), 1);
static LLCachedControl<U32> max_texture_index(gSavedSettings, "RenderMaxTextureIndex", 16);
LLGLSLShader::sIndexedTextureChannels = llmax(llmin(gGLManager.mNumTextureImageUnits, (S32) max_texture_index), 1);
//NEVER use more than 16 texture channels (work around for prevalent driver bug)
LLGLSLShader::sIndexedTextureChannels = llmin(LLGLSLShader::sIndexedTextureChannels, 16);
//NEVER use more than 16 texture channels (work around for prevalent driver bug)
LLGLSLShader::sIndexedTextureChannels = llmin(LLGLSLShader::sIndexedTextureChannels, 16);
if (gGLManager.mGLSLVersionMajor < 1 ||
(gGLManager.mGLSLVersionMajor == 1 && gGLManager.mGLSLVersionMinor <= 20))
{ //NEVER use indexed texture rendering when GLSL version is 1.20 or earlier
LLGLSLShader::sIndexedTextureChannels = 1;
}
if (gGLManager.mGLSLVersionMajor < 1 ||
(gGLManager.mGLSLVersionMajor == 1 && gGLManager.mGLSLVersionMinor <= 20))
{ //NEVER use indexed texture rendering when GLSL version is 1.20 or earlier
LLGLSLShader::sIndexedTextureChannels = 1;
}
reentrance = true;
reentrance = true;
if (LLRender::sGLCoreProfile)
{
if (!gSavedSettings.getBOOL("VertexShaderEnable"))
{ //vertex shaders MUST be enabled to use core profile
gSavedSettings.setBOOL("VertexShaderEnable", TRUE);
}
}
//setup preprocessor definitions
LLShaderMgr::instance()->mDefinitions["NUM_TEX_UNITS"] = llformat("%d", gGLManager.mNumTextureImageUnits);
// Make sure the compiled shader map is cleared before we recompile shaders.
//setup preprocessor definitions
LLShaderMgr::instance()->mDefinitions["NUM_TEX_UNITS"] = llformat("%d", gGLManager.mNumTextureImageUnits);
// Make sure the compiled shader map is cleared before we recompile shaders.
mVertexShaderObjects.clear();
mFragmentShaderObjects.clear();
initAttribsAndUniforms();
gPipeline.releaseGLBuffers();
initAttribsAndUniforms();
gPipeline.releaseGLBuffers();
if (gSavedSettings.getBOOL("VertexShaderEnable"))
{
LLPipeline::sWaterReflections = gGLManager.mHasCubeMap;
LLPipeline::sRenderGlow = gSavedSettings.getBOOL("RenderGlow");
LLPipeline::updateRenderDeferred();
}
else
{
LLPipeline::sRenderGlow = FALSE;
LLPipeline::sWaterReflections = FALSE;
}
//hack to reset buffers that change behavior with shaders
gPipeline.resetVertexBuffers();
LLPipeline::sWaterReflections = gGLManager.mHasCubeMap;
LLPipeline::sRenderGlow = gSavedSettings.getBOOL("RenderGlow");
LLPipeline::updateRenderDeferred();
//hack to reset buffers that change behavior with shaders
gPipeline.resetVertexBuffers();
if (gViewerWindow)
{
gViewerWindow->setCursor(UI_CURSOR_WAIT);
}
// Lighting
gPipeline.setLightingDetail(-1);
// Shaders
LL_INFOS("ShaderLoading") << "\n~~~~~~~~~~~~~~~~~~\n Loading Shaders:\n~~~~~~~~~~~~~~~~~~" << LL_ENDL;
LL_INFOS("ShaderLoading") << llformat("Using GLSL %d.%d", gGLManager.mGLSLVersionMajor, gGLManager.mGLSLVersionMinor) << LL_ENDL;
for (S32 i = 0; i < SHADER_COUNT; i++)
{
mShaderLevel[i] = 0;
}
mMaxAvatarShaderLevel = 0;
LLGLSLShader::sNoFixedFunction = false;
LLVertexBuffer::unbind();
if (LLFeatureManager::getInstance()->isFeatureAvailable("VertexShaderEnable")
&& (gGLManager.mGLSLVersionMajor > 1 || gGLManager.mGLSLVersionMinor >= 10)
&& gSavedSettings.getBOOL("VertexShaderEnable"))
if (gViewerWindow)
{
bool canRenderDeferred = LLFeatureManager::getInstance()->isFeatureAvailable("RenderDeferred");
bool hasWindLightShaders = LLFeatureManager::getInstance()->isFeatureAvailable("WindLightUseAtmosShaders");
S32 shadow_detail = gSavedSettings.getS32("RenderShadowDetail");
bool useRenderDeferred = canRenderDeferred && gSavedSettings.getBOOL("RenderDeferred") && gSavedSettings.getBOOL("RenderAvatarVP");
bool doingWindLight = hasWindLightShaders && gSavedSettings.getBOOL("WindLightUseAtmosShaders");
gViewerWindow->setCursor(UI_CURSOR_WAIT);
}
//using shaders, disable fixed function
LLGLSLShader::sNoFixedFunction = true;
// Lighting
gPipeline.setLightingDetail(-1);
S32 light_class = 3;
S32 interface_class = 2;
S32 env_class = 2;
S32 obj_class = 2;
S32 effect_class = 2;
S32 wl_class = 1;
S32 water_class = 2;
S32 deferred_class = 0;
S32 transform_class = gGLManager.mHasTransformFeedback ? 1 : 0;
// Shaders
LL_INFOS("ShaderLoading") << "\n~~~~~~~~~~~~~~~~~~\n Loading Shaders:\n~~~~~~~~~~~~~~~~~~" << LL_ENDL;
LL_INFOS("ShaderLoading") << llformat("Using GLSL %d.%d", gGLManager.mGLSLVersionMajor, gGLManager.mGLSLVersionMinor) << LL_ENDL;
static LLCachedControl<bool> use_transform_feedback(gSavedSettings, "RenderUseTransformFeedback", false);
if (!use_transform_feedback)
{
transform_class = 0;
}
for (S32 i = 0; i < SHADER_COUNT; i++)
{
mShaderLevel[i] = 0;
}
mMaxAvatarShaderLevel = 0;
if (useRenderDeferred)
{
//shadows
switch (shadow_detail)
{
case 1:
deferred_class = 2; // PCF shadows
break;
LLGLSLShader::sNoFixedFunction = false;
LLVertexBuffer::unbind();
case 2:
deferred_class = 2; // PCF shadows
break;
llassert((gGLManager.mGLSLVersionMajor > 1 || gGLManager.mGLSLVersionMinor >= 10));
case 0:
default:
deferred_class = 1; // no shadows
break;
}
bool canRenderDeferred = LLFeatureManager::getInstance()->isFeatureAvailable("RenderDeferred");
bool hasWindLightShaders = LLFeatureManager::getInstance()->isFeatureAvailable("WindLightUseAtmosShaders");
S32 shadow_detail = gSavedSettings.getS32("RenderShadowDetail");
bool useRenderDeferred = canRenderDeferred && gSavedSettings.getBOOL("RenderDeferred") && gSavedSettings.getBOOL("RenderAvatarVP");
bool doingWindLight = hasWindLightShaders && gSavedSettings.getBOOL("WindLightUseAtmosShaders");
//using shaders, disable fixed function
LLGLSLShader::sNoFixedFunction = true;
S32 light_class = 3;
S32 interface_class = 2;
S32 env_class = 2;
S32 obj_class = 2;
S32 effect_class = 2;
S32 wl_class = 1;
S32 water_class = 2;
S32 deferred_class = 0;
S32 transform_class = gGLManager.mHasTransformFeedback ? 1 : 0;
static LLCachedControl<bool> use_transform_feedback(gSavedSettings, "RenderUseTransformFeedback", false);
if (!use_transform_feedback)
{
transform_class = 0;
}
if (useRenderDeferred)
{
//shadows
switch (shadow_detail)
{
case 1:
deferred_class = 2; // PCF shadows
break;
case 2:
deferred_class = 2; // PCF shadows
break;
case 0:
default:
deferred_class = 1; // no shadows
break;
}
}
if (doingWindLight)
if (doingWindLight)
{
// user has disabled WindLight in their settings, downgrade
// windlight shaders to stub versions.
wl_class = 2;
}
else
{
light_class = 2;
}
// Trigger a full rebuild of the fallback skybox / cubemap if we've toggled windlight shaders
if (!wl_class || (mShaderLevel[SHADER_WINDLIGHT] != wl_class && gSky.mVOSkyp.notNull()))
{
gSky.mVOSkyp->forceSkyUpdate();
}
// Load lighting shaders
mShaderLevel[SHADER_LIGHTING] = light_class;
mShaderLevel[SHADER_INTERFACE] = interface_class;
mShaderLevel[SHADER_ENVIRONMENT] = env_class;
mShaderLevel[SHADER_WATER] = water_class;
mShaderLevel[SHADER_OBJECT] = obj_class;
mShaderLevel[SHADER_EFFECT] = effect_class;
mShaderLevel[SHADER_WINDLIGHT] = wl_class;
mShaderLevel[SHADER_DEFERRED] = deferred_class;
mShaderLevel[SHADER_TRANSFORM] = transform_class;
BOOL loaded = loadBasicShaders();
if (loaded)
{
LL_INFOS() << "Loaded basic shaders." << LL_ENDL;
}
else
{
LL_WARNS() << "Failed to load basic shaders." << LL_ENDL;
llassert(loaded);
}
if (loaded)
{
gPipeline.mVertexShadersEnabled = TRUE;
gPipeline.mVertexShadersLoaded = 1;
// Load all shaders to set max levels
loaded = loadShadersEnvironment();
if (loaded)
{
// user has disabled WindLight in their settings, downgrade
// windlight shaders to stub versions.
wl_class = 2;
LL_INFOS() << "Loaded environment shaders." << LL_ENDL;
}
else
{
light_class = 2;
LL_WARNS() << "Failed to load environment shaders." << LL_ENDL;
llassert(loaded);
}
// Trigger a full rebuild of the fallback skybox / cubemap if we've toggled windlight shaders
if (!wl_class || (mShaderLevel[SHADER_WINDLIGHT] != wl_class && gSky.mVOSkyp.notNull()))
{
gSky.mVOSkyp->forceSkyUpdate();
}
// Load lighting shaders
mShaderLevel[SHADER_LIGHTING] = light_class;
mShaderLevel[SHADER_INTERFACE] = interface_class;
mShaderLevel[SHADER_ENVIRONMENT] = env_class;
mShaderLevel[SHADER_WATER] = water_class;
mShaderLevel[SHADER_OBJECT] = obj_class;
mShaderLevel[SHADER_EFFECT] = effect_class;
mShaderLevel[SHADER_WINDLIGHT] = wl_class;
mShaderLevel[SHADER_DEFERRED] = deferred_class;
mShaderLevel[SHADER_TRANSFORM] = transform_class;
BOOL loaded = loadBasicShaders();
if (loaded)
{
LL_INFOS() << "Loaded basic shaders." << LL_ENDL;
}
else
{
LL_WARNS() << "Failed to load basic shaders." << LL_ENDL;
llassert(loaded);
}
if (loaded)
{
gPipeline.mVertexShadersEnabled = TRUE;
gPipeline.mVertexShadersLoaded = 1;
// Load all shaders to set max levels
loaded = loadShadersEnvironment();
if (loaded)
{
LL_INFOS() << "Loaded environment shaders." << LL_ENDL;
}
else
{
LL_WARNS() << "Failed to load environment shaders." << LL_ENDL;
llassert(loaded);
}
if (loaded)
{
loaded = loadShadersWater();
if (loaded)
{
LL_INFOS() << "Loaded water shaders." << LL_ENDL;
}
else
{
LL_WARNS() << "Failed to load water shaders." << LL_ENDL;
llassert(loaded);
}
}
if (loaded)
{
loaded = loadShadersWindLight();
if (loaded)
{
LL_INFOS() << "Loaded windlight shaders." << LL_ENDL;
}
else
{
LL_WARNS() << "Failed to load windlight shaders." << LL_ENDL;
llassert(loaded);
}
}
if (loaded)
{
loaded = loadShadersEffects();
if (loaded)
{
LL_INFOS() << "Loaded effects shaders." << LL_ENDL;
}
else
{
LL_WARNS() << "Failed to load effects shaders." << LL_ENDL;
llassert(loaded);
}
}
if (loaded)
{
loaded = loadShadersInterface();
if (loaded)
{
LL_INFOS() << "Loaded interface shaders." << LL_ENDL;
}
else
{
LL_WARNS() << "Failed to load interface shaders." << LL_ENDL;
llassert(loaded);
}
}
if (loaded)
{
loaded = loadTransformShaders();
if (loaded)
{
LL_INFOS() << "Loaded transform shaders." << LL_ENDL;
}
else
{
LL_WARNS() << "Failed to load transform shaders." << LL_ENDL;
llassert(loaded);
}
}
if (loaded)
{
loaded = loadShadersWater();
if (loaded)
{
// Load max avatar shaders to set the max level
mShaderLevel[SHADER_AVATAR] = 3;
mMaxAvatarShaderLevel = 3;
LL_INFOS() << "Loaded water shaders." << LL_ENDL;
}
else
{
LL_WARNS() << "Failed to load water shaders." << LL_ENDL;
llassert(loaded);
}
}
if (loaded)
{
loaded = loadShadersWindLight();
if (loaded)
{
LL_INFOS() << "Loaded windlight shaders." << LL_ENDL;
}
else
{
LL_WARNS() << "Failed to load windlight shaders." << LL_ENDL;
llassert(loaded);
}
}
if (loaded)
{
loaded = loadShadersEffects();
if (loaded)
{
LL_INFOS() << "Loaded effects shaders." << LL_ENDL;
}
else
{
LL_WARNS() << "Failed to load effects shaders." << LL_ENDL;
llassert(loaded);
}
}
if (loaded)
{
loaded = loadShadersInterface();
if (loaded)
{
LL_INFOS() << "Loaded interface shaders." << LL_ENDL;
}
else
{
LL_WARNS() << "Failed to load interface shaders." << LL_ENDL;
llassert(loaded);
}
}
if (loaded)
{
loaded = loadTransformShaders();
if (loaded)
{
LL_INFOS() << "Loaded transform shaders." << LL_ENDL;
}
else
{
LL_WARNS() << "Failed to load transform shaders." << LL_ENDL;
llassert(loaded);
}
}
if (loaded)
{
// Load max avatar shaders to set the max level
mShaderLevel[SHADER_AVATAR] = 3;
mMaxAvatarShaderLevel = 3;
if (gSavedSettings.getBOOL("RenderAvatarVP") && loadShadersObject())
{ //hardware skinning is enabled and rigged attachment shaders loaded correctly
BOOL avatar_cloth = gSavedSettings.getBOOL("RenderAvatarCloth");
if (gSavedSettings.getBOOL("RenderAvatarVP") && loadShadersObject())
{ //hardware skinning is enabled and rigged attachment shaders loaded correctly
BOOL avatar_cloth = gSavedSettings.getBOOL("RenderAvatarCloth");
// cloth is a class3 shader
S32 avatar_class = avatar_cloth ? 3 : 1;
// cloth is a class3 shader
S32 avatar_class = avatar_cloth ? 3 : 1;
// Set the actual level
mShaderLevel[SHADER_AVATAR] = avatar_class;
// Set the actual level
mShaderLevel[SHADER_AVATAR] = avatar_class;
loaded = loadShadersAvatar();
llassert(loaded);
loaded = loadShadersAvatar();
llassert(loaded);
if (mShaderLevel[SHADER_AVATAR] != avatar_class)
if (mShaderLevel[SHADER_AVATAR] != avatar_class)
{
if (mShaderLevel[SHADER_AVATAR] == 0)
{
if (mShaderLevel[SHADER_AVATAR] == 0)
{
gSavedSettings.setBOOL("RenderAvatarVP", FALSE);
}
if(llmax(mShaderLevel[SHADER_AVATAR]-1,0) >= 3)
{
avatar_cloth = true;
}
else
{
avatar_cloth = false;
}
gSavedSettings.setBOOL("RenderAvatarCloth", avatar_cloth);
gSavedSettings.setBOOL("RenderAvatarVP", FALSE);
}
}
else
{ //hardware skinning not possible, neither is deferred rendering
mShaderLevel[SHADER_AVATAR] = 0;
mShaderLevel[SHADER_DEFERRED] = 0;
if (gSavedSettings.getBOOL("RenderAvatarVP"))
if(llmax(mShaderLevel[SHADER_AVATAR]-1,0) >= 3)
{
LL_WARNS() << "Couldn't load object shaders - Deferred rendering disabled" << LL_ENDL; // FS:Ansariel> FIRE-20305: Debug output
gSavedSettings.setBOOL("RenderDeferred", FALSE);
gSavedSettings.setBOOL("RenderAvatarCloth", FALSE);
gSavedSettings.setBOOL("RenderAvatarVP", FALSE);
avatar_cloth = true;
}
loadShadersAvatar(); // unloads
loaded = loadShadersObject();
llassert(loaded);
else
{
avatar_cloth = false;
}
gSavedSettings.setBOOL("RenderAvatarCloth", avatar_cloth);
}
}
else
{ //hardware skinning not possible, neither is deferred rendering
mShaderLevel[SHADER_AVATAR] = 0;
mShaderLevel[SHADER_DEFERRED] = 0;
if (!loaded)
{ //some shader absolutely could not load, try to fall back to a simpler setting
if (gSavedSettings.getBOOL("WindLightUseAtmosShaders"))
{ //disable windlight and try again
gSavedSettings.setBOOL("WindLightUseAtmosShaders", FALSE);
LL_WARNS() << "Falling back to no windlight shaders." << LL_ENDL;
reentrance = false;
setShaders();
return;
if (gSavedSettings.getBOOL("RenderAvatarVP"))
{
gSavedSettings.setBOOL("RenderDeferred", FALSE);
gSavedSettings.setBOOL("RenderAvatarCloth", FALSE);
gSavedSettings.setBOOL("RenderAvatarVP", FALSE);
}
if (gSavedSettings.getBOOL("VertexShaderEnable"))
{ //disable shaders outright and try again
gSavedSettings.setBOOL("VertexShaderEnable", FALSE);
LL_WARNS() << "Falling back to no vertex shaders." << LL_ENDL;
reentrance = false;
setShaders();
return;
}
}
loadShadersAvatar(); // unloads
llassert(loaded);
loaded = loadShadersObject();
llassert(loaded);
}
}
if (loaded && !loadShadersDeferred())
{ //everything else succeeded but deferred failed, disable deferred and try again
gSavedSettings.setBOOL("RenderDeferred", FALSE);
LL_WARNS() << "Falling back to no deferred shaders." << LL_ENDL;
if (!loaded)
{ //some shader absolutely could not load, try to fall back to a simpler setting
if (gSavedSettings.getBOOL("WindLightUseAtmosShaders"))
{ //disable windlight and try again
gSavedSettings.setBOOL("WindLightUseAtmosShaders", FALSE);
LL_WARNS() << "Falling back to no windlight shaders." << LL_ENDL;
reentrance = false;
setShaders();
return;
}
}
else
{
LLGLSLShader::sNoFixedFunction = false;
gPipeline.mVertexShadersEnabled = FALSE;
gPipeline.mVertexShadersLoaded = 0;
mShaderLevel[SHADER_LIGHTING] = 0;
mShaderLevel[SHADER_INTERFACE] = 0;
mShaderLevel[SHADER_ENVIRONMENT] = 0;
mShaderLevel[SHADER_WATER] = 0;
mShaderLevel[SHADER_OBJECT] = 0;
mShaderLevel[SHADER_EFFECT] = 0;
mShaderLevel[SHADER_WINDLIGHT] = 0;
mShaderLevel[SHADER_AVATAR] = 0;
// <FS:Ansariel> Commented out since setting has been removed
//if (gSavedSettings.getBOOL("VertexShaderEnable"))
//{ //disable shaders outright and try again
// gSavedSettings.setBOOL("VertexShaderEnable", FALSE);
// LL_WARNS() << "Falling back to no vertex shaders." << LL_ENDL;
// reentrance = false;
// setShaders();
// return;
//}
}
llassert(loaded);
if (loaded && !loadShadersDeferred())
{ //everything else succeeded but deferred failed, disable deferred and try again
gSavedSettings.setBOOL("RenderDeferred", FALSE);
LL_WARNS() << "Falling back to no deferred shaders." << LL_ENDL;
reentrance = false;
setShaders();
return;
}
}
else
@ -769,7 +739,7 @@ void LLViewerShaderMgr::setShaders()
}
gPipeline.createGLBuffers();
reentrance = false;
reentrance = false;
}
void LLViewerShaderMgr::unloadShaders()

View File

@ -140,7 +140,6 @@ bool gShiftFrame = false;
//cached settings
bool LLPipeline::RenderAvatarVP;
bool LLPipeline::VertexShaderEnable;
bool LLPipeline::WindLightUseAtmosShaders;
bool LLPipeline::RenderDeferred;
F32 LLPipeline::RenderDeferredSunWash;
@ -571,7 +570,6 @@ void LLPipeline::init()
connectRefreshCachedSettingsSafe("RenderAvatarMaxNonImpostors");
connectRefreshCachedSettingsSafe("RenderDelayVBUpdate");
connectRefreshCachedSettingsSafe("UseOcclusion");
connectRefreshCachedSettingsSafe("VertexShaderEnable");
connectRefreshCachedSettingsSafe("RenderAvatarVP");
connectRefreshCachedSettingsSafe("WindLightUseAtmosShaders");
connectRefreshCachedSettingsSafe("RenderDeferred");
@ -836,8 +834,8 @@ void LLPipeline::resizeScreenTexture()
releaseShadowTargets();
allocateScreenBuffer(resX,resY);
gResizeScreenTexture = FALSE;
}
}
}
}
}
void LLPipeline::allocatePhysicsBuffer()
@ -1075,7 +1073,7 @@ bool LLPipeline::allocateShadowBuffer(U32 resX, U32 resY)
const U32 occlusion_divisor = 3;
F32 scale = llmax(0.f, RenderShadowResolutionScale);
F32 scale = llmax(0.f,RenderShadowResolutionScale);
U32 sun_shadow_map_width = BlurHappySize(resX, scale);
U32 sun_shadow_map_height = BlurHappySize(resY, scale);
@ -1146,7 +1144,6 @@ void LLPipeline::updateRenderDeferred()
LLRenderTarget::sUseFBO &&
LLFeatureManager::getInstance()->isFeatureAvailable("RenderDeferred") &&
LLPipeline::sRenderBump &&
VertexShaderEnable &&
RenderAvatarVP &&
WindLightUseAtmosShaders)) &&
!gUseWireframe;
@ -1180,7 +1177,6 @@ void LLPipeline::refreshCachedSettings()
&& gSavedSettings.getBOOL("UseOcclusion")
&& gGLManager.mHasOcclusionQuery) ? 2 : 0;
VertexShaderEnable = gSavedSettings.getBOOL("VertexShaderEnable");
RenderAvatarVP = gSavedSettings.getBOOL("RenderAvatarVP");
WindLightUseAtmosShaders = gSavedSettings.getBOOL("WindLightUseAtmosShaders");
RenderDeferred = gSavedSettings.getBOOL("RenderDeferred");
@ -1327,7 +1323,7 @@ void LLPipeline::releaseScreenBuffers()
mOcclusionDepth.release();
}
void LLPipeline::releaseShadowTarget(U32 index)
{
mShadow[index].release();
@ -1512,12 +1508,9 @@ void LLPipeline::restoreGL()
bool LLPipeline::canUseVertexShaders()
{
static const std::string vertex_shader_enable_feature_string = "VertexShaderEnable";
if (sDisableShaders ||
!gGLManager.mHasVertexShader ||
!gGLManager.mHasFragmentShader ||
!LLFeatureManager::getInstance()->isFeatureAvailable(vertex_shader_enable_feature_string) ||
(assertInitialized() && mVertexShadersLoaded != 1) )
{
return false;

View File

@ -910,7 +910,6 @@ public:
//cached settings
static bool WindLightUseAtmosShaders;
static bool VertexShaderEnable;
static bool RenderAvatarVP;
static bool RenderDeferred;
static F32 RenderDeferredSunWash;

View File

@ -201,7 +201,7 @@ void FloaterQuickPrefs::initCallbacks()
// Phototools additions
if (getIsPhototools())
{
gSavedSettings.getControl("VertexShaderEnable")->getSignal()->connect(boost::bind(&FloaterQuickPrefs::refreshSettings, this));
gSavedSettings.getControl("RenderObjectBump")->getSignal()->connect(boost::bind(&FloaterQuickPrefs::refreshSettings, this));
gSavedSettings.getControl("WindLightUseAtmosShaders")->getSignal()->connect(boost::bind(&FloaterQuickPrefs::refreshSettings, this));
gSavedSettings.getControl("RenderDeferred")->getSignal()->connect(boost::bind(&FloaterQuickPrefs::refreshSettings, this));
gSavedSettings.getControl("RenderAvatarVP")->getSignal()->connect(boost::bind(&FloaterQuickPrefs::refreshSettings, this));
@ -514,7 +514,6 @@ BOOL FloaterQuickPrefs::postBuild()
// Phototools additions
if (getIsPhototools())
{
mCtrlShaderEnable = getChild<LLCheckBoxCtrl>("BasicShaders");
mCtrlWindLight = getChild<LLCheckBoxCtrl>("WindLightUseAtmosShaders");
mCtrlDeferred = getChild<LLCheckBoxCtrl>("RenderDeferred");
mCtrlUseSSAO = getChild<LLCheckBoxCtrl>("UseSSAO");
@ -954,29 +953,23 @@ void FloaterQuickPrefs::setSelectedDayCycle(const std::string& preset_name)
// Phototools additions
void FloaterQuickPrefs::refreshSettings()
{
BOOL reflections = gSavedSettings.getBOOL("VertexShaderEnable") && gGLManager.mHasCubeMap && LLCubeMap::sUseCubeMaps;
BOOL reflections = gGLManager.mHasCubeMap && LLCubeMap::sUseCubeMaps;
mCtrlReflectionDetail->setEnabled(reflections);
bool fCtrlShaderEnable = LLFeatureManager::getInstance()->isFeatureAvailable("VertexShaderEnable");
mCtrlShaderEnable->setEnabled(fCtrlShaderEnable && ((!gRlvHandler.hasBehaviour(RLV_BHVR_SETENV)) || (!gSavedSettings.getBOOL("VertexShaderEnable"))) );
BOOL shaders = mCtrlShaderEnable->get();
bool fCtrlWindLightEnable = fCtrlShaderEnable && shaders;
mCtrlWindLight->setEnabled(fCtrlWindLightEnable && ((!gRlvHandler.hasBehaviour(RLV_BHVR_SETENV)) || (!gSavedSettings.getBOOL("WindLightUseAtmosShaders"))) );
mCtrlWindLight->setEnabled((!gRlvHandler.hasBehaviour(RLV_BHVR_SETENV)) || (!gSavedSettings.getBOOL("WindLightUseAtmosShaders")) );
LLTextBox* sky_label = getChild<LLTextBox>("T_Sky_Detail");
LLSlider* sky_slider = getChild<LLSlider>("SB_Sky_Detail");
LLSpinCtrl* sky_spinner = getChild<LLSpinCtrl>("S_Sky_Detail");
LLButton* sky_default_button = getChild<LLButton>("Reset_Sky_Detail");
BOOL sky_enabled = mCtrlWindLight->get() && shaders;
sky_label->setEnabled(sky_enabled);
sky_slider->setEnabled(sky_enabled);
sky_spinner->setEnabled(sky_enabled);
sky_default_button->setEnabled(sky_enabled);
sky_label->setEnabled(TRUE);
sky_slider->setEnabled(TRUE);
sky_spinner->setEnabled(TRUE);
sky_default_button->setEnabled(TRUE);
BOOL enabled = LLFeatureManager::getInstance()->isFeatureAvailable("RenderDeferred") &&
shaders &&
BOOL enabled = LLFeatureManager::getInstance()->isFeatureAvailable("RenderDeferred") &&
gSavedSettings.getBOOL("RenderObjectBump") &&
gGLManager.mHasFramebufferObject &&
gSavedSettings.getBOOL("RenderAvatarVP") &&
(mCtrlWindLight->get()) ? TRUE : FALSE;
@ -994,39 +987,6 @@ void FloaterQuickPrefs::refreshSettings()
mCtrlAvatarShadowDetail->setEnabled(enabled && mCtrlShadowDetail->getValue().asInteger() > 0);
// if vertex shaders off, disable all shader related products
if (!LLFeatureManager::getInstance()->isFeatureAvailable("VertexShaderEnable"))
{
mCtrlShaderEnable->setEnabled(FALSE);
mCtrlShaderEnable->setValue(FALSE);
mCtrlWindLight->setEnabled(FALSE);
mCtrlWindLight->setValue(FALSE);
sky_label->setEnabled(FALSE);
sky_slider->setEnabled(FALSE);
sky_spinner->setEnabled(FALSE);
sky_default_button->setEnabled(FALSE);
mCtrlReflectionDetail->setEnabled(FALSE);
mCtrlReflectionDetail->setValue(0);
mCtrlShadowDetail->setEnabled(FALSE);
mCtrlShadowDetail->setValue(0);
mCtrlAvatarShadowDetail->setEnabled(FALSE);
mCtrlAvatarShadowDetail->setValue(0);
mCtrlUseSSAO->setEnabled(FALSE);
mCtrlUseSSAO->setValue(FALSE);
mCtrlUseDoF->setEnabled(FALSE);
mCtrlUseDoF->setValue(FALSE);
mCtrlDeferred->setEnabled(FALSE);
mCtrlDeferred->setValue(FALSE);
}
// disabled windlight
if (!LLFeatureManager::getInstance()->isFeatureAvailable("WindLightUseAtmosShaders"))
{

View File

@ -127,7 +127,6 @@ private:
LLComboBox* mDayCyclePresetsCombo;
// Phototools additions
LLCheckBoxCtrl* mCtrlShaderEnable;
LLCheckBoxCtrl* mCtrlWindLight;
LLCheckBoxCtrl* mCtrlDeferred;
LLCheckBoxCtrl* mCtrlUseSSAO;

View File

@ -2274,7 +2274,6 @@ void RlvBehaviourToggleHandler<RLV_BHVR_SETENV>::onCommandToggle(ERlvBehaviour e
}
// Don't allow toggling "Basic Shaders" and/or "Atmopsheric Shaders" through the debug settings under @setenv=n
gSavedSettings.getControl("VertexShaderEnable")->setHiddenFromSettingsEditor(fHasBhvr);
gSavedSettings.getControl("WindLightUseAtmosShaders")->setHiddenFromSettingsEditor(fHasBhvr);
// Restore the user's WindLight preferences when releasing

View File

@ -681,7 +681,7 @@ with the same filename but different name
<texture name="Snapshot_Email" file_name="snapshot_email.png" preload="false" />
<texture name="Snapshot_Inventory" file_name="toolbar_icons/inventory.png" preload="false" />
<texture name="Snapshot_Profile" file_name="toolbar_icons/profile.png" preload="false" />
<texture name="startup_logo" file_name="windows/startup_logo.png" preload="true" />
<texture name="startup_logo" file_name="windows/startup_logo.png" preload="true" />
<texture name="login_fs_logo" file_name="windows/login_fs_logo.png" preload="true" />
<texture name="login_sl_logo" file_name="windows/login_sl_logo.png" preload="true" />

View File

@ -26,14 +26,13 @@
<text name="ShadersText">
Overflader:
</text>
<check_box label="Gennemsigtig vand" name="TransparentWater"/>
<check_box label="Glatte flader og skin" name="BumpShiny"/>
<check_box label="Lokale lys" name="LocalLights"/>
<check_box label="Basale flader" name="BasicShaders" tool_tip="Ved at slå dette valg fra, kan det forhindres at visse grafikkort drivere crasher."/>
<check_box label="Atmosfæriske flader" name="WindLightUseAtmosShaders"/>
<check_box label="Lys og skygger" name="UseLightShaders"/>
<check_box label="&quot;Ambient Occlusion&quot;" name="UseSSAO"/>
<check_box label="Skarphedsdybde" name="UseDoF"/>
<check_box initial_value="true" label="Gennemsigtig vand" name="TransparentWater"/>
<check_box initial_value="true" label="Glatte flader og skin" name="BumpShiny"/>
<check_box initial_value="true" label="Lokale lys" name="LocalLights"/>
<check_box initial_value="true" label="Atmosfæriske flader" name="WindLightUseAtmosShaders"/>
<check_box initial_value="true" label="Lys og skygger" name="UseLightShaders"/>
<check_box initial_value="true" label="&quot;Ambient Occlusion&quot;" name="UseSSAO"/>
<check_box initial_value="true" label="Skarphedsdybde" name="UseDoF"/>
<text name="shadows_label">
Skygger:
</text>
@ -96,9 +95,9 @@
<text name="AvatarRenderingText">
Avatar rendering:
</text>
<check_box label="Mini-figurer på lang afstand" name="AvatarImpostors"/>
<check_box label="Hardware Skinning" name="AvatarVertexProgram"/>
<check_box label="Avatar tøj" name="AvatarCloth"/>
<check_box initial_value="true" label="Mini-figurer på lang afstand" name="AvatarImpostors"/>
<check_box initial_value="true" label="Hardware Skinning" name="AvatarVertexProgram"/>
<check_box initial_value="true" label="Avatar tøj" name="AvatarCloth"/>
<text name="TerrainDetailText">
Terræn detaljer:
</text>

View File

@ -10,7 +10,6 @@
</panel>
<panel name="P_WL_Settings">
<check_box label="Einfache Shader - Aktiviert lassen (s. Tooltip!)" name="BasicShaders" tool_tip="Diese Einstellung sollte IMMER eingeschaltet sein, da sie für Schärfentiefe, Erweitertes Beleuchtungsmodell, Ambient Occlusion, Wasserreflektionen und weiteren Features benötigt wird."/>
<check_box name="WindLightUseAtmosShaders" label="Atmosphären-Shader aktivieren (Windlight)" tool_tip="Diese Einstellung aktiviert die komplette Windlight-Funktionalität (Atmosphären-Shader). Falls diese Einstellung nicht aktiviert werden kann, bitte prüfen, ob „Einfache Shader“ weiter unten aktiviert sind."/>
</panel>

View File

@ -82,7 +82,6 @@
<check_box initial_value="true" label="Transparentes Wasser" name="TransparentWater"/>
<check_box initial_value="true" label="Bumpmapping und Glanz" name="BumpShiny"/>
<check_box initial_value="true" label="Lokale Lichtquellen" name="LocalLights"/>
<check_box initial_value="true" label="Einfache Shader" name="BasicShaders" tool_tip="Deaktivieren Sie diese Option, wenn der Grafikkartentreiber Abstürze verursacht"/>
<slider label="Terraindetails:" name="TerrainDetail"/>
<text name="TerrainDetailText">
Niedrig

View File

@ -33,7 +33,6 @@
<check_box label="Transparentes Wasser" name="TransparentWater"/>
<check_box label="Bumpmapping und Glanz" name="BumpShiny"/>
<check_box label="Lokale Lichtquellen" name="LocalLights"/>
<check_box label="Einfache Shader" name="BasicShaders" tool_tip="Deaktivieren Sie diese Option, wenn der Grafikkartentreiber Abstürze verursacht"/>
<check_box label="Atmosphären-Shader" name="WindLightUseAtmosShaders"/>
<check_box label="Erw. Beleuchtungsmodell" name="UseLightShaders" tool_tip="Aktiviert erweitertes Rendering von Lichtquellen."/>
<check_box label="Ambient Occlusion" name="UseSSAO"/>

View File

@ -71,27 +71,15 @@
height="61"
border_visible="true"
background_visible="true">
<check_box
control_name="VertexShaderEnable"
height="16"
label="Basic Shaders - Leave ON! (see tool tip!)"
layout="topleft"
left="5"
name="BasicShaders"
tool_tip="This should ALWAYS be on as it is required for DoF, Shadows and Lights, Ambient Occlusion, Water Reflections and more."
top_pad="8"
width="240">
</check_box>
<check_box
control_name="WindLightUseAtmosShaders"
enabled_control="VertexShaderEnable"
height="16"
initial_value="true"
label="Enable Atmospheric Shaders (Windlight)"
layout="topleft"
left="5"
name="WindLightUseAtmosShaders"
top_pad="2"
top_pad="8"
tool_tip="This will enable full WindLight functionality (atmospheric shaders). If you cannot enable this feature, ensure that Basic Shaders are enabled below."
width="240">
</check_box>
@ -608,7 +596,6 @@
</text>
<combo_box
control_name="RenderWaterRefResolution"
enabled_control="VertexShaderEnable"
height="22"
layout="topleft"
left_pad="65"
@ -701,7 +688,6 @@
background_visible="true">
<check_box
control_name="RenderDeferred"
enabled_control="VertexShaderEnable"
height="16"
initial_value="true"
label="Enable Advanced Lighting Model"
@ -1937,7 +1923,6 @@
<!--
<check_box
control_name="RenderGlow"
enabled_control="VertexShaderEnable"
height="16"
label="Enable Glow Effect (please read the tool tip)"
layout="topleft"

View File

@ -609,7 +609,7 @@
top_delta="16"
width="300">
<check_box.commit_callback
function="Pref.VertexShaderEnable" />
function="Pref.RenderOptionUpdate" />
</check_box>
<check_box
@ -623,6 +623,7 @@
top_delta="16"
width="300" />
<!-- SL-12594, basic shaders always enabled, no fixed-function GL
<check_box
control_name="VertexShaderEnable"
height="16"
@ -637,7 +638,8 @@
<check_box.commit_callback
function="Pref.VertexShaderEnable" />
</check_box>
-->
<slider
control_name="RenderTerrainDetail"
follows="left|top"
@ -683,7 +685,7 @@
top_delta="16"
width="280">
<check_box.commit_callback
function="Pref.VertexShaderEnable" />
function="Pref.RenderOptionUpdate" />
</check_box>
<check_box
@ -751,7 +753,7 @@
top_delta="16"
width="280">
<check_box.commit_callback
function="Pref.VertexShaderEnable" />
function="Pref.RenderOptionUpdate" />
</check_box>
<slider
@ -800,7 +802,7 @@
top_delta="16"
width="260">
<check_box.commit_callback
function="Pref.VertexShaderEnable" />
function="Pref.RenderOptionUpdate" />
</check_box>
<check_box
@ -814,7 +816,7 @@
top_delta="16"
width="240">
<check_box.commit_callback
function="Pref.VertexShaderEnable" />
function="Pref.RenderOptionUpdate" />
</check_box>
<check_box
@ -828,7 +830,7 @@
top_delta="16"
width="240">
<check_box.commit_callback
function="Pref.VertexShaderEnable" />
function="Pref.RenderOptionUpdate" />
</check_box>
<!--

View File

@ -265,7 +265,7 @@
top_pad="1"
width="256" >
<check_box.commit_callback
function="Pref.VertexShaderEnable" />
function="Pref.RenderOptionUpdate" />
</check_box>
<check_box
control_name="RenderLocalLights"
@ -277,20 +277,6 @@
name="LocalLights"
top_pad="1"
width="256" />
<check_box
control_name="VertexShaderEnable"
height="16"
initial_value="true"
label="Basic shaders"
layout="topleft"
left_delta="0"
name="BasicShaders"
tool_tip="Disabling this option may prevent some graphics card drivers from crashing"
top_pad="1"
width="315">
<check_box.commit_callback
function="Pref.VertexShaderEnable" />
</check_box>
<check_box
control_name="WindLightUseAtmosShaders"
height="16"
@ -302,7 +288,7 @@
top_pad="1"
width="256">
<check_box.commit_callback
function="Pref.VertexShaderEnable" />
function="Pref.RenderOptionUpdate" />
</check_box>
<check_box
control_name="RenderDeferred"
@ -316,7 +302,7 @@
top_pad="1"
width="256">
<check_box.commit_callback
function="Pref.VertexShaderEnable" />
function="Pref.RenderOptionUpdate" />
</check_box>
<check_box
control_name="RenderDeferredSSAO"
@ -329,7 +315,7 @@
top_pad="1"
width="256">
<check_box.commit_callback
function="Pref.VertexShaderEnable" />
function="Pref.RenderOptionUpdate" />
</check_box>
<text
@ -354,7 +340,7 @@
name="ShadowDetail"
width="150">
<combo_box.commit_callback
function="Pref.VertexShaderEnable" />
function="Pref.RenderOptionUpdate" />
<combo_box.item
label="None"
name="0"
@ -753,7 +739,7 @@
top_pad="5"
width="256">
<check_box.commit_callback
function="Pref.VertexShaderEnable" />
function="Pref.RenderOptionUpdate" />
</check_box>
<check_box
control_name="RenderAvatarCloth"
@ -1383,7 +1369,7 @@
top_pad="25"
width="256">
<check_box.commit_callback
function="Pref.VertexShaderEnable" />
function="Pref.RenderOptionUpdate" />
</check_box>
<check_box
control_name="RenderDepthOfFieldInEditMode"

View File

@ -8,8 +8,6 @@
</text>
</panel>
<panel name="P_WL_Settings">
<check_box label="Efectos básicos - !Déjalo activado!" name="BasicShaders"
tool_tip="Esto debería estar SIEMPRE activado, ya que es necesario para PdC, sombras y luces, oclusión de ambiente, reflejos en el agua, etc.."/>
<check_box label="Activar efectos atmosféricos (Windlight)" name="WindLightUseAtmosShaders" tool_tip="Esto activa la funcionalidad completa de Windlight (efectos atmosféricos). Si no puedes activar esta característica, asegúrate de que los efectos básicos están activados."/>
</panel>
<panel name="P_WL_Sky_Water">

View File

@ -82,7 +82,6 @@
<check_box initial_value="true" label="Agua transparente" name="TransparentWater"/>
<check_box initial_value="true" label="Efecto de relieve y brillo" name="BumpShiny"/>
<check_box initial_value="true" label="Puntos de luz locales" name="LocalLights"/>
<check_box initial_value="true" label="Shaders básicos" name="BasicShaders" tool_tip="Desactivar esta opción puede evitar que se bloqueen los controladores de algunas tarjetas gráficas"/>
<slider label="Nivel de detalle del terreno:" name="TerrainDetail"/>
<text name="TerrainDetailText">
Bajo

View File

@ -33,7 +33,6 @@
<check_box label="Agua transparente" name="TransparentWater"/>
<check_box label="Mapeado topológico y brillos" name="BumpShiny"/>
<check_box label="Focos locales de luz" name="LocalLights"/>
<check_box label="Efectos básicos" name="BasicShaders" tool_tip="Desactivar esta opción puede evitar que algunas tarjetas gráficas fallen"/>
<check_box label="Efectos atmosféricos" name="WindLightUseAtmosShaders"/>
<check_box label="Modelo avanz. de iluminación" tool_tip="Activa el dibujo avanzado de la luz" name="UseLightShaders"/>
<check_box label="Oclusión de ambiente" name="UseSSAO"/>

View File

@ -82,7 +82,6 @@
<check_box initial_value="true" label="Eau transparente" name="TransparentWater"/>
<check_box initial_value="true" label="Placage de relief et brillance" name="BumpShiny"/>
<check_box initial_value="true" label="Lumières locales" name="LocalLights"/>
<check_box initial_value="true" label="Effets de base" name="BasicShaders" tool_tip="La désactivation de cette option peut éviter le plantage de certains pilotes de cartes graphiques"/>
<slider label="Rendu du terrain :" name="TerrainDetail"/>
<text name="TerrainDetailText">
Faible

View File

@ -14,7 +14,6 @@
<check_box label="Transparence de l'eau" name="TransparentWater"/>
<check_box label="Relief &amp; Brillance" name="BumpShiny"/>
<check_box label="Éclairage local" name="LocalLights"/>
<check_box label="Shaders basiques" name="BasicShaders" tool_tip="Désactiver cette option peut empêcher certains pilotes de cartes graphiques de planter"/>
<check_box label="Shaders atmosphériques" name="WindLightUseAtmosShaders"/>
<check_box label="Éclairage avancé" tool_tip="Permet un rendu de lumière avancé" name="UseLightShaders"/>
<check_box label="Occlusion ambiante" name="UseSSAO"/>

View File

@ -8,7 +8,6 @@
</text>
</panel>
<panel name="P_WL_Settings">
<check_box label="Effetti base - lasciare ON (vedi suggerimento)" name="BasicShaders" tool_tip="Dovrebbe sempre rimanere attivo, è richiesto per la profondità di campo, luci e ombre, riflessi acqua e altro"/>
<check_box label="Abilita resa ambiente" name="WindLightUseAtmosShaders" tool_tip="Abilita tutte le funzioni ambiente. Se non si può attivare, lasciare almeno gli effetti base qui sopra"/>
</panel>
<panel name="P_WL_Sky_Water">

View File

@ -1,19 +1,28 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="prefs_graphics_advanced" title="Preferenze grafica avanzate">
<floater name="prefs_graphics_advanced" title="PREFERENZE AVANZATE GRAFICA">
<text name="GeneralText">
Generali
</text>
<slider label="Distanza disegno:" name="DrawDistance"/>
<slider label="Distanza visualizzazione:" name="DrawDistance"/>
<text name="DrawDistanceMeterText2">
m
</text>
<slider label="Numero massimo particelle:" name="MaxParticleCount"/>
<slider label="Qualità post-produzione:" name="RenderPostProcess"/>
<slider label="Qualità dopo l&apos;elaborazione:" name="RenderPostProcess"/>
<text name="PostProcessText">
Basso
</text>
<text name="AvatarText">
Avatar
</text>
<slider label="Complessità massima:" name="IndirectMaxComplexity" tool_tip="Definisce da che livello in poi un avatar dall&apos;aspetto complesso viene visualizzato come pupazzo (JellyDoll)"/>
<slider label="N. max avatar completi:" name="IndirectMaxNonImpostors"/>
<slider label="Complessità massima:" name="IndirectMaxComplexity" tool_tip="Definisce il punto in cui un avatar dall&apos;aspetto complesso viene visualizzato come JellyDoll"/>
<text name="IndirectMaxComplexityText">
0
</text>
<slider label="N. max di non impostori:" name="IndirectMaxNonImpostors"/>
<text name="IndirectMaxNonImpostorsText">
0
</text>
<slider label="Dettagli:" name="AvatarMeshDetail"/>
<text name="AvatarMeshDetailText">
Basso
@ -22,32 +31,36 @@
<text name="AvatarPhysicsDetailText">
Basso
</text>
<text name="ShadersText">
<text name="HardwareText">
Hardware
</text>
<slider label="Memoria texture (MB):" name="GraphicsCardTextureMemory" tool_tip="Spazio di memoria da assegnare alle texture. Utilizza la memoria della scheda video come impostazione predefinita. La riduzione di questa impostazione potrebbe migliorare il rendimento ma potrebbe anche rendere le texture poco definite."/>
<slider label="Distanza della nebbia:" name="fog"/>
<slider label="Rapporto distanza nebbia:" name="fog"/>
<slider label="Gamma:" name="gamma"/>
<text name="(brightness, lower is brighter)">
(0 = predefinito, più basso = più luminoso)
(0 = luminosità predefinita, più basso = più luminoso)
</text>
<check_box label="Filtro anisotropico (rallenta se attivo)" name="ani"/>
<check_box label="Attiva OpenGL Vertex Buffer sugli oggetti" name="vbo" tool_tip="Se si attiva questa impostazione su hardware più recente si migliorano le prestazioni. Con la funzione attiva, l&apos;hardware meno recente potrebbe implementare VBO in maniera errata, causando blocchi."/>
<check_box label="Attiva compressione texture (richiede riavvio)" name="texture compression" tool_tip="Comprime le texture nella memoria video, consentendo il caricamento di texture a risoluzione maggiore al prezzo di una perdita di qualità del colore."/>
<check_box label="Filtro anisotropico (rallenta quando è attivato)" name="ani"/>
<check_box initial_value="true" label="Attiva oggetti buffer vertici OpenGL" name="vbo" tool_tip="Se si attiva questa impostazione su hardware più recente si migliorano le prestazioni. Con la funzione attiva, l&apos;hardware meno recente potrebbe implementare VBO in maniera errata, causando interruzioni."/>
<check_box initial_value="true" label="Attiva compressione texture (richiede riavvio)" name="texture compression" tool_tip="Comprime le texture nella memoria video, consentendo il caricamento di texture a risoluzione maggiore al prezzo di una perdita di qualità del colore."/>
<check_box initial_value="true" label="Abilita assistenza per display HiDPI (riavvio necessario)" name="use HiDPI" tool_tip="Abilita OpenGL per disegni ad alta risoluzione."/>
<text name="antialiasing label">
Antialiasing:
</text>
<combo_box label="Antialiasing" name="fsaa">
<combo_box.item label="Disattivato" name="FSAADisabled"/>
<combo_box.item label="2x" name="2x"/>
<combo_box.item label="4x" name="4x"/>
<combo_box.item label="8x" name="8x"/>
<combo_box.item label="16x" name="16x"/>
</combo_box>
<text name="antialiasing restart">
(richiede riavvio)
(richiede il riavvio)
</text>
<text name="AvatarText">
Rilievo
<text name="MeshText">
Mesh
</text>
<slider label="Dettagli rilievo terreno:" name="TerrainMeshDetail"/>
<slider label="Dettagli mesh terreno:" name="TerrainMeshDetail"/>
<text name="TerrainMeshDetailText">
Basso
</text>
@ -64,18 +77,17 @@
Basso
</text>
<text name="ShadersText">
Effetti grafici
Shader
</text>
<check_box label="Trasparenza acqua" name="TransparentWater"/>
<check_box label="Piccoli rilievi e scintillii" name="BumpShiny"/>
<check_box label="Luci locali" name="LocalLights"/>
<check_box label="Effetti grafici base" name="BasicShaders" tool_tip="Se si disattiva questa opzione, si possono evitare blocchi nei driver di alcune schede grafiche"/>
<check_box initial_value="true" label="Acqua trasparente" name="TransparentWater"/>
<check_box initial_value="true" label="Mappatura urti e brillantezza" name="BumpShiny"/>
<check_box initial_value="true" label="Luci locali" name="LocalLights"/>
<slider label="Dettagli terreno:" name="TerrainDetail"/>
<text name="TerrainDetailText">
Basso
</text>
<check_box label="Aspetto hardware avatar" name="AvatarVertexProgram"/>
<check_box label="Abiti avatar" name="AvatarCloth"/>
<check_box initial_value="true" label="Hardware skinning avatar" name="AvatarVertexProgram"/>
<check_box initial_value="true" label="Stoffa avatar" name="AvatarCloth"/>
<text name="ReflectionsText">
Riflessi nellacqua:
</text>
@ -86,22 +98,25 @@
<combo_box.item label="Tutti gli avatar e gli oggetti" name="3"/>
<combo_box.item label="Tutto" name="4"/>
</combo_box>
<check_box label="Ombre atmosfera" name="WindLightUseAtmosShaders"/>
<check_box initial_value="true" label="Shader atmosfera" name="WindLightUseAtmosShaders"/>
<slider label="Cielo:" name="SkyMeshDetail"/>
<text name="SkyMeshDetailText">
Basso
</text>
<check_box label="Luci e ombre" name="UseLightShaders"/>
<check_box label="Ombre ambiente" name="UseSSAO"/>
<check_box label="Profondità di campo" name="UseDoF"/>
<check_box initial_value="true" label="Modello illuminazione avanzato" name="UseLightShaders"/>
<check_box initial_value="true" label="Occlusione ambientale" name="UseSSAO"/>
<check_box initial_value="true" label="Profondità di campo" name="UseDoF"/>
<text name="RenderShadowDetailText">
Ombre:
</text>
<combo_box name="ShadowDetail">
<combo_box.item label="Nessuna" name="0"/>
<combo_box.item label="Nessuno" name="0"/>
<combo_box.item label="Sole/Luna" name="1"/>
<combo_box.item label="Sole/Luna + proiettori" name="2"/>
<combo_box.item label="Sole/Luna + Proiettori" name="2"/>
</combo_box>
<button label="Ripristina impostazioni consigliate" name="Defaults"/>
<button label="OK" label_selected="OK" name="OK"/>
<button label="Annulla" label_selected="Annulla" name="Cancel"/>
<check_box label="RenderAvatarMaxComplexity" name="RenderAvatarMaxComplexity"/>
<check_box label="RenderAvatarMaxNonImpostors" name="RenderAvatarMaxNonImpostors"/>
</floater>

View File

@ -33,7 +33,6 @@
<check_box label="Trasparenza acqua" name="TransparentWater"/>
<check_box label="Piccoli rilievi e scintillii" name="BumpShiny"/>
<check_box label="Luci locali" name="LocalLights"/>
<check_box label="Effetti grafici base" name="BasicShaders" tool_tip="Disabilitare questa opzione può evitare che qualche scheda grafica vada in crash."/>
<check_box label="Effetti grafici atmosferici" name="WindLightUseAtmosShaders"/>
<check_box label="Luci e ombre" name="UseLightShaders" tool_tip="Abilita la gestione avanzata delle luci"/>
<check_box label="Ombre ambiente" name="UseSSAO"/>

View File

@ -13,7 +13,6 @@
</panel>
<panel name="P_WL_Settings">
<check_box label="基本シェーダー - 必ず ON! (ヒント参照!)" name="BasicShaders" tool_tip="この項目には「常に」チェックが入っている必要があります。何故なら、被写界深度DOF、光と影、アンビエントオクルージョン、水の反射その他多くの設定に必須となっているからです。" />
<check_box label="環境大気シェーダーWindLightを有効にする" name="WindLightUseAtmosShaders" tool_tip="ここにチェックを入れるとWindLightの機能環境シェーダーをフルに利用できます。もしこの機能を有効にできない時は、「基本シェーダー」が有効になっているか確認して下さい。" />
</panel>

View File

@ -82,7 +82,6 @@
<check_box initial_value="true" label="透明な水" name="TransparentWater"/>
<check_box initial_value="true" label="バンプマッピングと光沢" name="BumpShiny"/>
<check_box initial_value="true" label="近くの光" name="LocalLights"/>
<check_box initial_value="true" label="基本シェーダー" name="BasicShaders" tool_tip="このオプションを無効にすると、グラフィックカードのドライバの種類によっては、クラッシュするのを防ぎます。"/>
<slider label="地形詳細:" name="TerrainDetail"/>
<text name="TerrainDetailText">

View File

@ -43,7 +43,6 @@
<check_box label="透明な水" name="TransparentWater"/>
<check_box label="バンプマッピングと光沢" name="BumpShiny"/>
<check_box label="近くの光" name="LocalLights"/>
<check_box label="基本シェーダー" name="BasicShaders" tool_tip="このオプションを無効にすると、グラフィックカードのドライバの種類によっては、クラッシュするのを防ぎます。"/>
<check_box label="環境(大気)シェーダー" name="WindLightUseAtmosShaders"/>
<check_box label="高度な照明モデル" name="UseLightShaders"/>
<check_box label="アンビエントオクルージョン" name="UseSSAO"/>

View File

@ -8,7 +8,6 @@
</text>
</panel>
<panel name="P_WL_Settings">
<check_box label="Podstawowe shadery - włącz! (chmurka)" name="BasicShaders" tool_tip="Ta opcja powinna być ZAWSZE włączona. Jeśli zmienisz ustawienia rozdzielczości znajdujące się powyżej musisz wyłączyć i włączyć tą opcję, aby zmiany odniosły skutek."/>
<check_box label="Włącz shadery atmosfery (Windlight)" name="WindLightUseAtmosShaders" tool_tip="Ta opcja włącza pełną funkcjonalność systemu Windlight (shadery atmosfery). Jeśli nie można włączyć tej funkcji to należy upewnić się, że są zaznaczone 'podstawowe shadery' powyżej."/>
</panel>
<panel name="P_WL_Sky_Water">

View File

@ -33,7 +33,6 @@
<check_box label="Przezroczysta woda" name="TransparentWater"/>
<check_box label="Mapping wypukłości i połysk" name="BumpShiny"/>
<check_box label="Lokalne światła" name="LocalLights"/>
<check_box label="Podstawowe shadery" name="BasicShaders" tool_tip="Wyłączenie tej opcji może naprawić błędy niektórych sterowników graficznych."/>
<check_box label="Shadery atmosfery" name="WindLightUseAtmosShaders"/>
<check_box label="Zaawansowane oświetlenie" tool_tip="Włącza zaawansowane renderowanie świateł ('deferred rendering')." name="UseLightShaders"/>
<check_box label="Okluzja otoczenia" name="UseSSAO"/>

View File

@ -82,7 +82,6 @@
<check_box initial_value="true" label="Água transparente" name="TransparentWater"/>
<check_box initial_value="true" label="Mapeamento de relevo e brilho" name="BumpShiny"/>
<check_box initial_value="true" label="Luzes locais" name="LocalLights"/>
<check_box initial_value="true" label="Sombreamento simples" name="BasicShaders" tool_tip="Desativar essa opção pode evitar o travamento de alguns drivers de placas gráficas"/>
<slider label="Detalhes do terreno:" name="TerrainDetail"/>
<text name="TerrainDetailText">
Baixo

View File

@ -29,7 +29,6 @@ rápido
<check_box label="Água transparente" name="TransparentWater"/>
<check_box label="Bump de Mapeamento e Brilho" name="BumpShiny"/>
<check_box label="Luzes locais" name="LocalLights"/>
<check_box label="Sombreadores básicos" name="BasicShaders" tool_tip="Desabilitar esta opção poderá impedir que alguns drivers de placa de vídeo a travem."/>
<check_box label="Sombreadores Atmosféricos" name="WindLightUseAtmosShaders"/>
<check_box label="Modelo avançado de luzes" name="UseLightShaders"/>
<check_box label="Oclusão ambiental" name="UseSSAO"/>

View File

@ -82,7 +82,6 @@
<check_box initial_value="true" label="Прозрачность воды" name="TransparentWater"/>
<check_box initial_value="true" label="Рельефность и сияние" name="BumpShiny"/>
<check_box initial_value="true" label="Локальный свет" name="LocalLights"/>
<check_box initial_value="true" label="Базовые шейдеры" name="BasicShaders" tool_tip="Отключение этого параметра может предотвратить зависание некоторых видеокарт"/>
<slider label="Ландшафт:" name="TerrainDetail"/>
<text name="TerrainDetailText">
Низкая

View File

@ -30,7 +30,6 @@
<check_box label="Прозрачная вода" name="TransparentWater"/>
<check_box label="Выпуклости и блеск" name="BumpShiny"/>
<check_box label="Локальный свет" name="LocalLights"/>
<check_box label="Основные шейдеры" name="BasicShaders" tool_tip="Отключение этой опции может предотвратить некоторые драйверы видеокарты от сбоев"/>
<check_box label="Атмосферные шейдеры" name="WindLightUseAtmosShaders"/>
<check_box label="Расшир. модель освещения" tool_tip="Включить расширенную прорисовку освещения. ('deferred rendering')." name="UseLightShaders"/>
<check_box label="Окклюзия окружения" name="UseSSAO"/>

View File

@ -82,7 +82,6 @@
<check_box initial_value="true" label="Saydam Su" name="TransparentWater"/>
<check_box initial_value="true" label="Tümsek eşleme ve parlaklık" name="BumpShiny"/>
<check_box initial_value="true" label="Yerel Işıklar" name="LocalLights"/>
<check_box initial_value="true" label="Temel gölgeleyiciler" name="BasicShaders" tool_tip="Bu seçeneğin devre dışı bırakılması bazı grafik kartlarının sürücülerinin kilitlenmesini önleyebilir"/>
<slider label="Yüzey Ayrıntısı:" name="TerrainDetail"/>
<text name="TerrainDetailText">
Düşük

View File

@ -28,7 +28,6 @@
<check_box label="Saydam Su" name="TransparentWater"/>
<check_box label="Tümsek eşleme ve parlaklık" name="BumpShiny"/>
<check_box label="Yerel Işıklar" name="LocalLights"/>
<check_box label="Temel gölgeleyiciler" name="BasicShaders" tool_tip="Bu seçeneğin devre dışı bırakılması bazı grafik kartlarının sürücülerinin kilitlenmesini önleyebilir"/>
<check_box label="Atmosferik gölgeleyiciler" name="WindLightUseAtmosShaders"/>
<check_box label="Gelişmiş Aydınlatma Modeli" name="UseLightShaders"/>
<check_box label="Ortam Gölgeleme" name="UseSSAO"/>

View File

@ -82,7 +82,6 @@
<check_box initial_value="true" label="清澈透明的水" name="TransparentWater"/>
<check_box initial_value="true" label="凹凸映射與光澤效果" name="BumpShiny"/>
<check_box initial_value="true" label="本地光線" name="LocalLights"/>
<check_box initial_value="true" label="基本著色" name="BasicShaders" tool_tip="關閉此一選項可能避免部分顯示卡驅動程式損毀當機"/>
<slider label="地形細節:" name="TerrainDetail"/>
<text name="TerrainDetailText">

View File

@ -28,7 +28,6 @@
<check_box label="清澈透明的水" name="TransparentWater"/>
<check_box label="凹凸映射與光澤效果" name="BumpShiny"/>
<check_box label="本地光線" name="LocalLights"/>
<check_box label="基本著色" name="BasicShaders" tool_tip="關閉此一選項可能避免部分顯示卡驅動程式損毀當機"/>
<check_box label="大氣著色" name="WindLightUseAtmosShaders"/>
<check_box label="進階照明模型" name="UseLightShaders"/>
<check_box label="環境光遮蔽" name="UseSSAO"/>