Commit graph

53 commits

Author SHA1 Message Date
Dario
e2c6daf7ef Implement asynchronous transfer queues, thread guards on RenderingDevice. Add ubershaders and rework pipeline caches for Forward+ and Mobile.
- Implements asynchronous transfer queues from PR #87590.
- Adds ubershaders that can run with specialization constants specified as push constants.
- Pipelines with specialization constants can compile in the background.
- Added monitoring for pipeline compilations.
- Materials and shaders can now be created asynchronously on background threads.
- Meshes that are loaded on background threads can also compile pipelines as part of the loading process.
2024-10-02 15:11:58 -03:00
Kasper Arnklit Frandsen
40b9516724 Add cone angle control to particle emission ring shape 2024-09-02 14:35:51 +02:00
Flyn San
67b16f261f
Fix code style for generated shader code from ParticleProcessMaterial
The results now match what our clang-format config would do.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2024-05-31 14:12:41 +02:00
Rémi Verschelde
ca2ed80539
Merge pull request #87320 from Rudolph-B/main
Fix collided particles getting stuck with zero velocity.
2024-05-15 12:09:27 +02:00
Rudolph Bester
45e5b151b6 Fixed collided particles getting stuck with zero velocity. 2024-05-14 18:55:56 +02:00
Rémi Verschelde
de329556f7
Merge pull request #91449 from Arnklit/particles-emission-ring-shape-fix2
Fix sqrt application for radius in particle ring emission
2024-05-14 18:09:47 +02:00
Kasper Arnklit Frandsen
94eefe168a Fix sqrt application for radius in particle ring emission 2024-05-14 12:22:21 +01:00
Pedro J. Estébanez
187e5ef258 Let materials' shaders update happen on loader threads 2024-05-06 19:40:00 +02:00
Rémi Verschelde
5a63d1db41
Merge pull request #91223 from Arnklit/particle-cylinder-emission-distribution-fix
Fix particle cylinder emission shape random distribution
2024-05-01 09:55:06 +02:00
Rémi Verschelde
3cb9e84cde
Merge pull request #85189 from QbieShay/qbe/fix-emission-at-end
Correctly emit sub-emitter's emission at the end
2024-05-01 09:54:38 +02:00
Kasper Arnklit Frandsen
af22d504da Fix particle cylinder emission shape random distribution 2024-04-30 17:24:58 +01:00
Rémi Verschelde
6f21267a46
Merge pull request #85880 from Rudolph-B/GPU-particles-2D-spread-issue
Fixed particle spread values affecting particle velocity
2024-04-24 09:59:04 +02:00
Kasper Frandsen
f8d08a8376 fix: avoid shader crash on null vector and negative x vector 2024-04-17 17:33:30 +01:00
kobewi
ce9fec9b4d Improve editing of min/max particle properties 2023-12-20 06:31:08 +01:00
Rudolph Bester
6b2a1b4fdc Fixed particle spread values effecting particle velocity 2023-12-08 06:03:37 +02:00
QbieShay
4d390cd39d Subemitter emission at end now correctly emits at end 2023-11-23 11:46:07 +01:00
QbieShay
a879e59581 Fixed radial inwards velocity clamping incorrectly (regression from 83488) 2023-11-23 10:32:56 +01:00
bitsawer
7c4d07c5a0 Fix several ParticleProcessMaterial texture names 2023-11-13 05:51:01 +02:00
bitsawer
1ec97a7b91 Fix several Material texture parameter updates 2023-11-01 03:10:46 +02:00
Rémi Verschelde
ceaa8333f3
Merge pull request #84028 from QbieShay/qbe/fix-damp-fric
Fix friction being in the correct if/else branch
2023-10-30 16:26:40 +01:00
QbieShay
8f2a2ece80 Fix friction being in the correct if/else branch
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2023-10-30 15:00:02 +01:00
Rémi Verschelde
47101c0cb1
Merge pull request #84056 from QbieShay/qbe/fix-orbit-z
Fix wrong rotation matrix for orbit z velocity
2023-10-30 10:18:33 +01:00
QbieShay
3b9cd04e1f fixed turbulence post rework. 2023-10-28 18:31:01 +02:00
QbieShay
a764e42860 fixed wrong rotation matrix for orbit z velocity 2023-10-28 15:03:36 +02:00
A Thousand Ships
5688bb1888 [Particles] Fix invalid parameter ranges 2023-10-26 16:14:58 +02:00
Rémi Verschelde
8835db5f37
Merge pull request #83881 from jsjtxietian/fix-generated-particle-shader-use-noise-direction-before-define
Fix `noise_direction` variable used before initialized in particle shader when using turbulence with collisions
2023-10-26 08:57:59 +02:00
jsjtxietian
cc14e0092a Fix noise_direction variable used before initialized in particle shader
when using turbulence with collisions, delete unused code
2023-10-25 19:35:16 +08:00
Rémi Verschelde
e8d57afaec
Merge pull request #83831 from QbieShay/qbe/fix-normal-point
Particles: Fix directed points not working, and fix friction formula
2023-10-24 11:39:17 +02:00
QbieShay
49fee5bc28 Fixed directed points not working, and fixig friction formula
Co-authored-by: RPicster <picster@pixelgod.net>
2023-10-23 14:06:23 +02:00
Saif Kandil
98db2b42f7 fix performance hit due to enabling collision
Signed-off-by: Saif Kandil <74428638+k0T0z@users.noreply.github.com>
2023-10-22 17:54:27 +03:00
Rémi Verschelde
55fc347efd
Merge pull request #83620 from clayjohn/particles-material-emission
Fix typo in particles process material when using emission color texture
2023-10-20 15:11:48 +02:00
clayjohn
1b80f21abf Fix typo in particles process material when using emission color texture 2023-10-19 17:29:46 +02:00
QbieShay
cbf75f9076 Fixed division by zero in particle process, initial ramp, and amount ratio+scale 2023-10-17 15:41:47 +02:00
QbieShay
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
Marcus Elg
936fd8db38 Fix GPUParticle2D offset stutter 2023-08-25 09:59:05 +02:00
Septian
cb7400d67a Fix particle shader deterministic random values 2023-08-15 15:06:37 +07:00
Hendrik Brucker
7e21eb7e00 Extract and reorganize texture resource classes 2023-07-14 20:04:21 +02:00
clayjohn
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
Raffaele Picca
353a4e1e09 Correctly reset particle size and rotation in ParticlesProcessMaterial
Co-authored-by: clayjhn <claynjohn@gmail.com>
2023-06-08 14:39:14 -07:00
Hugo Locurcio
fc4ec42a09
Increase precision in particle damping properties in the editor 2023-06-07 15:26:02 +02:00
KdotJPG
9332a091e1 Fix turbulence_noise_scale regression.
Fixes #77491
2023-05-30 23:58:01 -04:00
KdotJPG
91bdd4073b Reworked Particle Turbulence - Rebased. 2023-05-17 14:25:21 +02:00
Pedro J. Estébanez
b6647a5808 Avoid sync issues in materials with scheduled shader updates 2023-05-10 18:53:41 +02:00
clayjohn
821917ba9f Use angle_rand to calculate base_angle in particles process material 2023-04-13 15:10:47 -07:00
Rémi Verschelde
91713ced81
Merge pull request #70716 from Calinou/particles-tweak-animation-offset-property-hint
Tweak particles animation offset property hint to allow more precise values
2023-01-10 11:01:14 +01:00
Rémi Verschelde
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
Adam Scott
ea33001b95 Add safety-checks before some servers free() 2022-12-29 16:23:38 -05:00
Hugo Locurcio
8df24835e0
Tweak particles animation offset property hint to allow more precise values
Values above 1.0 (or below 0.0) are no longer allowed, as these make
no visual difference whatsoever (and may cause particles not to appear
at all if looping is disabled).
2022-12-29 22:15:17 +01:00
Rémi Verschelde
c55c0a2028 Merge pull request #66349 from A-Lamia/Amount_At_Collision
PARTICLES: adds amount property to collision sub particles.
2022-10-13 09:03:43 +02:00
Lamia
5af6f4a04b particles: add amount property to sub property collision. 2022-10-13 04:25:18 +11:00