Computer Graphics Support Group of 30 Phys-Math Lyceum. AB7
AB7Симуляция и визуализация физической модели жидкостей.Группа компьютерной графики Санкт-Петербургского губернаторского ФИЗИКО-МАТЕМАТИЧЕСКОГО ЛИЦЕЯ № 30Computer Graphics Support Group of 30 Phys-Math LyceumАвторы:
Научный руководитель проекта: Галинский Виталий Александрович Постер (PDF, CGSG_UB2025_AB7_Poster.pdf) Видеоклип (60 секунд, краткая аннотация, MP4) ТезисыПроект посвящен разработке системы симуляции и визуализация физической модели жидкостей. Главной задачей, решённой при работе с проектом, являлась симуляция взаимодействия большого количества частиц воды. Пользователь может задавать параметры жидкости, такие как плотность, вязкость, а также изменять гравитационное ускорение, размер и форму сосуда. В проекте мы представили решение проблемы быстрого просчёта взаимодействий частиц, а также полигонализации поверхности жидкости для реалистичной визуализации. Для симуляции жидкостей мы взяли за основу алгоритм физического моделирования методом гидродинамики сглаженных частиц (Smooth Particle Hydrodynamics, SPH), где жидкость представлена дискретным набором взаимодействующих частиц, каждая из которых обладает характеристиками: позиция, скорость, и плотность. Главное отличие этого подхода от других возможных заключается в том, что он обладает большей визуальной правдоподобностью, наиболее важной для пользователя. Взаимодействие частиц просчитывается через сглаживающие функции от расстояния, что обеспечило равномерное распределение взаимодействия на разной дальности. При расчете сил, действующих на каждую из частиц, учитываются три ключевых компонента: давление, вычисляемое через уравнения состояния, вязкие силы, обеспечивающие плавность, и импульс. Для оптимизации поиска соседних частиц был придуман и использован алгоритм пространственного хеширования, существенно сокращающий вычислительные затраты процессора.
Переход от частичного представления в виде сфер к визуализации в виде примитива (набора треугольников) мы осуществили с помощью собственной реализации алгоритма марширующих кубов, работающего с объёмной сеткой кубов (скалярным полем), где значение плотности в каждом узле определяется интерполяцией плотности соседних частиц. Этот алгоритм анализирует каждый куб сетки через предопределенные шаблоны пересечений изоповерхности с ребрами, генерируя набор треугольников, симулирующих поверхность жидкости. В реализации нашего проекта просчеты производятся на видеокарте, с помощью разработанной системы вычислительных шейдеров, которые параллельно обрабатывают каждую частицу, записывая результаты в буферы для последующей обработки и вывода на экран. Визуализация осуществлена в несколько проходов: сначала строится геометрия поверхности, затем производится расчет цвета по модели Блинна-Фонга с использованием карты плотностей. Наша комбинация физически обоснованного моделирования и современных методов визуализации позволила достичь как реалистичности, так и малых временных затрат, что важно для рендеринга в режиме реального времени. Немаловажно то, что пользователь программы может влиять на степень реалистичности результата работы, используя удобный пользовательский интерфейс. Для этого достаточно задать количество частиц в симуляции и плотность жидкости. Кроме того, мы добавили возможность изменения дополнительных параметров, например, вязкость или гравитационное ускорение. В результате работы была создана реалистичная система визуализации физической модели жидкостей. Проект также предоставляет пользователю возможность управлять параметрами симуляции. Таким образом, достоверности изображения полученной реализации достаточно для использования, например, в учебных пособиях по физике, при демонстрации экспериментов, а также для анимации жидкостей в фильмах и видеоиграх.
Рис. 4. Состояние симуляции с течением времени Литература
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||