From d49d0bb58e6bae8d6105202795cf039ff76810ae Mon Sep 17 00:00:00 2001 From: Dario Seyb Date: Tue, 23 Feb 2016 15:32:19 +0100 Subject: [PATCH] improved noise a bit --- data/config/settings.json | 1 + data/shader/noise/noise3d.glsl | 2 +- src/game/include/engine/core/SettingsSystem.hpp | 4 +++- src/game/src/engine/core/SettingsSystem.cpp | 4 ++++ src/game/src/engine/core/WindowSystem.cpp | 2 +- 5 files changed, 10 insertions(+), 3 deletions(-) diff --git a/data/config/settings.json b/data/config/settings.json index da65276..dbd9233 100644 --- a/data/config/settings.json +++ b/data/config/settings.json @@ -1,6 +1,7 @@ { "resolution": [1280, 720], "target_fps": 60, + "vsync": false, "fullscreen": false, "quality": "high", "ssao": false, diff --git a/data/shader/noise/noise3d.glsl b/data/shader/noise/noise3d.glsl index d3d72f8..ed8a3a6 100644 --- a/data/shader/noise/noise3d.glsl +++ b/data/shader/noise/noise3d.glsl @@ -121,7 +121,7 @@ float hash_noise( in vec3 x ) return mix(mix(mix( hash(n+ 0.0), hash(n+ 1.0),f.x), mix( hash(n+157.0), hash(n+158.0),f.x),f.y), mix(mix( hash(n+113.0), hash(n+114.0),f.x), - mix( hash(n+270.0), hash(n+271.0),f.x),f.y),f.z) * 2.0 - 1.0; + mix( hash(n+270.0), hash(n+271.0),f.x),f.y),f.z) * 4.0 - 2.0; } diff --git a/src/game/include/engine/core/SettingsSystem.hpp b/src/game/include/engine/core/SettingsSystem.hpp index afda895..8d0782b 100644 --- a/src/game/include/engine/core/SettingsSystem.hpp +++ b/src/game/include/engine/core/SettingsSystem.hpp @@ -34,7 +34,8 @@ private: QualitySetting m_qualitySetting; bool m_fullscreen; bool m_ssaoEnabled; - uint64_t m_targetFps; + bool m_vsyncEnabled; + uint64_t m_targetFps; std::string m_defaultScene; std::string m_defaultPlanetType; @@ -57,6 +58,7 @@ public: inline glm::ivec2 getResolution() const { return m_resolution; } inline bool getFullscreen() const { return m_fullscreen; } inline bool ssaoEnabled() const { return m_ssaoEnabled; } + inline bool vsyncEnabled() const { return m_vsyncEnabled; } inline uint64_t getTargetFps() const { return m_targetFps; } inline QualitySetting getQualitySetting() const { return m_qualitySetting; } inline std::string getDefaultScene() const { return m_defaultScene; } diff --git a/src/game/src/engine/core/SettingsSystem.cpp b/src/game/src/engine/core/SettingsSystem.cpp index 26f57ad..6c242aa 100644 --- a/src/game/src/engine/core/SettingsSystem.cpp +++ b/src/game/src/engine/core/SettingsSystem.cpp @@ -44,6 +44,7 @@ bool SettingsSystem::startup() { m_resolution = { 1280, 720 }; m_qualitySetting = QualitySetting::High; m_fullscreen = false; + m_vsyncEnabled = true; m_targetFps = 60; m_defaultScene = "AtmosphereTest"; m_defaultPlanetType = "earth"; @@ -108,6 +109,9 @@ bool SettingsSystem::startup() { } else if (i.first == "ssao") { VALIDATE_TYPE(i, bool); m_ssaoEnabled = i.second.get(); + } else if (i.first == "vsync") { + VALIDATE_TYPE(i, bool); + m_vsyncEnabled = i.second.get(); } else if (i.first == "target_fps") { VALIDATE_TYPE(i, int64_t); m_targetFps = i.second.get(); diff --git a/src/game/src/engine/core/WindowSystem.cpp b/src/game/src/engine/core/WindowSystem.cpp index 190bfb6..806fb81 100644 --- a/src/game/src/engine/core/WindowSystem.cpp +++ b/src/game/src/engine/core/WindowSystem.cpp @@ -114,7 +114,7 @@ bool WindowSystem::createWindow() { } // Use Vsync - if (SDL_GL_SetSwapInterval(1) < 0) { + if (SDL_GL_SetSwapInterval(m_settings->vsyncEnabled() ? 1 : 0) < 0) { printf("Warning: Unable to set VSync! SDL Error: %s\n", SDL_GetError()); } -- GitLab