Godot: Particles2D are broken in GL|ES 2 compatibility mode

Created on 27 Jul 2018  ·  14Comments  ·  Source: godotengine/godot

Godot version:
Godot v3 (master).

OS/device including version:

  • Linux (Ubuntu).
  • NVidia GTX960M.

Issue description:
Particles2D node is broken on GL|ES2 compatibility mode; no texture is shown, and it's not possible to set it to emit something, whether it has a texture and a particle material or not. No error is shown on console.

Steps to reproduce:
Just create a Particle2D node anywhere when in GL|ES2 mode, and check whether you can set it to emit any kind of particle.

bug high priority rendering

Most helpful comment

No, they will never work in OpenGL ES 2.0 because they lack sufficient API.
I think what we should add is some sort of warning if this mode is selected, likewise with many unsupported properties

All 14 comments

GPU particles are supposed to not work on GL|ES2, but there are no CPU particles node for 2D (yet?).

Yeah, as @eon-s said, the Particles(2D) nodes are using shaders on the GPU and feedback transform, which are not available on GLES2, so they can't be implemented. For 3D there is CPUParticles, but the 2D counterpart is not implemented yet.

Didn't know about this! Thanks for answering.

But then, shouldn't Particles2D (and all other nodes that don't work with GL|ES2) be disabled when changing the GL|ES compatibility mode? The way it is right now is misleading; it should at least show the yellow warning sign at the Node tree to indicate it's not compatible with GL|ES2 mode.

(Keeping the issue open to discussion, maybe changing this to a UX kind of problem)

@karroffel said...

but the 2D counterpart is not implemented yet.

so, it will be added eventually. no need to add a warning for this.

@volzhs okay, no problem than! I would keep this issue open for tracking, but mantainers may close it if they see fit.

I do not think it should be disabled or use an annoying icon on the tree, but a warning message when running the project could be useful.

I'd like to point out that the same goes for _3D particles_ when the graphics mode is set to GLES2. turns out that the same problem occurs for 3D particles, especially when it does GPU processing. Figured I point it out cause I tried to get the 3D particles in GLES2 but to my absolute stun, the emission button does not work unless in GLES3. So unless 3D particles work in GLES2, its a bit of a bummer that both 2D and 3D particles absolutely does not work. Just an FYI before I nearly posted an issue that 3D particles doesn't work in GLES2.

@Corruptinator is because are practically the same, you can convert GPU to CPU particles if you want to use on GLES2 and are using particles material.

No, they will never work in OpenGL ES 2.0 because they lack sufficient API.
I think what we should add is some sort of warning if this mode is selected, likewise with many unsupported properties

@reduz maybe you can use a tracker to get a list of incompatible parts of gles2 and gles3 to design a warning system when changing renderer (output on debug will be enough, but needs to be descriptive for the user).

CPUParticles2D doesn't work with GLES2 either 😕 (3.1 alpha 1 and master)

I believe GLES2 doesn't have a concept of CPU particles at all.

As @karroffel said above, “CPU” particles are for gles2 support. (like particle systems in godot 2.x which used gles2 backend)
My project is stucked on this very issue(#21839) and I am looking forward to hearing some good news on the issue soon...

CPUParticles2D doesn't work with GLES2 either confused (3.1 alpha 2 and master), but if i used Godot 2.1, i have a working Particles2D (mark "Emitting") and visible particles... How?

Was this page helpful?
0 / 5 - 0 ratings