diff --git a/apps/launcher/settingspage.cpp b/apps/launcher/settingspage.cpp index 16d515602b..ee160c74ca 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 4a6a997bcf..14aa0118cb 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 bb266208bf..1e320f11f4 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 f6fced3b19..a7e92222f9 100644 --- a/apps/openmw/mwrender/renderingmanager.cpp +++ b/apps/openmw/mwrender/renderingmanager.cpp @@ -1555,6 +1555,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 d86d7e2128..151905f6b9 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 42bc45f30a..3379f946a3 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 9a52d39d87..0829f042d0 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 b59e6cb622..76f4076862 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 ebfe3ddb74..dcd5a9033c 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 ee61218394..976f30e001 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 aeaf6df57c..7dea477f55 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 0c968a1e68..2d312ef8db 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 6e0b937614..f349e196af 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 1835f0d560..57a9c67f65 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 ae18f7754c..4cd75487b2 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 -