Here is a short demo of an accelerated GPU Particle System for Unity.
SCREEN SPACE RENDERING
I found many techniques on the web but here is the document from Nvidia that brought me light on this subject. Based on it, I created all the rendering steps (point sprite, depth to normal, blurring, bilateral filter…). Caustics render pass isn’t done at this stage and the physics kernels have to be refactored.
Particles aren’t interacting each other but only interacting with the collision data buffer from the scene.
CURRENT FEATURES
- Emitter rate and radius
- Forces and angular forces
- Size over time
- Particle Age
- Enable/Disable gravity (values from the Unity physic engine)
- Noise on velocities
- Change color over time
- Bounce and impact parameters
- Soft particles rendering
- GPU Collision Detection based on Unity colliders (bufferize scene colliders to interact with particles)
- Screen Space Rendering for Fluids (experimental)
COMING FEATURES
- Complex Mesh and Terrain Collision on GPU side
- Attract and Repel Force Areas
- All kind of Blend mode for rendering
MARCHING CUBE APPROACH
Compute shader metaball approach to render a real-time fluid:
The result is not bad, still heavy with a high definition lattice but it can be managed in a small area with at a good framerate (120-150 here).
Isosurface and Marching Cube algorithms are not an easy subject but I found interesting articles and I ported some C++ sources (DirectX10) from Nvidia to Unity (DirectX11).
Here are some links:
CPU approach
http://wiki.unity3d.com/index.php?title=MetaBalls
GPU Gems
https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch01.html
6 comments
Join the conversationRoman - June 10, 2016
Hi. How can I try your “Katana particle system” and “Fluids through Marching Cube” . Free version, trial, demo version, assetstore?
Q - June 12, 2016
I’m sorry, I don’t have time to finish and package that project. I was planning to release something… I will if I found some weeks to work on it.
Cheers,
Q.
Roman - June 14, 2016
ok. I really hope that you will found a time. I think your plugin will be interest to many users too.
Jin - June 28, 2016
Fantastic job! Quentin, I really hope that you will find time to finish this work and put it on the Unity Assetstore
May - July 18, 2017
How about the project?I have a big problem on the water effect,you project can help me.
Q - January 1, 2018
Sorry for late response. Wasn’t paying attention to this project from long time. This Particle System needs more work to be distributed, it’s still experimental and I have no budget for it right now 🙁