Merge DRTVWR-440
commit
3c158f981a
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -55,7 +55,6 @@
|
|||
<string>RenderWaterRefResolution</string>
|
||||
<string>TextureDiscardLevel</string>
|
||||
<string>TextureMemory</string>
|
||||
<string>VertexShaderEnable</string>
|
||||
<string>WindLightUseAtmosShaders</string>
|
||||
<string>WLSkyDetail</string>
|
||||
</array>
|
||||
|
|
|
|||
|
|
@ -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"/>
|
||||
|
|
|
|||
|
|
@ -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"/>
|
||||
|
|
|
|||
|
|
@ -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"/>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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"/>
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
};
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -910,7 +910,6 @@ public:
|
|||
|
||||
//cached settings
|
||||
static bool WindLightUseAtmosShaders;
|
||||
static bool VertexShaderEnable;
|
||||
static bool RenderAvatarVP;
|
||||
static bool RenderDeferred;
|
||||
static F32 RenderDeferredSunWash;
|
||||
|
|
|
|||
|
|
@ -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"))
|
||||
{
|
||||
|
|
|
|||
|
|
@ -127,7 +127,6 @@ private:
|
|||
LLComboBox* mDayCyclePresetsCombo;
|
||||
|
||||
// Phototools additions
|
||||
LLCheckBoxCtrl* mCtrlShaderEnable;
|
||||
LLCheckBoxCtrl* mCtrlWindLight;
|
||||
LLCheckBoxCtrl* mCtrlDeferred;
|
||||
LLCheckBoxCtrl* mCtrlUseSSAO;
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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" />
|
||||
|
|
|
|||
|
|
@ -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=""Ambient Occlusion"" 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=""Ambient Occlusion"" 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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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"/>
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
||||
<!--
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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"/>
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -14,7 +14,6 @@
|
|||
<check_box label="Transparence de l'eau" name="TransparentWater"/>
|
||||
<check_box label="Relief & 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"/>
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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'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'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'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'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'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 nell’acqua:
|
||||
</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>
|
||||
|
|
|
|||
|
|
@ -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"/>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
低
|
||||
|
|
|
|||
|
|
@ -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"/>
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
|
|
|
|||
|
|
@ -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"/>
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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"/>
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
Низкая
|
||||
|
|
|
|||
|
|
@ -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"/>
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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"/>
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
低
|
||||
|
|
|
|||
|
|
@ -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"/>
|
||||
|
|
|
|||
Loading…
Reference in New Issue