Commit Graph

88 Commits

Author SHA1 Message Date
419e5c40fa Fix particle not re-randomizing every emission 2025-02-20 19:25:05 +01:00
2f3f6f69d9 Fix seed not randomizing for particles. Fix seed being stored when fixed seed is off 2025-02-04 12:17:21 +01:00
3973c0b644 fix gpu_particles_3d randomizing seed when set_one_shot is called 2025-01-22 11:29:52 -05:00
9303ccd337 Merge pull request #101596 from TCROC/fix-gpu-particles-3d-emitting-finished-signal-on-ready
Fix GPUParticles3D emitting `finished` signal on ready
2025-01-20 10:05:45 -06:00
484d6d4aa1 Fix emission_shape_changed signal error when using ShaderMaterial with 3DGPUParticles 2025-01-17 15:07:28 +01:00
d702e02172 fix gpu_particles_3d emitting finished signal on ready 2025-01-15 16:31:57 -05:00
1d2c503b00 Fix regression from already disconnected emission shape changed signal 2025-01-14 13:20:16 +01:00
133db1fd60 Merge pull request #92089 from QbieShay/qbe/particle_seek
Implement particle seek request and seed options.
2025-01-13 20:21:28 +01:00
e9eb0b6082 Implemented tools around particles seed randomization.
The purpose of this code is to expose the necessary
functions for users and engine devs to develop tooling
for properly timing and seeking inside particles.

Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
Co-authored-by: Tomasz Chabora <kobewi4e@gmail.com>
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2025-01-11 16:31:24 +01:00
bf2548463a Merge pull request #101012 from zachseiss/master
Preserve emission ring shape properties during conversion from GPUParticles3D to CPUParticles3D and vice versa
2025-01-06 22:48:20 +01:00
86ab88f016 added preservation of emission ring properties during conversion from GPUParticles3D to CPUParticles3D and vice versa 2025-01-03 07:47:06 -05:00
d484e23bce Merge pull request #100113 from paddy-exe/particle-emission-shape-visual-separate-pr
Add visualization of 3D particle emission shapes
2025-01-03 00:48:22 +01:00
e689c122a6 Add visualization of 3D particle emission shapes
Co-authored-by: Kasper Arnklit Frandsen <kasper.arnklit@gmail.com>
2024-12-28 19:56:50 +01:00
a1846b27ea Improve use of Ref.is_null/valid
Use `is_null` over `!is_valid` and vice versa.
2024-12-23 16:35:02 -05:00
90555e6b4d Merge pull request #100378 from clayjohn/particles-preprocess
Reduce slider range for Particles preprocess to discourage setting a preprocess time of 10 minutes
2024-12-18 00:39:49 +01:00
9ecdeb3723 Merge pull request #98747 from tetrapod00/standardize-renderer-strings
Standardize terms for renderers in error strings
2024-12-13 16:19:37 -06:00
f2a993aa1d Reduce slider range for Particles preprocess to discourage setting a preprocess time of 10 minutes 2024-12-13 11:36:36 -08:00
f6ea6cdb67 Fix some invalid int property ranges
* `HeightMapShape3D` had ranges configured for `float` instead of `int`
* Particles had `amount` that used `exp` which is not supported, added
  note
2024-11-23 19:17:29 +01:00
37305e40bc Merge pull request #95711 from TokageItLab/warn-oneshot-prop
Add hint for oneshot property & warning when it will be updated continuously by Force Continuous in `AnimationMixer`
2024-11-22 14:54:30 -06:00
899f5151c3 Standardize terms for renderers in error strings
Use "Forward+", "Mobile", "Compatibility", and "renderer" or "rendering method".
2024-11-10 13:30:44 -08:00
761a20f7a7 Add hint for oneshot & warning when it will be updated continuously 2024-11-11 01:12:45 +09:00
16524a8a01 Add "Game" editor for better runtime debugging 2024-10-30 11:42:17 -03:00
33e1f570ff Fix GPUParticles Inherit Velocity breaking with physics movement
GPUParticles' Inherit Velocity property used to act strangely
if the physics tick rate was lower than the rendered FPS, as velocity
was tracked in the process and not in the physics process. This
means that on certain rendered frames, the velocity was effectively
0 since there was no movement since the last rendered frame.
2024-07-02 01:46:57 +02:00
413c11357d Use Core/Scene stringnames consistently 2024-05-13 23:41:07 +02:00
a262d2d881 Add shorthand for using singleton string names 2024-05-11 18:53:08 +02:00
21f0529aa9 Revert "Update Node::get_configuration_warnings signature"
This reverts commit d3852deaa4.
2024-02-17 19:03:21 +01:00
d3852deaa4 Update Node::get_configuration_warnings signature 2024-02-08 23:05:20 +01:00
93be97e6a7 Make ShaderMaterial always the last option in inspector resource dropdowns
ShaderMaterial is the "advanced" option, while the "basic" options
should be listed first for easier accessibility (and because they're
generally used more often).

This makes sky and particle materials consistent with
canvas/spatial/fog materials on this aspect.
2024-02-05 21:49:17 +01:00
cb0a37f61a Only update particle velocity when it changes 2023-12-23 18:04:24 +01:00
c228fe1a0d Particle internal refactor and additions for more artistic control
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
Co-authored-by: Raul Santos <raulsntos@gmail.com>
Co-authored-by: Mew Pur Pur <85438892+MewPurPur@users.noreply.github.com>
Co-authored-by: Clay John <claynjohn@gmail.com>
2023-10-10 20:03:35 +02:00
5c43e4c1ef Fix various typos with codespell
Using 2.2.6.dev180+ge3a2cfbd.
2023-09-12 08:54:18 +02:00
7fcb91f077 Implement conversion from CPUParticles to GPUParticles (3D/2D) 2023-08-19 11:58:57 +03:00
de4a3fa151 Unify and streamline connecting to Resource changes 2023-07-17 19:35:57 +02:00
5322e255ad Add finished signal to GPUParticles 2023-07-12 13:29:47 +02:00
78ecdb17f9 Unify error condition for particles trail lifetime 2023-07-10 10:17:27 +02:00
8a5af8183a Add warnings and fallbacks for particles sub emitters when using the GL Compatibility rendering backend
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2023-06-21 12:56:52 -07:00
991f4d5183 Avoid error spam when (un)pausing GPUParticles out of tree 2023-06-12 18:18:51 +02:00
4652fbd09e Update GPUParticles2D/3D speed scale on ENTER_TREE
Fix for https://github.com/godotengine/godot/issues/75218

Pause notifications are not sent when a node is added as a child. So GPUParticles2D should also obey its can_process status on ENTER_TREE, not just PAUSED/UNPAUSED.
2023-03-27 13:24:59 -07:00
c69b14e96e Add warnings for unsupported features in mobile and gl_compatibility backends 2023-02-26 12:28:02 -08:00
d95794ec8a One Copyright Update to rule them all
As many open source projects have started doing it, we're removing the
current year from the copyright notice, so that we don't need to bump
it every year.

It seems like only the first year of publication is technically
relevant for copyright notices, and even that seems to be something
that many companies stopped listing altogether (in a version controlled
codebase, the commits are a much better source of date of publication
than a hardcoded copyright statement).

We also now list Godot Engine contributors first as we're collectively
the current maintainers of the project, and we clarify that the
"exclusive" copyright of the co-founders covers the timespan before
opensourcing (their further contributions are included as part of Godot
Engine contributors).

Also fixed "cf." Frenchism - it's meant as "refer to / see".
2023-01-05 13:25:55 +01:00
ea33001b95 Add safety-checks before some servers free() 2022-12-29 16:23:38 -05:00
9ce57050a5 Add GPUParticles to the OpenGL3 renderer.
This includes collision (2D SDF, Box, Sphere, Heightmap),
attraction (Box, Sphere), and all sorting modes.

This does not include 3D SDF collisions, trails, or
manual emission.
2022-11-14 23:28:25 -08:00
ab7a807f2b Rename GPUParticles2D/3D's trail_length_secs to trail_lifetime
The property already has a "seconds" suffix in the inspector.
The "lifetime" term makes it more obvious that the property is
specified as time, not a distance in units.

The property hint now allows manually entering values greater than
10 seconds.

The internal rendering value's default now matches the particles
nodes' default.
2022-11-07 13:37:40 +01:00
aed3822a93 Change return type of get_configuration_warnings to PackedStringArray 2022-09-19 16:43:15 +01:00
723bf85145 Rename ParticlesMaterial to ParticleProcessMaterial
Also affects their file names, related classes and documentation.
2022-08-26 02:53:08 +02:00
1a24c9e14b Make _validate_property a multilevel method 2022-08-22 18:35:11 +03:00
84076513b1 Use global coordinates for particles by default
Particles won't move or rotate anymore with the node (or its parents)
by default. This new default behavior is generally more suited
to most use cases. Local coordinates can still be enabled on a per-node basis.

This affects both 2D and 3D particles, and both CPU and GPU-based particles.
2022-08-02 23:25:02 +02:00
d4433ae6d3 Remove Signal connect binds
Remove the optional argument p_binds from `Object::connect` since it was deprecated by Callable.bind().
Changed all uses of it to Callable.bind()
2022-07-29 16:26:13 +02:00
5d9e56ecec Particles: Fix missing configuration warning updates
Fixes #33488.
2022-07-03 16:04:20 +02:00
4678736a39 Add suffixes to all nodes and resources 2022-06-11 09:41:05 -05:00