什么是 Voronoi 粒子跟踪?

计算科学 算法 流体动力学 粒子
2021-12-25 06:38:29

我一直在试图追查这一点,但谷歌提供的付费墙论文似乎与计算科学没有直接关系,或者根本没有解释源算法。

shadertoy 上有一个帐户一直在炫耀这种方法,但不知道它是从哪里来的,并且是从网站上的其他人那里得到的。以下是此方法的一些实际应用示例:

https://www.shadertoy.com/view/3sdXRX

https://www.shadertoy.com/view/WdcXzS

https://www.shadertoy.com/view/tdtSRB

据我所知,它依赖于最接近单元格中任何给定点的粒子,但以某种方式设法避免检查超过相邻粒子。我真的不明白除此之外发生了什么。

1个回答

我刚刚发现了有关 Voronoi 粒子跟踪的信息,所以我绝对不是专家。我只想分享我的发现,以帮助其他人在旅途中。

已发布的 Shadertoy 示例的作者在博客中谈到了它:https ://michaelmoroz.github.io/Reintegration-Tracking/

一些正在谈论它的论文不在付费墙后面(不再)https://core.ac.uk/download/pdf/11143248.pdfhttps://www.cs.rochester.edu/u/kautz/papers /voronoi-tracking.pdf

这在 sharetoy facebook 群组中分享:“对于那些想了解 Voronoï 粒子跟踪背后的神奇原理的人,我评论并重构了 2 个不同的出色着色器: https ://www.shadertoy.com/view/3ty3Dy https:/ /www.shadertoy.com/view/WtK3zt

这些着色器实现了非常不同的想法:

  • 1:显式:引入中间 Voronoï 结构来跟踪最接近像素的粒子(RGBA = 4 ids)。
  • 2:隐式:尝试将 pos(x,y) 的粒子存储在缓冲区中尽可能靠近位置 (x,y) 的位置,通过模拟的智能慢速诉诸。

(当然,由于没有管理碰撞,您可能会不时丢失一个粒子——即使不应该发生在不可压缩的流体中,有些确实会发生,因此一些“重新填充虚空”缓慢的粒子创建。+ 由于 Voronoï 在附近的一些冗余区域,和/或在 RGBA 中存储 4 个粒子)。”

来源:https ://www.facebook.com/groups/shadertoy/permalink/567902837124080