From fa74a34188f7bad6070599f3d1df87368f223bf9 Mon Sep 17 00:00:00 2001 From: T1ti <40864460+T1ti@users.noreply.github.com> Date: Tue, 23 Jul 2024 23:46:37 +0200 Subject: [PATCH] new toggle to disable directional lightning --- src/noggit/rendering/WorldRender.cpp | 7 ++- src/noggit/rendering/glsl/terrain_frag.glsl | 4 +- src/noggit/ui/MinimapCreator.hpp | 2 +- .../windows/settingsPanel/SettingsPanel.cpp | 2 + .../ui/windows/settingsPanel/SettingsPanel.ui | 47 +++++++++++++++++++ 5 files changed, 58 insertions(+), 4 deletions(-) diff --git a/src/noggit/rendering/WorldRender.cpp b/src/noggit/rendering/WorldRender.cpp index dd6d643c..28e1944c 100755 --- a/src/noggit/rendering/WorldRender.cpp +++ b/src/noggit/rendering/WorldRender.cpp @@ -1302,7 +1302,12 @@ void WorldRender::updateLightingUniformBlock(bool draw_fog, glm::vec3 const& cam _lighting_ubo_data.DiffuseColor_FogStart = {diffuse.x,diffuse.y,diffuse.z, _skies->fog_distance_start()}; _lighting_ubo_data.AmbientColor_FogEnd = {ambient.x,ambient.y,ambient.z, _skies->fog_distance_end()}; _lighting_ubo_data.FogColor_FogOn = {fog_color.x,fog_color.y,fog_color.z, static_cast(draw_fog)}; - _lighting_ubo_data.LightDir_FogRate = {_outdoor_light_stats.dayDir.x, _outdoor_light_stats.dayDir.y, _outdoor_light_stats.dayDir.z, _skies->fogRate()}; + + if (_world->_settings->value("directional_lightning", true).toBool()) + _lighting_ubo_data.LightDir_FogRate = { _outdoor_light_stats.dayDir.x, _outdoor_light_stats.dayDir.y, _outdoor_light_stats.dayDir.z, _skies->fogRate() }; + else + _lighting_ubo_data.LightDir_FogRate = {0.0f, -1.0f, 0.0f, _skies->fogRate()}; + _lighting_ubo_data.OceanColorLight = { ocean_color_light.x,ocean_color_light.y,ocean_color_light.z, _skies->ocean_shallow_alpha()}; _lighting_ubo_data.OceanColorDark = { ocean_color_dark.x,ocean_color_dark.y,ocean_color_dark.z, _skies->ocean_deep_alpha()}; _lighting_ubo_data.RiverColorLight = { river_color_light.x,river_color_light.y,river_color_light.z, _skies->river_shallow_alpha()}; diff --git a/src/noggit/rendering/glsl/terrain_frag.glsl b/src/noggit/rendering/glsl/terrain_frag.glsl index aa6d6d8d..d858c8c3 100755 --- a/src/noggit/rendering/glsl/terrain_frag.glsl +++ b/src/noggit/rendering/glsl/terrain_frag.glsl @@ -240,10 +240,10 @@ void main() // calc world lighting vec3 currColor; vec3 lDiffuse = vec3(0.0, 0.0, 0.0); - vec3 accumlatedLight = vec3(1.0, 1.0, 1.0); + // vec3 accumlatedLight = vec3(1.0, 1.0, 1.0); vec3 normalized_normal = normalize(vary_normal); - float nDotL = clamp(dot(normalized_normal, -normalize(LightDir_FogRate.xyz)), 0.0, 1.0); + float nDotL = clamp(dot(normalized_normal, -normalize(LightDir_FogRate.xyz)), 0.0, 1.0); // default LightDir = -0.6 vec3 skyColor = (AmbientColor_FogEnd.xyz * 1.10000002); vec3 groundColor = (AmbientColor_FogEnd.xyz * 0.699999988); diff --git a/src/noggit/ui/MinimapCreator.hpp b/src/noggit/ui/MinimapCreator.hpp index ffef621f..14910361 100755 --- a/src/noggit/ui/MinimapCreator.hpp +++ b/src/noggit/ui/MinimapCreator.hpp @@ -53,7 +53,7 @@ struct MinimapRenderSettings QListWidget* wmo_model_filter_exclude; QListWidget* wmo_instance_filter_exclude; - // Lighting + // Lighting. Based on default eastern kingdom global light settings (lightparams 12) glm::vec3 diffuse_color = {1.0, 0.532352924, 0.0}; glm::vec3 ambient_color = {0.407770514, 0.508424163, 0.602650642}; glm::vec4 ocean_color_light = {0.0693173409, 0.294008732, 0.348329663, 0.75}; diff --git a/src/noggit/ui/windows/settingsPanel/SettingsPanel.cpp b/src/noggit/ui/windows/settingsPanel/SettingsPanel.cpp index 5c7d6703..d8a1c47f 100755 --- a/src/noggit/ui/windows/settingsPanel/SettingsPanel.cpp +++ b/src/noggit/ui/windows/settingsPanel/SettingsPanel.cpp @@ -190,6 +190,7 @@ namespace Noggit ui->_anti_aliasing_cb->setChecked(_settings->value("anti_aliasing", false).toBool()); ui->_fullscreen_cb->setChecked(_settings->value("fullscreen", false).toBool()); ui->_background_fps_limit_cb->setChecked(_settings->value("background_fps_limit", true).toBool()); + ui->_directional_light_cb->setChecked(_settings->value("directional_lightning", true).toBool()); ui->_adt_unload_dist->setValue(_settings->value("unload_dist", 5).toInt()); ui->_adt_unload_check_interval->setValue(_settings->value("unload_interval", 5).toInt()); ui->_uid_cb->setChecked(_settings->value("uid_startup_check", true).toBool()); @@ -275,6 +276,7 @@ namespace Noggit _settings->setValue("anti_aliasing", ui->_anti_aliasing_cb->isChecked()); _settings->setValue("fullscreen", ui->_fullscreen_cb->isChecked()); _settings->setValue("background_fps_limit", ui->_background_fps_limit_cb->isChecked()); + _settings->setValue("directional_lightning", ui->_directional_light_cb->isChecked()); _settings->setValue("unload_dist", ui->_adt_unload_dist->value()); _settings->setValue("unload_interval", ui->_adt_unload_check_interval->value()); _settings->setValue("uid_startup_check", ui->_uid_cb->isChecked()); diff --git a/src/noggit/ui/windows/settingsPanel/SettingsPanel.ui b/src/noggit/ui/windows/settingsPanel/SettingsPanel.ui index cd69d5b9..e1079440 100755 --- a/src/noggit/ui/windows/settingsPanel/SettingsPanel.ui +++ b/src/noggit/ui/windows/settingsPanel/SettingsPanel.ui @@ -270,6 +270,40 @@ + + + + + + <html><head/><body><p>Makes lightning more accurate but worse for editing.</p><p>When disabled, lightning always comes from above.</p><p>When enabled, lightning comes from north west and moves with time of the day.</p></body></html> + + + Directional Lightning + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + @@ -413,6 +447,19 @@ + + + + Qt::Vertical + + + + 20 + 40 + + + +