I've been trying to track this down, but google is giving paywall papers that don't appear to be directly related to computational science, or simply don't explain the source algorithm.

There's an account on shadertoy that has been showing off this method, but does not know where it came from and got it from someone else on the site. These are some examples of this method in action:




as far as I can tell, it relies on closest particles to any given point in a cell, but somehow manages to avoid checking more than adjacent particles. I really don't understand what is going on beyond that.


I just found out about Voronoi particle tracking so i'm definitively not an expert. I just want to share what I have found to help others on there journey.

The author of the posted Shadertoy examples has a blog where he talks about it: https://michaelmoroz.github.io/Reintegration-Tracking/

Some papers that are talking about it are not behind a paywall (anymore) https://core.ac.uk/download/pdf/11143248.pdf and https://www.cs.rochester.edu/u/kautz/papers/voronoi-tracking.pdf

This was shared on the sharetoy facebook group: "For those who would like to understand the magic principle behind Voronoï particle tracking, I commented & refactored 2 different great shaders: https://www.shadertoy.com/view/3ty3Dy https://www.shadertoy.com/view/WtK3zt

These shaders implement to very different ideas:

  • 1: explicit: introduce an intermediate Voronoï structure to track particles closest to the pixel (RGBA = 4 ids).
  • 2: implicit: try to store particle of pos(x,y) as close as possible to location (x,y) in the buffer, by smart slow resorting along simulation.

( Of course you might loose a particle from time to time since collisions are not managed - even if not supposed to occurs in incompressible fluids some do happen, thus some "repopulate void" slow particle creation. + some redundancy in neighborhood thanks to the Voronoï areas, and/or storing 4 partics in RGBA )."

SOURCE: https://www.facebook.com/groups/shadertoy/permalink/567902837124080


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.