Я играю с системой частиц в реальном времени в openframeworks для художественной инсталляции.
Моя визуальная цель — что-то вроде жидкой поверхности. Весь экран заполнен медленно движущимися частицами, а между отдельными точками должны быть медленные потоки движущихся частиц, плотность которых может увеличиваться. (Наподобие очень медленного перемешивания молока в чашке кофе...) Это не обязательно должно быть точным, просто должно хорошо выглядеть, примерно с 50 000-100 000 частиц, работающими на приличном Mac.
В настоящее время у меня есть простая система частиц, основанная на физике: ParticleVec3 на github имеют массу, скорость и т. д., и к ним математически можно применить силы.
Мой первый подход заключается в реализации натяжения между близкими частицами, чтобы другие частицы тянулись за движущейся.
Вторая идея состоит в том, чтобы ограничить диапазон действия силы, для этого я должен знать, какие частицы находятся вокруг точки, в которой должна быть применена сила.
Есть ли у вас какие-либо советы или общий алгоритм решения этой проблемы?
Как вы думаете, мне следует уточнить один из моих подходов? Для этого мне, вероятно, придется найти низкопроизводительный способ поиска окружающих частиц.