Моделирование жидкости
Моделирование жидкости (англ. fluid simulation) — область компьютерной графики, использующая средства вычислительной гидродинамики для реалистичного моделирования, анимации и визуализации жидкостей, газов, взрывов и других связанных с этим явлений. Имея на входе некую жидкость и геометрию сцены, симулятор жидкости моделирует её поведение и движение во времени, принимая в расчёт множество физических сил, объектов и взаимодействий. Моделирование жидкости широко используется в компьютерной графике и ранжируется по вычислительной сложности от высокоточных вычислений для кинофильмов и спецэффектов до простых аппроксимаций, работающих в режиме реального времени и использующихся преимущественно в компьютерных играх.
Подходы
Существует несколько конкурирующих методов моделирования жидкости, каждый из которых имеет свои преимущества и недостатки. Наиболее распространёнными являются сеточные методы Эйлера, гидродинамика сглаженных частиц (англ. smoothed particle hydrodynamics — SPH), методы, основанные на завихрениях, и метод решёточных уравнений Больцмана. Эти методы возникли в среде вычислительной гидродинамики и были позаимствованы для практических задач в индустрии компьютерной графики и спецэффектов. Основное требование к данным методам со стороны компьютерной графики — визуальная правдоподобность. Иными словами, если наблюдатель при просмотре не может заметить неестественность анимации, то моделирование считается удовлетворительным. В физике, технике и математике, с другой стороны, основные требования предъявляются к физической корректности и точности моделирования, а не к её визуальному результату.
Разработка
В компьютерной графике самые ранние попытки решить уравнения Навье — Стокса в трёхмерном пространстве были предприняты в 1996 году Ником Фостером (англ. Nick Foster) и Димитрисом Метаксасом (англ. Dimitris Metaxas). Их работа в качестве основы использовала более раннюю работу по вычислительной гидродинамике, которая была опубликована в 1965 году Харлоу (англ. Harlow) и Уэлшем (англ. Welch). До работы Фостера и Метаксаса многие методы моделирования жидкости были построены на основе специальных систем частиц, методах снижения размерности (типа двухмерные модели мелких водяных объёмов типа луж) и полу-случайных шумовых турбулентных полях. В 1999 году на SIGGRAPH Джос Стэм (англ. Jos Stam) опубликовал метод так называемых «стабильных жидкостей» (англ. Stable Fluids), который использовал полу-лагранжевый метод адвекции и неявные интеграции вязкости для обеспечения безусловно устойчивого поведения жидкости. Это позволило моделировать жидкости со значительно большим временным шагом и в общем привело к более быстрым программам. Позже, в 2001—2002 годах, этот метод был расширен Роном Федкивым вместе со своими сотрудниками, благодаря чему стало возможным обрабатывать сложную модель воды в трёхмерной сцене с использованием метода установленного уровня (англ. Level set method).
Наибольший вклад в область моделирования жидкости внесли Рон Федкив (англ. Ron Fedkiw), Джеймс О’Брайен (англ. James F. O'Brien), Марк Карлсон (англ. Mark Carlson), Грег Тарк (англ. Greg Turk), Роберт Брайдсон (англ. Robert Bridson), Кен Мюсит (англ. Ken Museth) и Джос Стэм (англ. Jos Stam).
Программное обеспечение
Ниже представлен набор наиболее известного и распространённого программного обеспечения, предназначенного для моделирования жидкости.
- RealFlow — компьютерная программа от Next Limit Technologies, изначально предназначенная исключительно для моделирования жидкостей посредством SPH, однако позже расширенная для моделирования газов, твёрдых и деформируемых тел и проч. В 2007 году разработчики «RealFlow» получили Academy Award for Technical Achievement от Академии кинематографических искусств и наук за разработку своей программы.[1]
- Свободный пакет для создания трёхмерной графики Blender содержит реализацию стабильного метода решёточных уравнений Больцмана для моделирования жидкости.[2]
- Glu3d — плагин для 3ds Max и Maya, использующий SPH.
- AfterBurn — популярный плагин к 3ds Max, среди прочего способный моделировать жидкость посредством системы частиц.
- FumeFX — плагин к 3ds Max, моделирующий жидкости, газы, пламя и другие явления. Основан на внутренней технологии «VoxelFlow», которая использует несжимаемые уравнения Эйлера для массы и сохранения импульса.[3]
Примечания
- 10 Scientific and Technical Achievements to Be Honored with Academy Awards (англ.). Академия кинематографических искусств и наук (9 февраля 2008 года). — «RealFlow was the first widely adopted, commercially available, easy-to-use system for the simulation of realistic liquids in motion picture visual effects.». Дата обращения: 15 августа 2011. Архивировано 29 апреля 2012 года.
- Моделирование жидкостей Архивная копия от 27 сентября 2011 на Wayback Machine — BlenderWiki
- FumeFX - Simulation (англ.) (недоступная ссылка). Sitni Sati. Дата обращения: 15 августа 2011. Архивировано 25 августа 2012 года.
Ссылки
- Англоязычные источники
- Fusion CI Studios, Fluid FX Specialists
- Flowline Homepage
- Glu3d Homepage
- ICE SPH Fluids Homepage
- RealFlow Homepage
- Blender Homepage
- AfterBurn Homepage
- Dynamite Homepage
- DPIT Nature Spirit Homepage
- Ron Fedkiw’s Homepage
- Berkeley Computer Animation Homepage
- Fluid Simulation for Video Games
- Русскоязычные источники
- Лев Симонов «LEVel». Моделирование жидкости в 2D с использованием GPU 3. UralDev (24 февраля 2009 года). Дата обращения: 15 августа 2011. Архивировано 15 мая 2012 года.
- Сергей Кольцов, Юлия Сазонова. Моделирование жидкостей — от капли к океану . журнал Компьюарт (№9 за 2008 год). Дата обращения: 15 августа 2011. Архивировано 15 мая 2012 года.