diff --git a/apps/launcher/settingspage.cpp b/apps/launcher/settingspage.cpp index 16d515602b2..ee160c74cad 100644 --- a/apps/launcher/settingspage.cpp +++ b/apps/launcher/settingspage.cpp @@ -259,7 +259,6 @@ bool Launcher::SettingsPage::loadSettings() lightFadeMultiplierSpinBox->setValue(Settings::shaders().mLightFadeStart); lightsBoundingSphereMultiplierSpinBox->setValue(Settings::shaders().mLightBoundsMultiplier); lightsMinimumInteriorBrightnessSpinBox->setValue(Settings::shaders().mMinimumInteriorBrightness); - loadSettingBool(Settings::shaders().mForcePerPixelLighting, *forcePplCheckBox); connect(lightingMethodComboBox, qOverload(&QComboBox::currentIndexChanged), this, &SettingsPage::slotLightTypeCurrentIndexChanged); @@ -479,7 +478,6 @@ void Launcher::SettingsPage::saveSettings() Settings::shaders().mLightFadeStart.set(lightFadeMultiplierSpinBox->value()); Settings::shaders().mLightBoundsMultiplier.set(lightsBoundingSphereMultiplierSpinBox->value()); Settings::shaders().mMinimumInteriorBrightness.set(lightsMinimumInteriorBrightnessSpinBox->value()); - saveSettingBool(*forcePplCheckBox, Settings::shaders().mForcePerPixelLighting); } // Audio diff --git a/apps/launcher/ui/settingspage.ui b/apps/launcher/ui/settingspage.ui index 4a6a997bcf2..14aa0118cb1 100644 --- a/apps/launcher/ui/settingspage.ui +++ b/apps/launcher/ui/settingspage.ui @@ -1037,7 +1037,7 @@ - + Qt::Vertical @@ -1112,16 +1112,6 @@ - - - - <html><head/><body><p>Force the use of per pixel lighting. By default, only bump and normal mapped objects use per-pixel lighting. Only affects objects drawn with shaders. Enabling per-pixel lighting results in visual differences to the original MW engine as certain lights in Morrowind rely on vertex lighting to look as intended. Note that groundcover shaders and particle effects ignore this setting.</p></body></html> - - - Force Per-Pixel Lighting - - - diff --git a/apps/openmw/mwgui/settingswindow.cpp b/apps/openmw/mwgui/settingswindow.cpp index bb266208bf6..1e320f11f40 100644 --- a/apps/openmw/mwgui/settingswindow.cpp +++ b/apps/openmw/mwgui/settingswindow.cpp @@ -648,6 +648,7 @@ namespace MWGui if (selectedButton == 1 || selectedButton == -1) return; + Settings::shaders().mForcePerPixelLighting.reset(); Settings::shaders().mLightBoundsMultiplier.reset(); Settings::shaders().mMaximumLightDistance.reset(); Settings::shaders().mLightFadeStart.reset(); diff --git a/apps/openmw/mwrender/renderingmanager.cpp b/apps/openmw/mwrender/renderingmanager.cpp index 4a5fc18a860..469d71fc4fb 100644 --- a/apps/openmw/mwrender/renderingmanager.cpp +++ b/apps/openmw/mwrender/renderingmanager.cpp @@ -1541,6 +1541,16 @@ namespace MWRender if (MWMechanics::getPlayer().isInCell()) configureAmbient(*MWMechanics::getPlayer().getCell()->getCell()); } + else if (it->first == "Shaders" && it->second == "force per pixel lighting") + { + mViewer->stopThreading(); + + auto defines = mResourceSystem->getSceneManager()->getShaderManager().getGlobalDefines(); + defines["forcePPL"] = Settings::shaders().mForcePerPixelLighting ? "1" : "0"; + mResourceSystem->getSceneManager()->getShaderManager().setGlobalDefines(defines); + + mViewer->startThreading(); + } else if (it->first == "Shaders" && (it->second == "light bounds multiplier" || it->second == "maximum light distance" || it->second == "light fade start" || it->second == "max lights")) diff --git a/files/data/l10n/OMWEngine/de.yaml b/files/data/l10n/OMWEngine/de.yaml index d86d7e2128d..151905f6b91 100644 --- a/files/data/l10n/OMWEngine/de.yaml +++ b/files/data/l10n/OMWEngine/de.yaml @@ -95,6 +95,15 @@ EnableController: "Controller aktivieren" FieldOfView: "Sichtfeld" FieldOfViewLow: "Niedrig" FieldOfViewHigh: "Hoch" +ForcePerPixelLighting: "Beleuchtung pro Pixel erzwingen" +ForcePerPixelLightingTooltip: |- + Erzwingt die Verwendung der Beleuchtung pro Pixel. Standardmäßig verwenden nur Bump- und Normal-mapped-Objekte eine Beleuchtung pro Pixel. + + Betrifft nur mit Shadern gezeichnete Objekte. + + Die Aktivierung der Per-Pixel-Beleuchtung führt zu visuellen Unterschieden zur ursprünglichen Morrowind-Engine, da bestimmte Lichter in Morrowind auf Vertex-Beleuchtung angewiesen sind, um wie beabsichtigt auszusehen. + + Beachten Sie, dass Bodendecker-Shader und Partikeleffekte diese Einstellung ignorieren. FrameRateHint: "Hinweis: Drücken Sie F3,\num die aktuelle Bildrate anzuzeigen." GammaCorrection: "Gamma-Korrektur" GammaDark: "Dunkel" diff --git a/files/data/l10n/OMWEngine/en.yaml b/files/data/l10n/OMWEngine/en.yaml index 42bc45f30a8..3379f946a3f 100644 --- a/files/data/l10n/OMWEngine/en.yaml +++ b/files/data/l10n/OMWEngine/en.yaml @@ -95,6 +95,15 @@ EnableController: "Enable Controller" FieldOfView: "Field of View" FieldOfViewHigh: "High" FieldOfViewLow: "Low" +ForcePerPixelLighting: "Force Per-Pixel Lighting" +ForcePerPixelLightingTooltip: |- + Force the use of per-pixel lighting. By default, only bump- and normal-mapped objects use per-pixel lighting. + + Only affects objects drawn with shaders. + + Enabling per-pixel lighting results in visual differences to the original MW engine as certain lights in Morrowind rely on vertex lighting to look as intended. + + Note that groundcover shaders and particle effects ignore this setting. FrameRateHint: "Hint: press F3 to show\nthe current frame rate." GammaCorrection: "Gamma Correction" GammaDark: "Dark" diff --git a/files/data/l10n/OMWEngine/fr.yaml b/files/data/l10n/OMWEngine/fr.yaml index 9a52d39d870..0829f042d0e 100644 --- a/files/data/l10n/OMWEngine/fr.yaml +++ b/files/data/l10n/OMWEngine/fr.yaml @@ -95,6 +95,15 @@ EnableController: "Activer la manette" FieldOfView: "Champ de vision" FieldOfViewHigh: "Étendu" FieldOfViewLow: "Restreint" +ForcePerPixelLighting: "Forcer l'éclairage par pixel" +ForcePerPixelLightingTooltip: |- + Force l'usage de l'éclairage par pixel. Par défaut, seuls les objets avec des "bump" et "normal" maps utilisent l'éclairage par pixel. + + Affecte uniquement les objets rendus via des shaders. + + Activer l'éclairage par pixel donne des résultats visuels différents de ceux du moteur de jeu original, car certaines lumières de Morrowind furent implémentées pour un éclairage par vertex. + + Les shaders de végétation au sol et les particules ignorent cette option. FrameRateHint: "Note: Appuyez sur F3 pour afficher la fréquence d'affichage (FPS)." GammaCorrection: "Correction Gamma" GammaDark: "Sombre" diff --git a/files/data/l10n/OMWEngine/ru.yaml b/files/data/l10n/OMWEngine/ru.yaml index b59e6cb6226..76f40768623 100644 --- a/files/data/l10n/OMWEngine/ru.yaml +++ b/files/data/l10n/OMWEngine/ru.yaml @@ -95,6 +95,15 @@ EnableController: "Геймпад" FieldOfView: "Поле зрения" FieldOfViewLow: "Маленькое" FieldOfViewHigh: "Большое" +ForcePerPixelLighting: "Принудительное попиксельное освещение" +ForcePerPixelLightingTooltip: |- + Использовать попиксельное освещение принудительно. По умолчанию его используют только объекты, использующие карты бампа и карты нормалей. + + Влияет только на объекты, отрисовываемые шейдерами. + + Включение попиксельного освещения приводит к визуальным отличиям по сравнению с оригинальным движком Morrowind, так как некоторые источники света в Morrowind полагаются на повершинное освещение для того, чтобы выглядеть, как задумывалось. + + Обратите внимание, что шейдеры растительности и системы частиц игнорируют эту настройку. FrameRateHint: "Подсказка: нажмите F3, чтобы показать\nтекущую частоту смены кадров." GammaCorrection: "Гамма-коррекция" GammaDark: "Темно" diff --git a/files/data/l10n/OMWEngine/sv.yaml b/files/data/l10n/OMWEngine/sv.yaml index ebfe3ddb749..dcd5a9033c8 100644 --- a/files/data/l10n/OMWEngine/sv.yaml +++ b/files/data/l10n/OMWEngine/sv.yaml @@ -95,6 +95,16 @@ EnableController: "Aktivera handkontroll" FieldOfView: "Synfält" FieldOfViewLow: "Låg" FieldOfViewHigh: "Hög" +ForcePerPixelLighting: "Tvinga per-pixelljussättning" +ForcePerPixelLightingTooltip: |- + Tvingar användningen av per-pixelljussättning. Som standard är det annars bara objekt med normalkartor som använder per-pixelljussättning. + + Denna inställning påverkar endast objekt som ritas med shaderteknik. + + Aktivering av per-pixelljussättning kommer ge visuella skillnader jämfört med hur Morrowind ser ut i ordinarie spelmotor. + Detta då visst ljus i Morrowind är beroende av vertexljussättning för att se ut som det var avsett. + + Notera att shaders för marktäckare och partikeleffekter ignorerar denna inställning. FrameRateHint: "Tips: tryck på F3 för att visa\naktuell bilduppdateringsfrekvens." GammaCorrection: "Gammakorrigering" GammaDark: "Mörkt" diff --git a/files/data/mygui/openmw_settings_window.layout b/files/data/mygui/openmw_settings_window.layout index ee61218394c..976f30e001c 100644 --- a/files/data/mygui/openmw_settings_window.layout +++ b/files/data/mygui/openmw_settings_window.layout @@ -597,14 +597,30 @@ - + + + + + + + + + + + + + + + + + - + - + @@ -617,12 +633,12 @@ - + - + @@ -635,12 +651,12 @@ - + - + @@ -653,12 +669,12 @@ - + - + @@ -668,7 +684,7 @@ - + diff --git a/files/lang/launcher_de.ts b/files/lang/launcher_de.ts index aeaf6df57c3..7dea477f558 100644 --- a/files/lang/launcher_de.ts +++ b/files/lang/launcher_de.ts @@ -1471,13 +1471,5 @@ to default Morrowind fonts. Check this box if you still prefer original fonts ov Run Script After Startup: - - <html><head/><body><p>Force the use of per pixel lighting. By default, only bump and normal mapped objects use per-pixel lighting. Only affects objects drawn with shaders. Enabling per-pixel lighting results in visual differences to the original MW engine as certain lights in Morrowind rely on vertex lighting to look as intended. Note that groundcover shaders and particle effects ignore this setting.</p></body></html> - - - - Force Per-Pixel Lighting - - diff --git a/files/lang/launcher_en.ts b/files/lang/launcher_en.ts index 0c968a1e68b..2d312ef8dbe 100644 --- a/files/lang/launcher_en.ts +++ b/files/lang/launcher_en.ts @@ -1471,13 +1471,5 @@ to default Morrowind fonts. Check this box if you still prefer original fonts ov Browse… - - <html><head/><body><p>Force the use of per pixel lighting. By default, only bump and normal mapped objects use per-pixel lighting. Only affects objects drawn with shaders. Enabling per-pixel lighting results in visual differences to the original MW engine as certain lights in Morrowind rely on vertex lighting to look as intended. Note that groundcover shaders and particle effects ignore this setting.</p></body></html> - - - - Force Per-Pixel Lighting - - diff --git a/files/lang/launcher_fr.ts b/files/lang/launcher_fr.ts index 6e0b9376148..f349e196afd 100644 --- a/files/lang/launcher_fr.ts +++ b/files/lang/launcher_fr.ts @@ -1474,13 +1474,5 @@ to default Morrowind fonts. Check this box if you still prefer original fonts ov Run Script After Startup: Script à lancer après démarrage : - - <html><head/><body><p>Force the use of per pixel lighting. By default, only bump and normal mapped objects use per-pixel lighting. Only affects objects drawn with shaders. Enabling per-pixel lighting results in visual differences to the original MW engine as certain lights in Morrowind rely on vertex lighting to look as intended. Note that groundcover shaders and particle effects ignore this setting.</p></body></html> - <html><body><p>Lorsque cette option est activée, le moteur de jeu illumine séparément chaque pixel des textures (éclairage par pixel, Per Pixel Lighting) pour chaque passe de rendu.</p><p>Lorsque cette option est désactivée, seuls les plaquages de rugosité (bump map) et de normales (normal maps) utilisent l'éclairage par pixel. Les autres passes utilisent un éclairage par vertex (sommet de chaque polygone).</p><p>Le rendu de l'éclairage par pixel diffère de celui du moteur de jeu original du fait que certaines sources de lumière de Morrowind furent calibrées pour un éclairage par vertex.</p><p>Cette option affecte uniquement les objets dont le rendu est réalisé avec des shaders. Elle n'affecte ni la végétation au sol ni les effets de particules.</p></body></html> - - - Force Per-Pixel Lighting - Forcer l'éclairage par pixel - diff --git a/files/lang/launcher_ru.ts b/files/lang/launcher_ru.ts index 1835f0d560e..57a9c67f655 100644 --- a/files/lang/launcher_ru.ts +++ b/files/lang/launcher_ru.ts @@ -1486,13 +1486,5 @@ to default Morrowind fonts. Check this box if you still prefer original fonts ov Minimum Interior Brightness Минимальный уровень освещения в помещениях - - <html><head/><body><p>Force the use of per pixel lighting. By default, only bump and normal mapped objects use per-pixel lighting. Only affects objects drawn with shaders. Enabling per-pixel lighting results in visual differences to the original MW engine as certain lights in Morrowind rely on vertex lighting to look as intended. Note that groundcover shaders and particle effects ignore this setting.</p></body></html> - Использовать попиксельное освещение принудительно. По умолчанию его используют только объекты, использующие карты бампа и карты нормалей. Влияет только на объекты, отрисовываемые шейдерами. Включение попиксельного освещения приводит к визуальным отличиям по сравнению с оригинальным движком Morrowind, так как некоторые источники света в Morrowind полагаются на повершинное освещение для того, чтобы выглядеть, как задумывалось. Обратите внимание, что шейдеры растительности и системы частиц игнорируют эту настройку. - - - Force Per-Pixel Lighting - Попиксельное освещение - diff --git a/files/lang/launcher_sv.ts b/files/lang/launcher_sv.ts index ae18f7754c0..4cd75487b26 100644 --- a/files/lang/launcher_sv.ts +++ b/files/lang/launcher_sv.ts @@ -1490,13 +1490,5 @@ de ordinarie fonterna i Morrowind. Bocka denna ruta om du ändå föredrar ordin Run Script After Startup: Kör skript efter uppstart: - - <html><head/><body><p>Force the use of per pixel lighting. By default, only bump and normal mapped objects use per-pixel lighting. Only affects objects drawn with shaders. Enabling per-pixel lighting results in visual differences to the original MW engine as certain lights in Morrowind rely on vertex lighting to look as intended. Note that groundcover shaders and particle effects ignore this setting.</p></body></html> - <html><head/><body><p>Tvingar användningen av per-pixelljussättning. Som standard är det annars bara objekt med normalkartor som använder per-pixelljussättning. Denna inställning påverkar endast objekt som ritas med shaderteknik. Aktivering av per-pixelljussättning kommer ge visuella skillnader jämfört med hur Morrowind ser ut i ordinarie spelmotor. Detta då visst ljus i Morrowind är beroende av vertexljussättning för att se ut som det var avsett. Notera att shaders för marktäckare och partikeleffekter ignorerar denna inställning.</p></body></html> - - - Force Per-Pixel Lighting - Tvinga per-pixelljussättning -