add 'graphics.chunk-max-vertices-dense' setting

This commit is contained in:
MihailRis 2024-12-23 14:07:59 +03:00
parent 6a8afe2795
commit 096092303f
3 changed files with 16 additions and 6 deletions

View File

@ -73,6 +73,7 @@ SettingsHandler::SettingsHandler(EngineSettings& settings) {
builder.add("frustum-culling", &settings.graphics.frustumCulling); builder.add("frustum-culling", &settings.graphics.frustumCulling);
builder.add("skybox-resolution", &settings.graphics.skyboxResolution); builder.add("skybox-resolution", &settings.graphics.skyboxResolution);
builder.add("chunk-max-vertices", &settings.graphics.chunkMaxVertices); builder.add("chunk-max-vertices", &settings.graphics.chunkMaxVertices);
builder.add("chunk-max-vertices-dense", &settings.graphics.chunkMaxVerticesDense);
builder.add("chunk-max-renderers", &settings.graphics.chunkMaxRenderers); builder.add("chunk-max-renderers", &settings.graphics.chunkMaxRenderers);
builder.section("ui"); builder.section("ui");

View File

@ -28,11 +28,18 @@ public:
const Chunks& chunks, const Chunks& chunks,
const ContentGfxCache& cache, const ContentGfxCache& cache,
const EngineSettings& settings const EngineSettings& settings
) : level(level), )
: level(level),
chunks(chunks), chunks(chunks),
renderer(settings.graphics.chunkMaxVertices.get(), renderer(
*level.content, cache, settings) settings.graphics.denseRender.get()
{} ? settings.graphics.chunkMaxVerticesDense.get()
: settings.graphics.chunkMaxVertices.get(),
*level.content,
cache,
settings
) {
}
RendererResult operator()(const std::shared_ptr<Chunk>& chunk) override { RendererResult operator()(const std::shared_ptr<Chunk>& chunk) override {
renderer.build(chunk.get(), &chunks); renderer.build(chunk.get(), &chunks);

View File

@ -71,6 +71,8 @@ struct GraphicsSettings {
IntegerSetting skyboxResolution {64 + 32, 64, 128}; IntegerSetting skyboxResolution {64 + 32, 64, 128};
/// @brief Chunk renderer vertices buffer capacity /// @brief Chunk renderer vertices buffer capacity
IntegerSetting chunkMaxVertices {200'000, 0, 4'000'000}; IntegerSetting chunkMaxVertices {200'000, 0, 4'000'000};
/// @brief Chunk renderer vertices buffer capacity in dense render mode
IntegerSetting chunkMaxVerticesDense {800'000, 0, 8'000'000};
/// @brief Limit of chunk renderers count /// @brief Limit of chunk renderers count
IntegerSetting chunkMaxRenderers {6, -4, 32}; IntegerSetting chunkMaxRenderers {6, -4, 32};
}; };