summaryrefslogtreecommitdiffstats
path: root/servers/rendering/renderer_rd/storage_rd/particles_storage.h
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2023-10-10 22:48:50 +0200
committerRémi Verschelde <rverschelde@gmail.com>2023-10-10 22:48:50 +0200
commit55282ddc106cb0b2fd8750e710fbd49efab5f56a (patch)
tree779c65b521798db5ff8e0321b71ae6f3d65d7721 /servers/rendering/renderer_rd/storage_rd/particles_storage.h
parentc5291a3555343e8aa5aefa1c7e17f2ad05ee1fc9 (diff)
parentc228fe1a0d7cf9dc65404f63cddbc0dd85959f2e (diff)
downloadredot-engine-55282ddc106cb0b2fd8750e710fbd49efab5f56a.tar.gz
Merge pull request #79527 from QbieShay/qbe/particles-rework
Particle internal refactor and additions for more artistic control
Diffstat (limited to 'servers/rendering/renderer_rd/storage_rd/particles_storage.h')
-rw-r--r--servers/rendering/renderer_rd/storage_rd/particles_storage.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/servers/rendering/renderer_rd/storage_rd/particles_storage.h b/servers/rendering/renderer_rd/storage_rd/particles_storage.h
index b93932f482..435ef14d75 100644
--- a/servers/rendering/renderer_rd/storage_rd/particles_storage.h
+++ b/servers/rendering/renderer_rd/storage_rd/particles_storage.h
@@ -123,7 +123,7 @@ private:
float delta;
uint32_t frame;
- uint32_t pad0;
+ float amount_ratio;
uint32_t pad1;
uint32_t pad2;
@@ -134,6 +134,9 @@ private:
float emission_transform[16];
+ float emitter_velocity[3];
+ float interp_to_end;
+
Attractor attractors[MAX_ATTRACTORS];
Collider colliders[MAX_COLLIDERS];
};
@@ -235,6 +238,9 @@ private:
bool force_sub_emit = false;
Transform3D emission_transform;
+ Vector3 emitter_velocity;
+ float interp_to_end = 0.0;
+ float amount_ratio = 1.0;
Vector<uint8_t> emission_buffer_data;
@@ -425,6 +431,7 @@ public:
virtual void particles_set_mode(RID p_particles, RS::ParticlesMode p_mode) override;
virtual void particles_set_emitting(RID p_particles, bool p_emitting) override;
virtual void particles_set_amount(RID p_particles, int p_amount) override;
+ virtual void particles_set_amount_ratio(RID p_particles, float p_amount_ratio) override;
virtual void particles_set_lifetime(RID p_particles, double p_lifetime) override;
virtual void particles_set_one_shot(RID p_particles, bool p_one_shot) override;
virtual void particles_set_pre_process_time(RID p_particles, double p_time) override;
@@ -460,6 +467,8 @@ public:
virtual AABB particles_get_aabb(RID p_particles) const override;
virtual void particles_set_emission_transform(RID p_particles, const Transform3D &p_transform) override;
+ virtual void particles_set_emitter_velocity(RID p_particles, const Vector3 &p_velocity) override;
+ virtual void particles_set_interp_to_end(RID p_particles, float p_interp_to_end) override;
virtual bool particles_get_emitting(RID p_particles) override;
virtual int particles_get_draw_passes(RID p_particles) const override;