add 'graphics.ssao' setting
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -38,6 +38,7 @@ struct EngineSettings;
|
||||
struct CompileTimeShaderSettings {
|
||||
bool advancedRender = false;
|
||||
bool shadows = false;
|
||||
bool ssao = false;
|
||||
};
|
||||
|
||||
class WorldRenderer {
|
||||
|
||||
@@ -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");
|
||||
|
||||
@@ -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};
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user