Open Novark opened 1 year ago
Might be fixed by https://github.com/godotengine/godot/pull/64606
Hey, #64606 was superseded by https://github.com/godotengine/godot/pull/77154 . Can you test if the issue persists?
Hey, #64606 was superseded by #77154 . Can you test if the issue persists?
I don't have my environment set up at the moment to be able to build from source. Is there anywhere I can grab a compiled build of the master branch? If not, I'll be happy to test this in the next pre-release distribution.
Hey, #64606 was superseded by #77154 . Can you test if the issue persists?
I've just tested this in v4.1.dev3.official [a67d37f7c], and the issue still persists. Moreover, the new implementation doesn't seem very "turbulent" at all - I'm not sure why this is, but playing with the turbulence settings, I'm not able to get anywhere near the same behaviour as before. Particles just seem to wiggle around a little bit now, but the visual characteristics are completely different. Please let me know if there's something that I'm missing with the new implementation, and I can re-test.
Edit: I've filed a new bug report for the unexpected turbulence changes. See #77491 for details
It seems to have something to do with the distribution of the results of rand_from_seed(alt_seed)
after certain numbers of calls. Adding one dummy call before the line here seems to fix it.
I'd like to better figure out what exactly is causing the issue to begin with, though.
Hey @KdotJPG , did you figure it out in the end? Otherwise we can just add an extra random call and call it a day.
@Novark could you test with https://github.com/godotengine/godot/issues/74541 ?
@Novark could you test with #74541 ?
Issue still persists in v4.2.dev2.official
The PR isn't merged yet, it needs to be tested on a custom build. In the checks tab of the PR, there's an "artifacts" button. You can download the custom build from there:
Please test on an empty project with just one turbulence particle system, this is a WIP PR and may change existing particle systems (although it shuoldn't)
The PR isn't merged yet, it needs to be tested on a custom build. In the checks tab of the PR, there's an "artifacts" button. You can download the custom build from there: [Image])
Please test on an empty project with just one turbulence particle system, this is a WIP PR and may change existing particle systems (although it shuoldn't)
Alright, I've tested it with your PR and noticed the following things:
turbulence_influence_max
increases - increasingly noticeable at values > 0.75 or so ):speed_scale
(Under the "Time" parameters) value to 0.1 and observe the results. It's almost like every particle is constantly bouncing between (Y+0) and (Y+16) positions or something - like some Y-positional fighting for even / odd render frames. You can see each particle "doubling up" in the Y-direction. Additionally, the entire particle system also jitters. You'll randomly see the whole system "jump" for about a frame. This particle-system-wide-jitter seems to happen even when turbulence is disabled. I do not observe this jitter with CPUParticles2D.Does it happens also if you turn off interpolation?
Does it happens also if you turn off interpolation?
Disabling interpolation seemed to fix a lot of the system-wide jitter (the Y-position issue I described above). I'm assuming this behaviour is not intended. Let me know if you want me to open a new bug report for it.
The turbulence jitter that occurs when turbulence_influence_max
is cranked up still persists, however.
Disabling interpolation seemed to fix a lot of the system-wide jitter (the Y-position issue I described above). I'm assuming this behaviour is not intended. Let me know if you want me to open a new bug report for it.
Interpolation issues are already being tracked in https://github.com/godotengine/godot/issues/51318.
Thank you @Novark ! I'll investigate the issue with max turbulence and try to address it with my PR. If I don't figure it out I'll address it in a subsequent PR.
Godot version
v4.0.stable.official [92bee43ad]
System information
Windows 11 [Vulkan]
Issue description
The turbulence influence min/max properties seem to apply across the emitter shape in a linearly increasing fashion instead of randomly on a per-particle basis as per the documentation:
IMPORTANT: This issue is resolved when the "Disable Z" Particle Flags checkbox is un-checked. This checkbox is enabled by default when the GPUParticles2D node is enabled.
P.S. the documentation for turbulence_influence_min and turbulence_influence max are incorrectly swapped.
Steps to reproduce
To reproduce this is fairly simple:
The expected behaviour would have the turbulence influence take a random value between [min, max] and apply a random value to each particle along the emission shape.
Un-check the "Disable Z" Particle Flag to see the intended behaviour. I'm unsure why this checkbox is affecting the way turbulence influence is distributed across the emission shape, but it may have something to do with the way
VELOCITY
is being calculated in the shader. Digging into the code a bit, it seems that there's some pretty large discrepancies with how the velocity spread is calculated forPARTICLE_FLAG_DISABLE_Z
enabled vs. disabled. I'm not familiar enough with the code to say for certain where this might be occurring, however.Minimal reproduction project
No sample project provided, as the reproduction is quite simple to replicate.