Katana Particle System

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:

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 to May Cancel 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.