Commit Graph

58 Commits

Author SHA1 Message Date
PouleyKetchoupp d82cc621e1
Fix 2D Particle velocity with directed emission mask
Changed CPU velocity calculation for EMISSION_SHAPE_DIRECTED_POINTS
to follow the same logic as in the GPU version:
mat2 rotm;
rotm[0] = texelFetch(emission_texture_normal, emission_tex_ofs, 0).xy;
rotm[1] = rotm[0].yx * vec2(1.0, -1.0);
VELOCITY.xy = rotm * VELOCITY.xy;

Now both CPUParticles2D & CPUParticles3D (z disabled) show the same results
as their GPU counterparts and take the initial velocity settings into account.

(cherry picked from commit 1c231cacb3)
2020-08-21 02:28:19 +02:00
jitspoe e0be022b1e Fix custom w component being uninitialized on CPU particles.
(cherry picked from commit 38085f2f6982c491935a434bb45e358dbebe1714)
(cherry picked from commit b9c280b73ff6a13ea490d2da0f2728bcef3038dc)
(cherry picked from commit 895ed2aed7)
2020-05-04 16:10:22 +02:00
Rémi Verschelde 1de633205f Validate input in (CPU)Particles set_emission_shape()
Fixes #29777.

Co-authored-by: Cameron Reikes <cameronreikes@gmail.com>
2020-01-16 11:08:51 +01:00
Rémi Verschelde a7f49ac9a1 Update copyright statements to 2020
Happy new year to the wonderful Godot community!

We're starting a new decade with a well-established, non-profit, free
and open source game engine, and tons of further improvements in the
pipeline from hundreds of contributors.

Godot will keep getting better, and we're looking forward to all the
games that the community will keep developing and releasing with it.
2020-01-01 11:16:22 +01:00
Mikolaj Kaczmarek a245bab78d Fixed disconnecting not connected signal 2019-10-29 00:53:48 +01:00
PouleyKetchoupp 1e0f37a70f Fixed emitting not initialized correctly in cpu particles 2d/3d
Fixes uninitialized variable caused by PR #32921
2019-10-24 21:38:01 +02:00
PouleyKetchoupp 5bf516a062 Fixed delay when CPUParticles & CPUParticles2D start being emitted
Particles were processed only on the next frame after the emission started, causing a one frame delay in rendering. Now the first process cycle is started during the same frame, which makes them consistent with Particles & Particles2D.

Fixes #32890
2019-10-20 09:50:00 +02:00
Rémi Verschelde dec10dd776
Merge pull request #32051 from qarmin/some_error_explanation
Added some obvious errors explanations
2019-09-25 11:51:54 +02:00
qarmin 17732fe698 Added some obvious errors explanations 2019-09-25 10:28:50 +02:00
clayjohn bc94203add fix particles scale randomization 2019-09-24 08:03:53 -07:00
Rémi Verschelde d15cf7b672
Merge pull request #30576 from qarmin/lgtm_coverage
Changed some code reported by LGTM and Coverity
2019-07-20 12:00:13 +02:00
qarmin 6cbaf7662f Changed some code showed in LGTM and Coverage 2019-07-20 08:09:57 +02:00
clayjohn 5ef3374258 added individual particle random lifetime 2019-07-14 23:22:40 -07:00
Simon Puchert 18ba1bc824 cpu_particles: Return uniform density spheres.
The current implementation normalizes points from a uniform distribution
on a cube. This creates a non-uniform distribution on the sphere.
2019-07-06 00:13:03 +02:00
Rémi Verschelde c08877777d
Merge pull request #26613 from KoBeWi/direction_of_particles
Add a Direction property to ParticlesMaterial
2019-07-02 11:33:34 +02:00
Rémi Verschelde 0636f709af
Merge pull request #29937 from clayjohn/particles-one-shot-bug
Update emitting status on one-shot particles
2019-06-27 17:29:40 +02:00
Tomasz Chabora 00b15c19b7 Add a Direction property to ParticlesMaterial 2019-06-26 20:37:39 +02:00
clayjohn d59dbda24f update emitting status on one-shot particles 2019-06-25 22:07:29 -07:00
Rémi Verschelde 25022a1d89
Merge pull request #29974 from clayjohn/particles_restart
Properly set emitting when particles restart
2019-06-24 13:48:56 +02:00
clayjohn 64ecc8a5a3 properly set emitting when particles restart 2019-06-21 22:33:11 -07:00
Rémi Verschelde b3fe249e94 CPUParticles: Set linear velocity to 0, like GPU Particles 2019-06-21 15:23:48 +02:00
Rémi Verschelde fae3df1204 Particles: Properly initialize angular velocity parameter
Right now it would take garbage values when loading scenes,
which could end up written to the scene file.
2019-06-21 15:23:10 +02:00
Rémi Verschelde 9d3342545d
Merge pull request #29700 from clayjohn/cpuparticles_transform_bug
Fix CPU particles bug with local_coords and transform
2019-06-16 10:49:30 +02:00
clayjohn 52696e98b4 fix CPU particles bug with local_coords and transform 2019-06-14 13:22:19 -07:00
Rémi Verschelde 52dd0f8751 Implement missing orbit velocity for CPUParticles and CPUParticles2D
The relevant code was copied from (GPU) ParticlesMaterial but commented
out initially, and never ported.

Closes #29580.
2019-06-13 11:35:07 +02:00
Rémi Verschelde f160c81f68
Merge pull request #29696 from akien-mga/cpuparticles-randomness
CPUParticles: Do randomness ratio computations in phase instead of time
2019-06-12 10:54:02 +02:00
Rémi Verschelde d0c2005da1 CPUParticles: Do randomness ratio computations in phase instead of time
The original shader code uses a phase (ratio from 0 to 1 for the particle
lifetime) for the randomness ratio computations, and this code was ported
over but converted to time computations.

The seeding/cycle logic was thus invalid, so we're going back to phase
for these computations, thus fixing the previous non-working time/emission
randomness property.

Part of #29692. Follow-up to #26859.
2019-06-11 23:40:56 +02:00
Rémi Verschelde 9206bcabaa CPUParticles: Fix inconsistent tangential acceleration
The tangential acceleration for both CPUParticles2D and CPUParticles had been
badly converted from their GPU counterpart (ParticlesMaterial).
This fixes it and ensures that both GPU and CPU particles behave the same with
regard to tangential acceleration.
2019-06-11 18:56:07 +02:00
Hugo Locurcio 33fd5538d0
Tweak the particle animation node configuration warning message 2019-05-25 19:59:17 +02:00
Daeil Kim 692205da33 Make multimesh invisible initially in CPUParticles
Fixes #28252
2019-04-24 16:52:49 +09:00
Daeil Kim 24b7f08892 Ensure non-emitting particles not processed on entering tree
Also removed non-active CPUParticles(3d) from render list
Fixes #27066
2019-03-20 21:54:00 +09:00
JFonS c13ac398f6 Fix resetting of CPUParticles (2D and 3D) 2019-03-10 00:33:08 +01:00
Daeil Kim 1edc2134c9 Prevent invisible/inactive cpuparticles to redraw(3d) 2019-03-09 10:50:44 +09:00
clayjohn 0fec83bc92 allowing setting particles lifetime greater than 600 2019-02-18 10:46:41 -08:00
Michael Alexsander Silva Dias 9c69d7f339 Appease some CppCheck warns for files in the "scene" directory 2019-01-16 12:59:18 -02:00
Rémi Verschelde b16c309f82 Update copyright statements to 2019
Happy new year to the wonderful Godot community!
2019-01-01 12:58:10 +01:00
Rémi Verschelde 0dd89a3d97
Merge pull request #24051 from Omicron666/patch-1
Fixes typo in source string sent to translation.
2018-12-03 17:34:49 +01:00
Rémi Verschelde cda28f5077
Merge pull request #24007 from JFonS/fix_cpuparticles_scale
Fix "scale" property collision in CPUParticles
2018-12-02 17:56:06 +01:00
JFonS 4ede92bdc8 Fix "scale" property collision in CPUParticles 2018-11-30 16:05:50 +01:00
Omicron 464e294c8f
Fixes typo in source string sent to translation.
no mesh has ~~not~~ been assigned
2018-11-29 13:12:09 +01:00
Aaron Franke cb01268562 Fix many errors found by PVS-Studio
Fix errors 2, 3, 4, 6, 8, 9, 11, 12, 13, 14, and 15.
2018-11-28 05:03:24 -05:00
Italo Vieira a8a92ec114 Fixing wrong type hint on CPUParticles and CPUParticles2D's color ramp
Fixes #22795
2018-11-23 00:54:25 +01:00
Hugo Locurcio 34dba2f3cc
Tweak the Hue Variation property hint to allow finer adjustments 2018-11-19 10:52:17 +01:00
JFonS cbfb7bd613 Make 2D particles work OOTB (again) 2018-11-13 23:25:05 +01:00
Kanabenki 44918e214f Fix wrong editor hints for angular_velocity properties 2018-11-10 17:13:21 +01:00
JFonS 85ce4a67ed Remove animation loop from ParticlesMaterial + improvements to CPUParticles2D
Remove animation loop from ParticlesMaterial and move it to
SpatialMaterial for 3D particles and Particles2D for the 2D case.

Added animation to CPUParticles2D as well as the "Convert to
CPUParticles2D" to the PAarticles2D menu.
2018-11-04 15:58:12 +01:00
Juan Linietsky 328679fddd Ensure CPU particles do not process if not visible 2018-10-08 00:55:43 -03:00
Juan Linietsky 14494dddd0 Fixes to CPU particles for performance and avoiding NaNs. 2018-10-08 00:55:43 -03:00
Rémi Verschelde 62ecb44035 Fix warning about functions defined but not used [-Wunused-function]
Fixes the following GCC 5 warnings:
```
core/io/zip_io.h:128:26: warning: 'zlib_filefunc_def zipio_create_io_from_file(FileAccess**)' defined but not used [-Wunused-function]
core/script_debugger_remote.cpp:110:17: warning: 'ObjectID safe_get_instance_id(const Variant&)' defined but not used [-Wunused-function]
drivers/unix/socket_helpers.h:103:12: warning: 'int _socket_create(IP::Type&, int, int)' defined but not used [-Wunused-function]
drivers/unix/socket_helpers.h:45:15: warning: 'size_t _set_sockaddr(sockaddr_storage*, const IP_Address&, int, IP::Type)' defined but not used [-Wunused-function]
drivers/unix/socket_helpers.h:76:15: warning: 'size_t _set_listen_sockaddr(sockaddr_storage*, int, IP::Type, IP_Address)' defined but not used [-Wunused-function]
editor/editor_fonts.cpp:40:24: warning: 'Ref<BitmapFont> make_font(int, int, int, int, const int*, const Ref<Texture>&)' defined but not used [-Wunused-function]
editor/editor_themes.cpp:85:26: warning: 'Ref<StyleBoxFlat> change_border_color(Ref<StyleBoxFlat>, Color)' defined but not used [-Wunused-function]
editor/import/editor_import_collada.cpp:493:13: warning: 'void _generate_normals(const PoolVector<int>&, const PoolVector<Vector3>&, PoolVector<Vector3>&)' defined but not used [-Wunused-function]
editor/import/editor_import_collada.cpp:524:13: warning: 'void _generate_tangents_and_binormals(const PoolVector<int>&, const PoolVector<Vector3>&, const PoolVector<Vector3>&, const PoolVector<Vector3>&, PoolVector<float>&)' defined but not used [-Wunused-function]
editor/pvrtc_compress.cpp:118:13: warning: 'void _compress_etc(Image*)' defined but not used [-Wunused-function]
modules/etc/image_etc.cpp:89:13: warning: 'void _decompress_etc1(Image*)' defined but not used [-Wunused-function]
modules/etc/image_etc.cpp:93:13: warning: 'void _decompress_etc2(Image*)' defined but not used [-Wunused-function]
modules/gdscript/editor/gdscript_highlighter.cpp:46:13: warning: 'bool _is_whitespace(CharType)' defined but not used [-Wunused-function]
scene/2d/cpu_particles_2d.cpp:510:14: warning: 'float rand_from_seed_m1_p1(uint32_t&)' defined but not used [-Wunused-function]
scene/3d/cpu_particles.cpp:474:14: warning: 'float rand_from_seed_m1_p1(uint32_t&)' defined but not used [-Wunused-function]
scene/resources/default_theme/default_theme.cpp:123:20: warning: 'Ref<Shader> make_shader(const char*, const char*, const char*)' defined but not used [-Wunused-function]
scene/resources/default_theme/default_theme.cpp:130:24: warning: 'Ref<BitmapFont> make_font(int, int, int, int, const int*, const Ref<Texture>&)' defined but not used [-Wunused-function]
```

Had to split `core/io/zip_io.h` into header and .cpp file without 'static' keyword.

Not fixed yet (static definition in header used in some files but not all):
```
modules/websocket/lws_helper.h:111:13: warning: 'void _lws_make_protocols(void*, int (*)(lws*, lws_callback_reasons, void*, void*, size_t), PoolVector<String>, _LWSRef**)' defined but not used [-Wunused-function]
```

Also fixed a couple other warnings missed in previous commits.
2018-09-29 22:26:12 +02:00
Rémi Verschelde 5fe01d4cfc Move ParticlesMaterial code to its own resource file
It's shared by both 2D and 3D particles (+ CPU ones), so it makes sense
to have as a common resource. It also allowed to disable compilation of
Particles (3D) when using 'disable_3d'.

Also cleaned up includes in SpatialEditorGizmos and some other places,
as well as dropped dead code in material_editor_plugin.cpp.
2018-09-04 11:32:56 +02:00