add 'graphics.particles-batch-vertices' setting

This commit is contained in:
MihailRis 2026-02-02 23:05:44 +03:00
parent 75afce2a68
commit ed2f0cac77
6 changed files with 9 additions and 7 deletions

View file

@ -19,12 +19,12 @@ ParticlesRenderer::ParticlesRenderer(
const Assets& assets,
const Level& level,
const Chunks& chunks,
const GraphicsSettings* settings
const GraphicsSettings& settings
)
: chunks(chunks),
assets(assets),
settings(settings),
batch(std::make_unique<MainBatch>(4096)) {
batch(std::make_unique<MainBatch>(settings.particlesBatchVertices.get())) {
}
ParticlesRenderer::~ParticlesRenderer() = default;
@ -188,7 +188,7 @@ void ParticlesRenderer::render(const Camera& camera) {
aliveEmitters = emitters.size();
visibleParticles = 0;
bool backlight = settings->backlight.get();
bool backlight = settings.backlight.get();
batch->begin();
for (auto& [texture, vec] : particles) {

View file

@ -18,7 +18,7 @@ struct GraphicsSettings;
class ParticlesRenderer {
const Chunks& chunks;
const Assets& assets;
const GraphicsSettings* settings;
const GraphicsSettings& settings;
std::unordered_map<const Texture*, std::vector<Particle>> particles;
std::unique_ptr<MainBatch> batch;
@ -34,7 +34,7 @@ public:
const Assets& assets,
const Level& level,
const Chunks& chunks,
const GraphicsSettings* settings
const GraphicsSettings& settings
);
~ParticlesRenderer();

View file

@ -87,7 +87,7 @@ WorldRenderer::WorldRenderer(
engine.getSettings()
)),
particles(std::make_unique<ParticlesRenderer>(
assets, level, *player.chunks, &engine.getSettings().graphics
assets, level, *player.chunks, engine.getSettings().graphics
)),
texts(std::make_unique<TextsRenderer>(*batch3d, assets, *frustumCulling)),
blockWraps(

View file

@ -22,7 +22,6 @@ class DebugLinesRenderer;
class DrawContext;
class Engine;
class Frustum;
class GBuffer;
class HandsRenderer;
class Level;
class LevelFrontend;

View file

@ -76,6 +76,7 @@ SettingsHandler::SettingsHandler(EngineSettings& settings) {
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("particles-batch-vertices", &settings.graphics.particlesBatchVertices);
builder.add("advanced-render", &settings.graphics.advancedRender);
builder.add("ssao", &settings.graphics.ssao);
builder.add("shadows-quality", &settings.graphics.shadowsQuality);

View file

@ -79,6 +79,8 @@ struct GraphicsSettings {
IntegerSetting chunkMaxVerticesDense {800'000, 0, 8'000'000};
/// @brief Limit of chunk renderers count
IntegerSetting chunkMaxRenderers {6, -4, 32};
/// @brief Particles renderer vertices buffer capacity
IntegerSetting particlesBatchVertices {4'096, 0, 1'000'000};
/// @brief Advanced render pipeline
FlagSetting advancedRender {true};
/// @brief Screen space ambient occlusion quality