add 'size_spread' particles parameter
This commit is contained in:
@@ -89,11 +89,13 @@ void ParticlesRenderer::renderParticles(const Camera& camera, float delta) {
|
|||||||
);
|
);
|
||||||
light *= 0.9f + (particle.random % 100) * 0.001f;
|
light *= 0.9f + (particle.random % 100) * 0.001f;
|
||||||
}
|
}
|
||||||
|
float scale = 1.0f + ((particle.random ^ 2628172) % 1000) *
|
||||||
|
0.001f * preset.sizeSpread;
|
||||||
batch->quad(
|
batch->quad(
|
||||||
particle.position,
|
particle.position,
|
||||||
right,
|
right,
|
||||||
preset.globalUpVector ? glm::vec3(0, 1, 0) : up,
|
preset.globalUpVector ? glm::vec3(0, 1, 0) : up,
|
||||||
preset.size,
|
preset.size * scale,
|
||||||
light,
|
light,
|
||||||
glm::vec3(1.0f),
|
glm::vec3(1.0f),
|
||||||
particle.region
|
particle.region
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ dv::value ParticlesPreset::serialize() const {
|
|||||||
root["acceleration"] = dv::to_value(acceleration);
|
root["acceleration"] = dv::to_value(acceleration);
|
||||||
root["explosion"] = dv::to_value(explosion);
|
root["explosion"] = dv::to_value(explosion);
|
||||||
root["size"] = dv::to_value(size);
|
root["size"] = dv::to_value(size);
|
||||||
|
root["size_spread"] = sizeSpread;
|
||||||
root["spawn_spread"] = dv::to_value(size);
|
root["spawn_spread"] = dv::to_value(size);
|
||||||
root["spawn_shape"] = to_string(spawnShape);
|
root["spawn_shape"] = to_string(spawnShape);
|
||||||
root["random_sub_uv"] = randomSubUV;
|
root["random_sub_uv"] = randomSubUV;
|
||||||
@@ -67,6 +68,7 @@ void ParticlesPreset::deserialize(const dv::value& src) {
|
|||||||
if (src.has("size")) {
|
if (src.has("size")) {
|
||||||
dv::get_vec(src["size"], size);
|
dv::get_vec(src["size"], size);
|
||||||
}
|
}
|
||||||
|
src.at("size_spread").get(sizeSpread);
|
||||||
if (src.has("spawn_spread")) {
|
if (src.has("spawn_spread")) {
|
||||||
dv::get_vec(src["spawn_spread"], spawnSpread);
|
dv::get_vec(src["spawn_spread"], spawnSpread);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -42,6 +42,8 @@ struct ParticlesPreset : public Serializable {
|
|||||||
glm::vec3 explosion {2.0f};
|
glm::vec3 explosion {2.0f};
|
||||||
/// @brief Particle size
|
/// @brief Particle size
|
||||||
glm::vec3 size {0.1f};
|
glm::vec3 size {0.1f};
|
||||||
|
/// @brief Particles size spread
|
||||||
|
float sizeSpread = 0.2f;
|
||||||
/// @brief Spawn spread shape
|
/// @brief Spawn spread shape
|
||||||
ParticleSpawnShape spawnShape = BALL;
|
ParticleSpawnShape spawnShape = BALL;
|
||||||
/// @brief Spawn spread
|
/// @brief Spawn spread
|
||||||
|
|||||||
Reference in New Issue
Block a user