УДК 004.94

Физика жидкостей в игровой индустрии: стек технологий и методы моделирования

Пронкина Александра Георгиевна – студентка Института информационных технологий МИРЭА – Российского технологического университета.

Смирнов Никита Сергеевич – студент Института информационных технологий МИРЭА – Российского технологического университета.

Заботкина Екатерина Михайловна – ассистент кафедры телекоммуникаций Института радиоэлектроники и информатики МИРЭА – Российского технологического университета.

Аннотация: Настоящая статья посвящена возможностям создания реалистичной физики жидкостей в играх, в ней рассмотрена хронология применения технологий для моделирования жидкостей, наиболее распространенные методы моделирования воды на сегодняшний день, математические и физические модели, используемые при создании жидкостей.

Ключевые слова: моделирование физики жидкостей, технологии моделирования воды.

Введение

В современных видеоиграх от реалистичности объектов и явлений зависит удовлетворенность пользователей: хорошо реализованные графическая и физическая составляющие игры способствуют более глубокому и захватывающему игровому опыту, что, в свою очередь, повышает привлекательность игры для пользователей. Одним из объектов, который в значительной мере влияет на восприятие игрового процесса, является жидкость. От реализации жидкостей в игре зависит, например, то, как модель персонажа взаимодействует с водой и внутриигровым миром или насколько реалистичными кажутся брызги луж.

В индустрии видеоигр на текущий момент существует множество методов и технологий, используемых при создании физики жидкостей, однако важно применять их рационально: «Физика видеоигр – сложная область, в которой разработчики ищут баланс между реализмом и ограничениями вычислительных мощностей. Хитрости, упрощения и физические движки позволяют быстро создать довольно реалистичную физику, чтобы главное внимание уделить более важным аспектам игры» [1].

В данной статье более подробно рассмотрена хронология применения технологий для моделирования жидкостей в играх, наиболее распространенные методы моделирования воды на сегодняшний день, математические и физические модели, используемые при создании жидкостей. Объектом исследования выступает разработка игр, предметом – моделирование физики жидкостей.

Терминологический аппарат

Математическая модель – это абстрактное представление реального процесса, системы или явления с использованием математических концепций.

Физическая модель – это конкретная реализация математической модели в виде физических объектов, которые могут быть изучены или использованы для экспериментов.

Моделирование жидкостей – процесс создания компьютерных моделей, которые имитируют поведение жидкостей в различных условиях, таких как течение, турбулентность, взаимодействие с поверхностями и т. д.

Физический движок – это программное обеспечение, предназначенное для симуляции физических законов в компьютерных играх или других визуальных приложениях.

Платформер – жанр компьютерных игр, в которых основное внимание уделяется преодолению препятствий и выполнению прыжков на платформах.

Растровые эффекты – это визуальные эффекты, создаваемые путем манипуляции пикселями в растровых изображениях или видео.

Шейдеры – программы, которые используются для определения внешнего вида поверхностей и объектов в компьютерной графике, в том числе цвета, текстуры и отражения.

Бамп-мэппинг – это метод в компьютерной графике, который используется для придания плоской текстуре визуального эффекта трехмерности путем симуляции выступов и впадин на поверхности объекта.

Карты нормалей – текстурные изображения, используемые в компьютерной графике для добавления дополнительной детализации к поверхности объекта путем симуляции изменений в направлении поверхности.

Полигональная сетка – это сетка из трехмерных многоугольников, используемая для представления поверхности объекта в компьютерной графике.

Честная трассировка лучей (path tracing) – это метод рендеринга компьютерной графики, который моделирует физически точное распространение света, имитируя путь лучей света от источника к камере через сцену.

SSR (Screen Space Reflection) – метод в компьютерной графике, используемый для симуляции отражений поверхностей в реальном времени на основе информации, доступной в экранном пространстве.

SSAO (Screen Space Ambient Occlusion) – это метод в компьютерной графике, используемый для придания дополнительной реалистичности изображениям путем симуляции затенения в углах и от недостаточного освещения.

GPU (Graphics Processing Unit) – специализированный микропроцессор, который отвечает за обработку графики и видео в компьютере или другом устройстве.

Дискретизация – это процесс представления непрерывной информации (например, аналогового сигнала) в дискретной форме (например, цифрового сигнала) путем выборки значений в определенных точках или интервалах.

Иммерсивность – способ восприятия, создающий ощущение полного погружения в виртуальную или созданную среду.

Интерполяция частиц – это метод в компьютерной графике, используемый для создания плавных переходов между различными состояниями частиц, например, при их анимации или перемещении.

Хронология применения различных технологий для моделирования воды

В мире видеоигр вода является неотъемлемым элементом, играющим ключевую роль в создании реалистичной атмосферы игрового мира.

Одним из основных моментов при реализации физических свойств воды в видеоиграх является использование различных нестандартных методов моделирования внутриигровой физики. Разработчики прибегают к симуляции физики жидкости и реалистичному отображению волн и плавучих объектов, что обеспечивает правдоподобные визуальные эффекты.

В платформерах 1992 года водные уровни создавались примитивным способом – в виде декорации, по которой перемещался главный герой. Таким образом, как таковой физики воды не было, разработчики просто накладывали подходящие текстуры на сторонние объекты.

Когда 3D-графика еще не была распространена, разработчики зачастую разделяли игру на два экрана: надводная и подводная области. Для того, чтобы разделение не бросалось в глаза, они использовали различные эффекты пульсации, мерцания и прозрачности.

С появлением 16-битных консолей у разработчиков появилась возможность использовать заранее отрисованные растровые эффекты, чтобы манипулировать цветовой палитрой в зависимости от необходимого цвета и окружения, что повлияло на создание первых водопадов в “Secret of Mana” в 1993 году (см. рисунок 1) [2].

b084af2cf227b1ae

Рисунок 1. Реализация водопадов в «Secret of Mana»

Далее началась эпоха PlayStation 1 с 3D-играми, что позволило интегрировать полные водные плоскости с натянутой поверх текстурой. Разработчики смогли использовать разделение картинки на три слоя: основную часть, отражение и волны.

С выходом PlayStation 2 главным нововведением стало отражение света в воде и физические реакции на персонажа. Игры научились определять, когда герой сталкивается с водой, а также определять вес и размер объекта. Данные изменения позволили создавать такие эффекты, как выталкивание предметов на поверхность воды или же наоборот их затопление.

В 2001 году, вслед за Sony, аналогичные технологии начали применять Microsoft и Nintendo, на рынке консолей появились Xbox и GameCube, характеристики которых во многом превосходили PS2. Благодаря новой технологии программируемых шейдеров Microsoft смогла создать масштабные морские виды, волны и рябь на поверхности в играх Halo и Combat Evolved [2].

После выпуска Xbox 360 и PS3 вода создавалась с помощью метода, который устраивал многих разработчиков и игроков. Почти в каждой игре использовалась трехмерная сетка с целым набором ухищрений – шейдерами, бамп-мэппингом, картами нормалей.

В играх восьмого поколения (Final Fantasy XV, Sea of Thieves, The Witcher 3 или Red Dead Redemption 2) вода так же имеет большое значение для восприятия. Студии научились делать правдоподобную воду благодаря опыту предыдущих поколений и их методам. Большинство разработчиков и на текущий момент продолжают использовать полигональную сетку, шейдеры и карты нормалей для отображения воды. Пена, прибиваемая к берегу, эффекты глубины и лучи, пробивающиеся с поверхности – результат работы с шейдерами. Большинство разработчиков создают геометрию волн и эффект их переливания путем смещения вершин. Данный способ позволяет программе автоматически изменять параметры волн и их высоту, что создает впечатление динамичной поверхности водоема. Однако при отключении этого шейдера становится видно, что вода в основе своей является плоской, как и двадцать лет назад (см. рисунок 2) [2].

2030cbdef3ed86c8

Рисунок 2. Реализация воды в “Batman: Arkham Knight”

Долгое время разработчики сталкивались с проблемой честной трассировки лучей для имитации отражений. Для достижения этого эффекта пришлось прибегнуть к ухищрениям, к которым относятся SSR-шейдеры, SSAO и кубические карты отражений. Все эти методы были предложены для более точного и экономичного в плане ресурсов процесса отражения лучей в пространстве. С развитием вычислительных мощностей оборудования в последние годы становится все более популярным использование метода честного отображения трассировки лучей RTX.

В течение почти трех десятилетий игровая индустрия и технологии, используемые в ней, активно развивались, принося в данную сферу новые способы создания жидкостей и взаимодействия с ними. Такое развитие способствовало и продолжает способствовать реалистичному представлению объектов в играх, что позволяет улучшить восприятие пользователем игрового процесса [2].

Как создают физику воды в настоящее время

Итак, на сегодняшний день при создании воды наиболее часто используются шейдеры: «А вот плоские текстуры поверхности воды из крупнобюджетных игр пропали полностью. Им на смену пришла более реалистичная и технологичная альтернатива – шейдеры» [3].

Одним из основных преимуществ данного способа является высокая скорость расчетов, которая обусловлена параллельной архитектурой GPU.

В большинстве случаев используется два типа шейдеров: вершинные и пиксельные. Первый тип подразумевает получение от движка вершины рисуемой модели и дальнейшую обработку, трансформацию, а также смещение (например, для корректного отображения волн). Пиксельные шейдеры, в свою очередь, используют информацию с вершинного шейдера и заданные параметры (текстуры, источники света и прочее). Они необходимы для отрисовки отдельно взятых пикселей.

На воде шейдеры используются для мелких, но значимых с точки зрения реалистичности деталей: «Также в них появились и новые эффекты – например, анимированная пена, рябь и следы от дождевых капель на воде» [3].

Такие явления, как волны или круги на воде, могут создаваться в виде плоскости с большой степенью тесселяции – разбиением поверхности воды на множество треугольников, вершины которых перемещаются вершинными шейдерами в зависимости от того, как прописаны законы волн, однако есть способы, затмевающие данную реализацию: «PlayStation 2 позволила рисовать реалистичные волны с помощью двух отдельных векторных процессоров, которые были встроены в ЦПУ консоли – Emotion Engine. Они создавались специально под быструю отрисовку объёмной графики: процессоры обрабатывали геометрию объектов, создавали волны, искажения, собирали все изменения в один пакет и отправляли его в графический процессор PS2» [3].

Во многих симуляциях волны – это динамические колебания поверхности, которые создаются с применением волн Герстнера [4].

Использование математических и физических моделей при создании воды

Процесс моделирования физики жидкостей основан на объединении математических моделей и физических принципов, которые обеспечивают аутентичное поведение жидкостей в виртуальной среде.

Математические модели, используемые для моделирования физики жидкостей в видеоиграх, включают в себя методы физического моделирования, вычислительной гидродинамики и численных методов математической физики. Эти модели базируются на физических принципах, таких как законы сохранения энергии, законы Ньютона о движении и вычислительная гидродинамика, чтобы создать реалистичное поведение жидкостей в игровых средах. Такие методы обеспечивают достоверность анимации жидкостей, реалистичное освещение и отображение, а также симуляцию сложной динамики океанов и водных эффектов. Рассмотрим некоторые из них.

Волны Герстнера.

Волны Герстнера (трохоидальные волны) [4] – это функции, с помощью которых можно отрисовать реалистичное движение воды с выделенными хребтами и плавным перемещением.

Для каждой точки на поверхности воды определяется ее смещение с использованием формы волны, после чего результат расчета передается в соответствующий вершинный шейдер, который перемещает точки на указанную величину.

Сеточные методы Эйлера.

Сеточные методы Эйлера используются для дискретизации области жидкости на сетке ячеек, что позволяет проводить вычисления динамики жидкости эффективным образом. Путем симуляции движения и поведения водных частиц в каждой ячейке сетки разработчики игр могут создавать реалистичные водные эффекты, такие как волны, брызги и плавные реки, улучшая общее визуальное и иммерсивное впечатление для игроков.

Гидродинамика сглаженных частиц (SPH).

Метод гидродинамики сглаженных частиц (SPH) подразумевает дискретизацию жидкости в набор жидких элементов, каждый из которых обладает массой, импульсом и энергией, и взаимодействует с соседними частицами через конкретные ядерные функции. Данный метод основан на интерполяции частиц, он позволяет симулировать движение жидкости, представляя ее в виде группы мелких компонентов.

Метод решеточных уравнений Больцмана (LBM).

Метод решеточных уравнений Больцмана (LBM) [5] моделирует движение ньютоновских жидкостей (таких, как вода). В нем жидкость рассматривается как группа частиц, акцент делается на их распространении и столкновениях на каждом шаге. LBM известен своей концептуальной и вычислительной простотой, что делает его подходящим для симуляции динамики жидкости в игровой индустрии. Его способность захватывать сложное поведение потока жидкости, такое как волны, вихри и взаимодействия с твердыми объектами, делает его популярным способом для создания реалистичных водных эффектов в видеоиграх.

Заключение

В данной статье была рассмотрена хронология применения технологий для моделирования жидкостей в играх, наиболее распространенные методы моделирования воды на сегодняшний день, а также математические и физические модели, используемые при создании жидкостей.

В заключение можно констатировать следующее: на сегодняшний день существует множество математических и физических методов, используемых при моделировании жидкостей в видеоиграх, что позволяет точнее передать физические свойства различных субстанций (таких как вода, грязь, кровь и проч.) реального мира.

Создание реалистичной физики жидкостей является одним из наиболее трудных этапов моделирования игр, в связи с чем разработка новых методов и технологий для достижения высокой степени реализма является актуальной.

Тот факт, что в течение почти трех десятилетий игровая индустрия и технологии, используемые в ней, активно развивались, позволяет предположить, что в дальнейшем игры могут достичь уровня, когда игровой процесс будет трудно отличим от видеозаписей реального мира.

Список литературы

  1. Статья «Мотор! или Что такое игровая физика». – Текст : электронный // Хабр : коллективный блог : [сайт]. – 2020. – URL: https://habr.com/ru/companies/playgendary/articles/490720/ (дата обращения: 05.03.2024).
  2. Статья «Под поверхностью: как создают и используют воду в видеоиграх». – Текст : электронный // DTF : [сайт]. – 2020. – URL: https://dtf.ru/gamedev/174631-pod-poverhnostyu-kak-sozdayut-i-ispolzuyut-vodu-v-videoigrah (дата обращения: 06.03.2024).
  3. Статья «Как правильно лить воду: секреты создания воды в видеоиграх». – Текст : электронный // XYZ Media : [сайт]. – 2021. – URL: https://media-xyz.com/ru/articles/886-kak-pravilno-lit-vodu-sekrety-sozdaniia-vody-v (дата обращения: 06.03.2024).
  4. Статья «Волны Герстнера в Unreal Engine 4». – Текст : электронный // DTF : [сайт]. – 2020. – URL: https://dtf.ru/gamedev/221392-volny-gerstnera-v-unreal-engine-4 (дата обращения: 06.03.2024).
  5. Статья «Моделирование гидродинамики: Lattice Boltzmann Method». – Текст : электронный // Хабр : коллективный блог : [сайт]. – 2013. – URL: (дата обращения: 06.03.2024). 

Интересная статья? Поделись ей с другими: