Closed xxssd-awsl closed 5 months ago
Hi @xxssd-awsl, I suppose it depends what your experience is with both + what the project is as a whole and its requirements.
Also depends if you are building from scratch or using a pre-made rendering engine (something like Unity) that can use Vulkan or OpenGL ES. If you're using a pre-built engine I would suggest simply benchmarking both backends if possible.
I think the main points to consider are that:
OpenGL ES is relatively easy to get a particle system going, which a major plus. This repo is an ok example of what's needed.
Vulkan requires a lot of additional work to even get setup for rendering e.g. drawing a triangle takes this much work, let alone compute shaders. But in theory you only do that setup once.
If you know your way around Vulkan/are willing to learn it, then I guess there may well be performance improvements with Vulkan. But I have no concrete data on hand.
Potentially you can target IOS better with Vulkan (to Metal with MoltenVK), currently I've not looked at IOS.
Do you need it to be computed on the GPU? You can likely get 100,000 particles simulated on the CPU and rendered on modern phones in 60fps (although don't quote me on that) you can definitely get ~1,000,000 non-interacting (i.e like this app's) particles on a desktop (i7-4790k, single thread). I.e. this approach
Perhaps overall though it might be worth building a prototype using OpenGL ES as it is quicker/easier.
In theory it can be abstracted enough so if you implement a Vulkan renderer you simply swap the commands for: uploading/initialising particles, computing, and drawing.
Hope that helps somewhat.. :mouse:
I want to build a particle system, but I'm tangled in use Vulkan or OpenGL ES.