add 'size_spread' particles parameter

This commit is contained in:
MihailRis 2024-11-08 17:44:57 +03:00
parent f84fe71021
commit a52d68669d
3 changed files with 7 additions and 1 deletions

View File

@ -89,11 +89,13 @@ void ParticlesRenderer::renderParticles(const Camera& camera, float delta) {
);
light *= 0.9f + (particle.random % 100) * 0.001f;
}
float scale = 1.0f + ((particle.random ^ 2628172) % 1000) *
0.001f * preset.sizeSpread;
batch->quad(
particle.position,
right,
preset.globalUpVector ? glm::vec3(0, 1, 0) : up,
preset.size,
preset.size * scale,
light,
glm::vec3(1.0f),
particle.region

View File

@ -42,6 +42,7 @@ dv::value ParticlesPreset::serialize() const {
root["acceleration"] = dv::to_value(acceleration);
root["explosion"] = dv::to_value(explosion);
root["size"] = dv::to_value(size);
root["size_spread"] = sizeSpread;
root["spawn_spread"] = dv::to_value(size);
root["spawn_shape"] = to_string(spawnShape);
root["random_sub_uv"] = randomSubUV;
@ -67,6 +68,7 @@ void ParticlesPreset::deserialize(const dv::value& src) {
if (src.has("size")) {
dv::get_vec(src["size"], size);
}
src.at("size_spread").get(sizeSpread);
if (src.has("spawn_spread")) {
dv::get_vec(src["spawn_spread"], spawnSpread);
}

View File

@ -42,6 +42,8 @@ struct ParticlesPreset : public Serializable {
glm::vec3 explosion {2.0f};
/// @brief Particle size
glm::vec3 size {0.1f};
/// @brief Particles size spread
float sizeSpread = 0.2f;
/// @brief Spawn spread shape
ParticleSpawnShape spawnShape = BALL;
/// @brief Spawn spread