Правильно ли я понял, что для красивой симуляции какого-нибудь дыма, возможно посчитать N итераций таким солвером, после чего просто взять полученную трёхмерную текстуру с полем скоростей (статичную), и гонять по этому полю свои частицы? Или же в этом случае будет слишком явно виден паттерн их движения?
Madware
в принципе можно поле скоростей, посчитанное каким угодно методом, но если долго по нему частицы гонять, то будет видно, что оно не эволюционирует. это хорошо подходит для устоявшихся потоков вроде медленных ручьёв, но плохо подходит для турбулентных потоков взрывов.
Suslik
> могу видосы записать, если кто-то может сказать, как должно быть правильно.
https://www.youtube.com/watch?v=99K8RPES5YE
Suslik
А тут говорят, сетку хранить не нужно и можно считать уравнение только для поверхности https://www.youtube.com/watch?v=9gUSmYRl8B8
такой поверхностью может быть обычный треугольный меш?
гнум например
slax
> А тут говорят, сетку хранить не нужно и можно считать уравнение только для
> поверхности https://www.youtube.com/watch?v=9gUSmYRl8B8
очень круто, только этот метод для совсем других ситуаций (для моделирования поверхности). не видел раньше такого.
я только не понял, почему у них ротор поля скоростей считается нулевым — они утверждают, что это соответствует нулевой вязкости, но разве это не соответствует, напротив, бесконечной вязкости?
Suslik Я дико извиняюсь, но разве ветер не дует в сторону инзкого давления? ТАм, на первой странице в примере сказано, что обратно пропорционален градиенту давления. Также нет объяснения по поводу несжимаемости, в уравнении есть еще член который отвечает за изменение давления во времени, это и есть несжимаемость, он равен 0, откуда и уравнение. Вот этого я также не заметил, хоть и читал предложение 60 раз в секунду
НАсмехолепный
> Я дико извиняюсь, но разве ветер не дует в сторону инзкого давления? ТАм, на первой странице в примере сказано, что обратно пропорционален градиенту давления
там написано "в направлении, обратном градиенту давления". это следует понимать как "направлен противоположно", а не "обратно пропорционален".
НАсмехолепный
> Также нет объяснения по поводу несжимаемости, в уравнении есть еще член который
> отвечает за изменение давления во времени, это и есть несжимаемость, он равен
> 0, откуда и уравнение. Вот этого я также не заметил, хоть и читал предложение
> 60 раз в секунду
да, ты первый, кто это заметил. на самом деле там используется небольшой хак — берётся оператор проекции от обеих частей уравнения и тогда член с давлением просто обнуляется и в результирующей программе вообще не участвует. то есть давление высчитывается из одного только условия несжимаемости на шаге "проекция", а не из самого уравнения навье-стокса. я не даю объяснения, почему так можно делать, потому что уравнение навье-стокса я вообще в этой статье рассматриваю только для сравнения, есть статьи, где оно рассмотрено лучше и более подробно, например, тут: https://developer.download.nvidia.com/books/HTML/gpugems/gpugems_ch38.html
Суслик опять выпендривается, показывая, какой он умный.
Непонятного вида формулы в статье умеют читать только университетские пердуны. А всё тоже самое но в форме кода, который могут понять программисты, показать он считает ниже своего уровня величия.
Panzerschrek[CN]
ещё один. в оригинальной статье есть ссылка на репозиторий, бери да скачивай.
Suslik
> оригинальной статье есть ссылка на репозиторий
Чё-то не поглазам.
Но даже если и есть, саму статью от этого читать проще не становится.
Panzerschrek[CN]
> Но даже если и есть, саму статью от этого читать проще не становится.
>
ИМХО было бы че читать когда в сей "Распальцовке" даже списка литературы нормального нету
Доброго времени, я тут недавно нашёл видео, где ребята получали вторичные кольца при столкновении двух тороидов. Может ли эта модель повторить сей чудо эффект? Или это совсем из другой оперы? :)
snake32
насколько я знаю, это — как раз первый метод, который очень легко может получить вот этот конкретный эффект с радиальными вихрями. даже на грубой сетке вроде 64х64х64. я тоже их получал, но из-за неидентифицированных косяков в коде почему-то именно этот расчёт вёл себя странно в середине, поэтому я не стал его показывать, хотя те самые вихри вполне получались. я так и не разобрался, в чём проблема. чтобы посмотреть, как оно выглядит нормально, можно посмотреть картинки в оригинальном пейпере, у них тоже есть такой расчёт.
Спасибо! Шрёдингер крут!
Спасибо за очень интересную статью! Давно не заглядывал на геймдев, а тут такой годный контент.
Перед моим вопросом стоит сразу уточнить: математикой не так много занимаюсь, как стоило бы (да мало я занимаюсь, мало )).
Часть понятий видел впервые.
Со скрипом, но вполне понял первую часть про решение Навье-Стокса и думаю закодить на днях его решение для апгрейда сознания )
Во второй части всё для меня сложнее. Если я какой-то шаг не понял, то дальше дело не пойдёт у меня. Там ты пишешь:
Сначала мы решаем уравнение Шрёдингера:
я решаю через fft
Я писал/использовал fft и в общем понимаю его суть и применение. Но, видимо, плохо понимаю. Мне на данном этапе вообще не ясно как ты "решаешь через fft". В чём суть "решения через fft"? Я конечно плохо сформулировал вопрос, но пока не знаю как лучше )
Если вопрос будет понятен, то буду признателен за объяснение или наводку на статью.
Тема в архиве.