add 'graphics.ssao' setting

This commit is contained in:
MihailRis
2025-07-12 21:36:27 +03:00
parent 5ec9f14021
commit b04dbd5809
6 changed files with 28 additions and 8 deletions
+11 -3
View File
@@ -445,11 +445,13 @@ void WorldRenderer::draw(
}
CompileTimeShaderSettings currentSettings {
gbufferPipeline, shadows
};
gbufferPipeline,
shadows,
settings.graphics.ssao.get() && gbufferPipeline};
if (
prevCTShaderSettings.advancedRender != currentSettings.advancedRender ||
prevCTShaderSettings.shadows != currentSettings.shadows
prevCTShaderSettings.shadows != currentSettings.shadows ||
prevCTShaderSettings.ssao != currentSettings.ssao
) {
if (shadows) {
Shader::preprocessor->define("ENABLE_SHADOWS", "true");
@@ -457,6 +459,12 @@ void WorldRenderer::draw(
Shader::preprocessor->undefine("ENABLE_SHADOWS");
}
if (currentSettings.ssao) {
Shader::preprocessor->define("ENABLE_SSAO", "true");
} else {
Shader::preprocessor->undefine("ENABLE_SSAO");
}
if (gbufferPipeline) {
Shader::preprocessor->define("ADVANCED_RENDER", "true");
} else {
+1
View File
@@ -38,6 +38,7 @@ struct EngineSettings;
struct CompileTimeShaderSettings {
bool advancedRender = false;
bool shadows = false;
bool ssao = false;
};
class WorldRenderer {
+1
View File
@@ -75,6 +75,7 @@ SettingsHandler::SettingsHandler(EngineSettings& settings) {
builder.add("chunk-max-vertices-dense", &settings.graphics.chunkMaxVerticesDense);
builder.add("chunk-max-renderers", &settings.graphics.chunkMaxRenderers);
builder.add("advanced-render", &settings.graphics.advancedRender);
builder.add("ssao", &settings.graphics.ssao);
builder.add("shadows-quality", &settings.graphics.shadowsQuality);
builder.section("ui");
+2
View File
@@ -77,6 +77,8 @@ struct GraphicsSettings {
IntegerSetting chunkMaxRenderers {6, -4, 32};
/// @brief Advanced render pipeline
FlagSetting advancedRender {true};
/// @brief Screen space ambient occlusion
FlagSetting ssao {true};
/// @brief Shadows quality
IntegerSetting shadowsQuality {0, 0, 3};
};