Suslik
А что там с таймингами, 0.7 ms на resolve collisions? У меня мои 200k шариков на cpu за 0.3 ms считаются :)
Кстати, твердые шарики в 2D и выше имеют фазовый переход. Правда, мне кажется, что неточности практической реализации его размажут до полной неразборчивости.
Alexander K
> А что там с таймингами, 0.7 ms на resolve collisions? У меня мои 200k шариков на cpu за 0.3 ms считаются :)
я не особо заморачивался с оптимизациями, потому что целью стоит пойти дальше, а дальше и оптимизации будут другими. сейчас у меня, например, на каждый патикл хранится по 12 флотов, в каждой ячейке до 7 патиклов, итп — всякие мелочи из-за алайнмента на GPU, с которыми мне совершенно не хочется разбираться. ещё интересный момент — на GPU нельзя как на CPU положить болт на синхронизацию многопоточности. если у тебя 8 процессоров, то можно считать, что они будут редко к одной и той же частице обращаться, а если процессоров 1к, то постоянно. по этой же причине запросто можно реализовать только jacobi solver, а gauss seidel — нет.
}:+()___ [Smile]
> Кстати, твердые шарики в 2D и выше имеют фазовый переход. Правда, мне кажется, что неточности практической реализации его размажут до полной неразборчивости.
всякие fault lines вполне себе нормально моделируются. какого рода фазовый переход ты хочешь получить?
Suslik
> какого рода фазовый переход ты хочешь получить?
Это просто прикольный математический факт, что 2D и 3D твердые сферы без всяких сил притяжения имеют, тем не менее, фазовый переход (кристалл-газ?). У меня давно была идея этот факт проверить численным моделированием, но есть подозрение, что методами прямой молекулярной динамики (как в этой теме) это не получится, точности не хватит.
}:+()___ [Smile]
да можно, просто это нужно делать не через position-based, чтобы при соударениях энергия не терялась, если тебе хочется иметь газовую фазу. а кристалл получить вполне возможно. фазовый переход как минимум будет очевидно на графике V(P), потому что как только шарики плотно упакуются, этот график станет строго горизонтальной прямой при любой температуре (включая нулевую).
Suslik
> просто это нужно делать не через position-based, чтобы при соударениях энергия не терялась
Там, вообще, не нужно скорость моделировать, ибо она в классической статсумме одинаковая для любых систем частиц. Но давление при этом надо будет считать по хитрому, через производные по статсумме.
Я думаю, там основная проблема не с потерями энергии, а с неопределенностью момента удара. Из-за проникновения и/или неточной величины отскока шарики получаются не совсем твердые, а с немного размытой границей.
2D кубики
Прикольно, надо будет попробовать на что способен "бурундук" в настоящее время.
... как только время выдастся...
Мне похоже физегом не быть :(
Чутка подправил) Было деление на ноль :)
Тема в архиве.