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("skybox-resolution", &settings.graphics.skyboxResolution);
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.section("ui");

View File

@ -24,15 +24,22 @@ class RendererWorker : public util::Worker<std::shared_ptr<Chunk>, RendererResul
BlocksRenderer renderer;
public:
RendererWorker(
const Level& level,
const Level& level,
const Chunks& chunks,
const ContentGfxCache& cache,
const EngineSettings& settings
) : level(level),
chunks(chunks),
renderer(settings.graphics.chunkMaxVertices.get(),
*level.content, cache, settings)
{}
)
: level(level),
chunks(chunks),
renderer(
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 {
renderer.build(chunk.get(), &chunks);

View File

@ -71,6 +71,8 @@ struct GraphicsSettings {
IntegerSetting skyboxResolution {64 + 32, 64, 128};
/// @brief Chunk renderer vertices buffer capacity
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
IntegerSetting chunkMaxRenderers {6, -4, 32};
};