Here is a short demo of my accelerated GPU Particle System for Unity. This Particle System, when finished, should be an easy-to-use tool to handle millions of particles in real-time. Rendering and Physics are completely processed on GPU through compute shader kernels.
SCREEN SPACE RENDERING
I also made some research to be able to get fluid-like 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 made all the rendering steps (point sprite, depth to normal, blurring, bilateral filter…). Caustics render pass isn’t done yet and I didn’t implement good physics kernels yet. Particles aren’t interacting each other but only interacting with buffered colliders 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
Lots of metaballs can be heavy for a CPU process. I absolutely wanted to implement a compute shader approach of it … to see what are the possibilities in Unity to get a real-time fluid effect.
The result is not bad, still heavy with a high definition lattice but it can be managed in a small area with a good FPS (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 🙁