Katana Particle System

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:

GDC2006
http://http.download.nvidia.com/developer/presentations/2006/gdc/2006-GDC-DX10-Practical-Metaballs.pdf

CPU approach
http://wiki.unity3d.com/index.php?title=MetaBalls

GPU Gems
https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch01.html

QKatana Particle System

6 comments

Join the conversation
  • Roman - June 10, 2016 reply

    Hi. How can I try your “Katana particle system” and “Fluids through Marching Cube” . Free version, trial, demo version, assetstore?

    Q - June 12, 2016 reply

    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 reply

    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 reply

    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 reply

    How about the project?I have a big problem on the water effect,you project can help me.

    Q - January 1, 2018 reply

    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 🙁

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.