From a7ac5394297635cb2a5267a2bd99671561012a13 Mon Sep 17 00:00:00 2001 From: MihailRis Date: Mon, 5 Feb 2024 01:17:16 +0300 Subject: [PATCH] Added gamma setting --- src/files/settings_io.cpp | 1 + src/frontend/WorldRenderer.cpp | 2 +- src/settings.h | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/src/files/settings_io.cpp b/src/files/settings_io.cpp index 037282d0..2a67fb34 100644 --- a/src/files/settings_io.cpp +++ b/src/files/settings_io.cpp @@ -32,6 +32,7 @@ toml::Wrapper* create_wrapper(EngineSettings& settings) { camera.add("sensitivity", &settings.camera.sensitivity); toml::Section& graphics = wrapper->add("graphics"); + graphics.add("gamma", &settings.graphics.gamma); graphics.add("fog-curve", &settings.graphics.fogCurve); graphics.add("backlight", &settings.graphics.backlight); graphics.add("frustum-culling", &settings.graphics.frustumCulling); diff --git a/src/frontend/WorldRenderer.cpp b/src/frontend/WorldRenderer.cpp index cf20fe9d..2e25d6f4 100644 --- a/src/frontend/WorldRenderer.cpp +++ b/src/frontend/WorldRenderer.cpp @@ -157,7 +157,7 @@ void WorldRenderer::draw(const GfxContext& pctx, Camera* camera, bool hudVisible shader->use(); shader->uniformMatrix("u_proj", camera->getProjection()); shader->uniformMatrix("u_view", camera->getView()); - shader->uniform1f("u_gamma", 1.0f); + shader->uniform1f("u_gamma", settings.graphics.gamma); shader->uniform1f("u_fogFactor", fogFactor); shader->uniform1f("u_fogCurve", settings.graphics.fogCurve); shader->uniform3f("u_cameraPos", camera->position); diff --git a/src/settings.h b/src/settings.h index cf106395..2aa00615 100644 --- a/src/settings.h +++ b/src/settings.h @@ -47,6 +47,7 @@ struct GraphicsSettings { /* Fog opacity is calculated as `pow(depth*k, fogCurve)` where k depends on chunksLoadDistance. Use values in range [1.0 - 2.0] where 1.0 is linear, 2.0 is quadratic */ float fogCurve = 1.6f; + float gamma = 1.0f; /* Enable blocks backlight to prevent complete darkness */ bool backlight = true; /* Enable chunks frustum culling */