mirror of
https://github.com/MihailRis/voxelcore.git
synced 2026-10-12 06:21:50 +00:00
add 'graphics.particles-batch-vertices' setting
This commit is contained in:
parent
75afce2a68
commit
ed2f0cac77
6 changed files with 9 additions and 7 deletions
|
|
@ -19,12 +19,12 @@ ParticlesRenderer::ParticlesRenderer(
|
||||||
const Assets& assets,
|
const Assets& assets,
|
||||||
const Level& level,
|
const Level& level,
|
||||||
const Chunks& chunks,
|
const Chunks& chunks,
|
||||||
const GraphicsSettings* settings
|
const GraphicsSettings& settings
|
||||||
)
|
)
|
||||||
: chunks(chunks),
|
: chunks(chunks),
|
||||||
assets(assets),
|
assets(assets),
|
||||||
settings(settings),
|
settings(settings),
|
||||||
batch(std::make_unique<MainBatch>(4096)) {
|
batch(std::make_unique<MainBatch>(settings.particlesBatchVertices.get())) {
|
||||||
}
|
}
|
||||||
|
|
||||||
ParticlesRenderer::~ParticlesRenderer() = default;
|
ParticlesRenderer::~ParticlesRenderer() = default;
|
||||||
|
|
@ -188,7 +188,7 @@ void ParticlesRenderer::render(const Camera& camera) {
|
||||||
aliveEmitters = emitters.size();
|
aliveEmitters = emitters.size();
|
||||||
visibleParticles = 0;
|
visibleParticles = 0;
|
||||||
|
|
||||||
bool backlight = settings->backlight.get();
|
bool backlight = settings.backlight.get();
|
||||||
|
|
||||||
batch->begin();
|
batch->begin();
|
||||||
for (auto& [texture, vec] : particles) {
|
for (auto& [texture, vec] : particles) {
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,7 @@ struct GraphicsSettings;
|
||||||
class ParticlesRenderer {
|
class ParticlesRenderer {
|
||||||
const Chunks& chunks;
|
const Chunks& chunks;
|
||||||
const Assets& assets;
|
const Assets& assets;
|
||||||
const GraphicsSettings* settings;
|
const GraphicsSettings& settings;
|
||||||
std::unordered_map<const Texture*, std::vector<Particle>> particles;
|
std::unordered_map<const Texture*, std::vector<Particle>> particles;
|
||||||
std::unique_ptr<MainBatch> batch;
|
std::unique_ptr<MainBatch> batch;
|
||||||
|
|
||||||
|
|
@ -34,7 +34,7 @@ public:
|
||||||
const Assets& assets,
|
const Assets& assets,
|
||||||
const Level& level,
|
const Level& level,
|
||||||
const Chunks& chunks,
|
const Chunks& chunks,
|
||||||
const GraphicsSettings* settings
|
const GraphicsSettings& settings
|
||||||
);
|
);
|
||||||
~ParticlesRenderer();
|
~ParticlesRenderer();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -87,7 +87,7 @@ WorldRenderer::WorldRenderer(
|
||||||
engine.getSettings()
|
engine.getSettings()
|
||||||
)),
|
)),
|
||||||
particles(std::make_unique<ParticlesRenderer>(
|
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)),
|
texts(std::make_unique<TextsRenderer>(*batch3d, assets, *frustumCulling)),
|
||||||
blockWraps(
|
blockWraps(
|
||||||
|
|
|
||||||
|
|
@ -22,7 +22,6 @@ class DebugLinesRenderer;
|
||||||
class DrawContext;
|
class DrawContext;
|
||||||
class Engine;
|
class Engine;
|
||||||
class Frustum;
|
class Frustum;
|
||||||
class GBuffer;
|
|
||||||
class HandsRenderer;
|
class HandsRenderer;
|
||||||
class Level;
|
class Level;
|
||||||
class LevelFrontend;
|
class LevelFrontend;
|
||||||
|
|
|
||||||
|
|
@ -76,6 +76,7 @@ SettingsHandler::SettingsHandler(EngineSettings& settings) {
|
||||||
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-vertices-dense", &settings.graphics.chunkMaxVerticesDense);
|
||||||
builder.add("chunk-max-renderers", &settings.graphics.chunkMaxRenderers);
|
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("advanced-render", &settings.graphics.advancedRender);
|
||||||
builder.add("ssao", &settings.graphics.ssao);
|
builder.add("ssao", &settings.graphics.ssao);
|
||||||
builder.add("shadows-quality", &settings.graphics.shadowsQuality);
|
builder.add("shadows-quality", &settings.graphics.shadowsQuality);
|
||||||
|
|
|
||||||
|
|
@ -79,6 +79,8 @@ struct GraphicsSettings {
|
||||||
IntegerSetting chunkMaxVerticesDense {800'000, 0, 8'000'000};
|
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};
|
||||||
|
/// @brief Particles renderer vertices buffer capacity
|
||||||
|
IntegerSetting particlesBatchVertices {4'096, 0, 1'000'000};
|
||||||
/// @brief Advanced render pipeline
|
/// @brief Advanced render pipeline
|
||||||
FlagSetting advancedRender {true};
|
FlagSetting advancedRender {true};
|
||||||
/// @brief Screen space ambient occlusion quality
|
/// @brief Screen space ambient occlusion quality
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue