Введение 4
1. Обзор существующих решений рассматриваемой задачи или ее модификаций8
1.1 Шум Перлина 8
1.1.1 История появления 8
1.1.2 Алгоритм 10
1.1.3 Применение 12
1.2 Применение уравнений Навье-Стокса для задач нефотореалистичного рендеринга 14
1.2.1 Алгоритм 14
1.2.2 Моделирование поверхности бумаги 14
1.2.3 Математическая модель 16
1.3 Интерактивное моделирование дыма 19
1.3.1 Математическая модель 19
1.3.2 Движение плотностей 21
1.3.3 Наличие источников плотности 22
1.3.4 Диффузия 23
1.3.5 Движение плотности по полю скоростей 24
1.3.6 Решение уравнения для скоростей 25
2. Моделирование системой частиц 27
2.1 Схема работы системы частиц. Визуализация объемных данных текстурами и Ray-tracing 28
3. Исследование и построение решения задачи 30
3.1 Математическая модель 30
3.1.1 Уравнения Навье-Стокса 30
3.1.2 Метод Лагранжа 34
3.1.3 Метод Эйлера 34
3.1.4 Граничные условия 35
4. Схема работы программного решения. CUDA реализация алгоритмов.. 36
Заключение 38
Список использованных источников 39
В настоящее время одна из наиболее интригующих проблем в компью-терной графике – это моделирование жидких и газообразных сред. Во мно-гих областях потребность в инструменте подобного рода очень высока. В киноиндустрии необходимо убедительно мимикрировать (подражать) внеш-нему виду и поведению таких сред как: дым, вода и огонь.
Программное обеспечение, используемое художниками и дизайнерами, также может выиграть от использования физического моделирования для имитации традиционных техник, как рисование акварелью или маслеными красками.
Еще одно потенциальное приложение – это синтез текстур, так как мно-гие текстуры получаются в результате воздействия жидкостей на какую-либо поверхность, например, таким образом можно получить эрозию.
В последнее время подобное моделирование получило широкое рас-пространение и в геофизике, в частности, при моделировании предсказания погоды. И, конечно, моделирование жидких сред важно для различных ин-женерно прикладных задач. Во многих инженерных пакетах программного обеспечения существуют готовые решения для гидродинамических симуля-ций.
Распространенное мнение в научном сообществе, что уравнение Навье-Стокса хороши для моделирования движения жидкостей. Это подтверждают большое количество научных работ, учебников и статей, публикующихся в разных областях, но которые, тем не менее, используют численное решение уравнения Навье-Стокса как основу моделирования.
Какой численный метод использовать на практике зависит во много от задачи и доступных вычислительных мощностей.
Большинство инженерных задач требуют от симуляции точных значе-ний различных физических величин, на основе которых принимаются реше-ния о надежности, производительности и т.д.
Визуальное представление решения («форма» потока) обычно вторич-ной важности в таких приложениях.
С другой стороны, в компьютерной графике наибольший интерес вы-зывают именно «форма» и поведение среды, а физическая точность вторич-на, а во многих случаях вообще не важна.
В идеале необходимо предоставить пользователю набор интерактив-ных инструментов, который бы позволил ему легко внедрить моделирование и визуализацию таких сред в собственное приложение.
Актуальность исследования. Исторически так сложилось, что ранние модели сред (воды, дыма, огня) были основаны на внешнем виде, а не на фи-зической симуляции. Потоки жидких и газообразных сред моделировались простыми примитивами, комбинация которых позволяла анимировать си-стемы частиц [1, 3] или простую геометрию, такую как листья [4].
Визуальная насыщенность повысилась с появлением функции турбу-лентности [5], и долгое время такой подход был очень распространен в виду того, что функция турбулентности периодична в пространстве и времени и легко совместима с существующими методами текстурирования. Этот подход использовался во многих фильмах в 80-х – 90-х годах: «Трон», «Король Лев» и др.
Однако у такого подхода есть существенный недостаток – полное от-сутствие взаимодействия с пользователем и внешней средой.
Первые модели, использовавшие уравнения Навье-Стокса, были реали-зованы для двумерного случая [6] и использовали решение уравнения Пуас-сона для создания анимации двумерной жидкости.
Однако этот подход был ограничен двумерным случаем, и авторы от-мечали неустойчивость симуляции.
Дальнейшие исследования продолжили Kass и Miller в [7], где они предложили линеаризовать систему мелкой воды для моделирования жидко-стей.
Эта тема получила продолжение в работе [8], где применили эту мо-дель для моделирования течения акварельной краски по холсту.
Эта реализация использовалась в кино в 1998 году в фантастической мелодраме Винсента Уорда «Куда приводят мечты» («What Dreams May Come»). Фильм был удостоен премии «Оскар» за лучшие визуальные эффек-ты.
В 1999 году в [9] был предложен вычислительно простой, легкий в ин-теграции и устойчивый при любых параметрах метод моделирования дина-мики жидких сред.
В виду этих достоинств, данный метод, получивший распространенное название Stable Fluids, стал широко применим в различные интерактивные приложения, прежде всего игровых, и повлек за собой целый поток исследо-ваний:
1. условия, использование графических По использованию различных схем Back Projection алгоритма [11],
2. По использованию разных схем дискретизации и численных методов [12]
3. По использованию различных граничных условий [10]
4. По расширению применимости: для оригинального двумерного ал-горитма был предложен трехмерный аналог [13]
5. Прочие модификации данного подхода: сложные граничные процес-соров для ускорения и т.д.
В настоящее время Stable Fluids можно считать, де-факто, образцом, с которым все сравнивают новые результаты исследований в области модели-рования и визуализации жидких и газообразных сред.
Цель исследования - разработка библиотеки, позволяющей проводить моделирование течения жидкостей и распространения газов в реальном вре-мени в двумерном и трехмерном случаях.
Библиотека должна позволять загружать любую сцену, внутри которой в дальнейшем планируется проводить симуляцию, и в этой сцене устанавли-вать источник жидкости или газа, генерирующий в заданном направлении частицы среды.
Библиотека должна позволять устанавливать большое количество физических параметров моделирования, позволяющих найти компромисс между интерактивностью моделирования и визуализацией, и качеством синтезируемого изображения.
Результатом работы является кроссплатформенное приложение, разра-ботанное на языке Java, позволяющее получить картину распределения дав-лений и скоростей движения потока жидкости в исследуемом пространстве в рамках разработанной схемы эксперимента. Приложение было успешно протестировано как на ноутбуке под управлением Mac OS X, так и на персо-нальном компьютере под управлением OS Windows. Для запуска моделиро-вания пользователю требуется знать только общую схему эксперимента и не-сколько базовых понятий гидродинамики.
Основное назначение программы – использование в качестве учебного пособия при изучении вычислительной гидродинамики. Также программа может оказаться полезной авиамоделистам-любителям, которые смогут по-лучить оценку аэродинамических показателей разрабатываемой модели.
Основным направлением дальнейшей работы является усложнение мо-дели, например:
Добавление в модель температуры воздуха. Это дополнение при-ведет к возникновению конвекции, что позволит решать новый класс задач. Примером подобной задачи является анализ эффективности охлаждения персонального компьютера.
Добавление разных моделей турбулентности.
Переход к модели сжимаемой жидкости. Данный переход карди-нально изменит качество вычислений при высоких значениях скорости пото-ка.
Данные улучшения модели неизбежно приведут к увеличению сложно-сти вычислений и увеличению времени моделирования. В такой ситуации имеет смысл задуматься о реализации метода распараллеливании вычисле-ний.