godotengine / godot

Godot Engine – Multi-platform 2D and 3D game engine
https://godotengine.org
MIT License
89.35k stars 20.24k forks source link

This Particles2D (GLES3) shows nothing on iOS devices #41531

Open alexzheng opened 4 years ago

alexzheng commented 4 years ago

Godot version:

3.2.2

OS/device including version:

GLES3

Issue description:

This particle can be shown on macOS, Android devices, however, when run on iOS device that support gles3, nothing is show.

Steps to reproduce:

Minimal reproduction project:

Particles2D.tscn.zip

Tekuzo commented 2 years ago

Just thought I would post. I am still experiencing this on Godot 3.4.4 stable

Tekuzo commented 2 years ago

@alexzheng according to #35849 GLES3 isn't supported on iOS. So this may never get fixed.

Calinou commented 2 years ago

Transform feedback is implemented on the CPU in macOS graphics drivers (and probably iOS too). This means using GPUParticles does not improve performance compared to CPUParticles on macOS and iOS. In fact, CPUParticles are faster to render compared to GPUParticles on those platforms. See https://github.com/godotengine/godot/pull/55268.

Tekuzo commented 2 years ago

I am trying to use a process material to make a sprite explode by updating the colour too.

Would that work with the CPUParticles2D? The property in the Editor and from script is Material in CPUShaders2d and not Process Material like in Particles2D.

Calinou commented 2 years ago

I am trying to use a process material to make a sprite explode by updating the colour too.

Would that work with the CPUParticles2D? The property in the Editor and from script is Material in CPUShaders2d and not Process Material like in Particles2D.

CPUParticles do not have a concept of process materials; the individual-particle behavior is hardcoded. That said, it's already possible to use a color ramp in CPUParticles to alter particle color over time.