Компьютерная физика это что

Обновлено: 03.07.2024

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

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

Обзор

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

Состояние в физике

Ведутся споры о статусе вычисления в рамках научного метода.

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

Проблемы в вычислительной физике

Вычислительные физические проблемы, как правило, очень трудно решить точно. Это связано с несколькими причинами: отсутствием al raic и/или аналитической разрешимости, компактностью, хаосом.

Например, даже очевидно простые проблемы, такие как расчет wavefun electron orbiting атом в сильном электрическом поле (эффект А), могут потребовать больших усилий для формирования практического algorithm (если он может быть найден); могут потребоваться другие методы crute или brute-force, такие как графические методы или поиск корня. На более продвинутой стороне также иногда используется теория пертации (для этого конкретного примера здесь показана работа).

Кроме того, вычислительная стоимость и вычислительная компактность для проблем с множеством тел (и их классических частей) имеют тенденцию быстро расти. Макроскопическая система обычно имеет размер порядка составляющих частиц, поэтому она является проблемой. Решение механических задач квантума обычно экспоненциального порядка по размеру системы, а для классического N-тела - порядка N-квадрата.

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

Методы и алгоритмы

Поскольку компьютерная физика использует широкий класс задач, она, как правило, делится на различные задачи, которые она численно решает, или методы, которые она применяет. Между ними можно рассмотреть:

  • поиск корня (с использованием, например, метода Ньютона-Рафсона)
  • система линейных уравнений (с использованием, например, декомпилятора LU)
  • порядковые дифференциальные уравнения (с использованием, например, методов Рунге - Кёа)
  • интеграция (с использованием, например, метода Ромберга и интеграции Монте-Карло)
  • парциальные дифференциальные уравнения (используя, например, метод конечных разностей и метод релаксации)
  • matrix value problem (например, с использованием algorithm Jacobi value и итерации мощности)

Все эти методы (и некоторые другие) используются для вычисления физических свойств моделируемых систем.

Вычислительная физика также заимствует ряд идей из вычислительной химии - например, функциональная теория плотностей, используемая вычислительными твёрдыми физиками для вычисления свойств d, в основном такая же, как и у химиков для вычисления свойств молекул.

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

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

Computational solid state physics является очень важным подразделением computational physics, имеющим непосредственное отношение к материаловедению.

Полем, связанным с вычислительным конденсированным веществом, является вычислительная статистическая механика, которая занимается моделированием моделей и теорий (таких как модели перколяции и спина), которые трудно решить иначе. Computational statistic physics широко использует методы, подобные методам Монте-Карло. Более широко (в частности, с помощью моделирования на основе агентов и клеточных автоматов) он также касается (и находит применение в, с помощью его методов) в социальных науках, теории сетей и моделей для распространения болезни (самое заметное, SIR модель) и распространения лесных пожаров.

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

Компьютерные астрофизики являются применением этих методов и методов для астрофизиологических проблем и феномены.

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

Приложения

В связи с широким классом проблем computational physics сделок, является существенным компонентом современных исследований в различных областях физики, а именно: accelerator physics, astrophysics, fluid mechanics (вычислительная динамика флюидов), теории поля решётки/решетчатой маржевой теории (особенно решётчатый quantum chromodynamics), plasma physics (см. плазменное моделирование), имитация физических систем (например, monduction), физиоуклонная физика молекулярная физика, physия).

Вычислительная физика твердого тела, например, использует функциональную теорию плотности для вычисления свойств d, метод, аналогичный тому, который используется химиками для изучения молекулей. Другие количества, представляющие интерес в физике твердого тела, такие как структура электронной полосы, магнитные свойства и плотности заряда, могут быть рассчитаны этим и несколькими методами, включая метод Лингера-Н/k.p и методы ab-initio.

Уже в этом году ПГУ станет первым вузом в Витебской области, где будут набирать студентов на новую специальность IT-профиля – «Компьютерная физика». Она открывается на факультете компьютерных наук и электроники.

photo_2021-02-24_16-15-12

На кафедре физики Полоцкого госуниверситета рассказывают, что студент, получающий образование по специальности «Компьютерная физика», имеет возможность не только получить классическое физическое образование, но и самую современную профессию программиста. Квалификация по диплому так и будет звучать – «Физик. Программист».

Для поступления на специальность нужно сдавать физику, математику и белорусский/русский язык.

В чем отличия именно этой специальности?

Если рассмотреть принцип работы IT-специалистов, то различить их квалификацию можно так: есть специальности, позволяющие заниматься тестированием кем-то созданных программ, а другие – подразумевают умение разрабатывать программы, писать их коды.

– Но больше всего рынок труда сейчас нуждается в специа листах, способных ставить задачи для программистов-кодировщиков, анализировать поставленные технические, экономические задачи, и создавать на основании этого анализа алгоритмы работы программ. Именно к этому и будут говорить студентов специальности «Компьютерная физика», – рассказал заведующий кафедрой физики Сергей Вабищевич.

photo_2021-02-24_16-15-20

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

photo_2021-02-24_16-15-16

Фото предоставлены ПГУ

В университете отмечают, что коллектив кафедры физики имеет отличную квалификац ию, руководство вуза оказывает кафедре поддержку в модернизации лабораторий, оснащении их современным оборудованием. Кроме того, в 2020 году коллектив кафедры физики включился в выполнение международного проекта по созданию сетевой магистерской программы «Ядерная безопасность». Это позволит выпускникам специальности «Компьютерная физика» продолжить свое постдипломное образование и получить степень магистра по одной из самых актуальных в стране специальностей.

Подробности можно узнать по телефону приемной комиссии: +375 29 719 93 13.

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

В образовательном процессе принимают участие представители IT-компаний, промышленных предприятий и научно-исследовательских институтов НАН Беларуси.

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

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

Основные преимущества:

  • Практически все преподаватели имеют ученую степень и звание, занимаются научным исследованиями, активно публикуются в лучших международных научных журналах
  • Возможность прослушать лекции известных ученых НАН Беларуси и специалистов практиков
  • Прохождение производственной практики в ведущих научных центрах и промышленных предприятиях Республики Беларусь
  • Возможность участия в программах академической мобильности с европейскими университетами
  • Комфортабельное общежитие
  • Спортивные секции и творческие коллективы, студенческие органы самоуправления

Полное среднее образование.

Владение языком обучения (определяется по итогу собеседования, на котором определяется, знает ли абитуриент язык на уровне, достаточном для усвоения программы обучения).

Теоретическое обучение занимает семь семестров. Осенний семестр продолжается 18 учебных недель, весенний – 17. По окончании семестров проводятся экзаменационные сессии длительностью 3-4 недели. Предусмотрены зимние и летние каникулы продолжительностью две и восемь недель, соответственно. В процессе учебы студенты выполняют две курсовые работы исследовательского характера.

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

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

Выпускники работают в IT-компаниях, научно-промышленных организациях, научно-исследовательских институтах НАН Беларуси, где осуществляют решение следующих задач:

  • исследовательская работа в областях, использующих физико-математические методы анализа и компьютерные технологии
  • разработка эффективных математических методов решения задач техники, экономики и управления
  • создание и использование математических моделей процессов и объектов
  • программно-информационное обеспечение проектно-конструкторской и эксплуатационно-управленческой деятельности
  • планирование и организация научно-производственной, научно-педагогической и опытно-конструкторской работы;
  • определение целей инноваций и способов их реализации

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


Разработчикам при создании игры приходится искать баланс не только в механиках, но и в физике. Реализм или аркада? В общем-то, кому что нравится. Главное — фан и удовольствие. Нужно создать фундаментальные законы своего мира, и объяснить, что возможность ходить по потолку — механика, а не баг.

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

Физика в видеоиграх часто воспринимается как должное. Если персонаж прыгает, он обязан приземлиться, а не улететь в космос (хотя при достаточно долгой игре в Skyrim, подобное все равно может случиться). Мы ждем, что объекты в игре будут вести себе как в жизни (баги в расчет не берем).

Программирование физики может сводиться к одному-двум методам с парой строчек кода. А может и к сложной системе с отдельным физическим движком (например, Havok или PhysX) с миллионами строк кода. Независимо от сложности игровая физика делится на две категории: физика твердого тела и физика мягкого тела.


Физика твердого тела необходима в большинстве 2D- и 3D-игр. Физика мягкого тела описывает действие сил на объект, который принимает различные формы (например, флаг). Отобразить мягкое тело намного сложнее, поэтому такой подход используют гораздо реже.

Важная роль игровой физики

Игровая физика служит разным целям, но самые главные — интуитивность и веселье. Если объект ведет себя непредсказуемо, будет сложно понять правила игры.

Если бы мяч в FIFA 20 каждый раз отскакивал в случайном направлении, было бы невозможно забить гол. Разработчики стараются воссоздать отскок мяча в зависимости от его траектории, скорости и других факторов, действующих в реальном мире. Чтобы игрок интуитивно понимал, как обращаться с мячом или другими объектами. К слову, у FIFA 20 куча плохих отзывов именно потому, что ее физика работает не так, как того ожидали фанаты.

При этом игры не обязаны строго соблюдать естественные законы природы. Главное — игра должна приносить удовольствие, а реализация реальных физических законов может уничтожить весь экспириенс. Представьте Grand Theft Auto V с суровой земной физикой (но если очень хочется, то можно поставить специальный мод). Даже легкая авария на высокой скорости закончилось бы фатально, убило бы темп и атмосферу. Не очень-то весело.

Разработчик должен найти нужный баланс между веселой игрой и игрой с реалистичной физикой. И он часто зависит от целевой аудитории. Хороший пример — гонки.

Многим нравятся аркадные гонки (Need For Speed), в которых касание отбойника или резкий поворот слабо сказываются на управлении машиной. Другие предпочитают реалистичные гоночные симуляторы (Gran Turismo).

Но даже создавая симуляторы, разработчики пытаются привлечь новую аудиторию — Gran Turismo делала ставку на фотореализм (и в какой-то мере это сработало). Но в итоге Polyphony Digital добавила аркадный режим, чтобы захватить рынок побольше.

Физика твердого тела

Говоря об игровой физике, мы обычно имеем в виду физику твердого тела (rigid body physics, RBP). Она описывает и воспроизводит физические законы, применимые к твердым массам вещества. Мяч в FIFA 20 — твердое тело, которым управляет физика игры.

Неважно рассматриваем мы 2D-тайтлы типа Pong или 3D типа Skyrim — в большинстве игр есть линейная физика твердого тела.


Физика 2D-игр

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

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

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


Игры с артиллерией первыми стали учитывать гравитацию и сопротивление в своих механиках. Пользователи по очереди стреляли пушечными ядрами, стрелами и ракетами, чтобы уничтожить базу противника. Такие игры учитывали полуреалистичную баллистику, то есть — угол запуска, гравитацию, сопротивление ветра и изначальную скорость. Но опять-таки дизайнеры не стремились сделать все как в реальном мире. Их целевой аудиторией были обычные люди, а не баллистические эксперты.

Поведение твердых тел (в первую очередь снарядов) зависело от нескольких сил. В соответствии с ними менялись анимации. Стрелы и ракеты — отличный пример анимации твердых тел в подобных играх. Плоскость снаряда могла измениться во время полета, а стрела так и оставалась прямой. Две точки на объекте в системе твердых тел всегда будут на одинаковом расстоянии друг от друга.

Игры типа Donkey Kong и Mario Bros. сильно повлияли на физику 3D-проектов. Марио подружился с основными физическими законами — гравитацией, импульсом и инерцией. Прыжок стал основной механикой и остался в игровой индустрии навсегда.

Подпрыгнувший объект должен упасть обратно. Вопрос только в том, насколько высоко он поднимется и насколько быстро упадет? И насколько реалистичной должна быть гравитация в игре?

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

Дальнейшие игры серии расширили эти границы — появился двойной прыжок. В этой франшизе его впервые добавили в Super Mario 64, но ранее его уже использовали в Dragon Buster в 1984 году.

Двойной прыжок стали активно использовать в платформерах (иногда даже слишком). И он до сих пор есть во многих современных проектах, включая 3D. Например, Devil May Cry и Unreal Tournament.

Физика 3D-игр

Физика в 3D-играх не сильно отличается от физики в 2D-проектах. Вычисления усложняются за счет третьего измерения (оси Z) и того, что объекты состоят из нескольких твердых тел.

В большинстве 2D-игр разработчикам нужно единовременно обрабатывать данные всего нескольких столкновений твердых тел. Например: Марио прыгает на Купу. Марио может дотронуться до любой части Купы. В зависимости от точки соприкосновения либо Купа прячется в панцирь, либо Марио теряет жизнь. В любом случае речь идет о единственном касании.


В 3D-играх одновременно сталкиваются сразу несколько твердых объектов. В Uncharted, когда Дрейк взбирается по скале, программа следит как минимум за его руками и ногами — отдельными твердыми телами. Он может подпрыгнуть и схватиться за лестницу одной рукой или двумя, и анимация будет разной.

В 3D-играх (и некоторых 2D) конечности персонажей разбиты на несколько твердых тел, которые соединены суставами. То есть модель человеческой руки состоит из предплечья и кисти, которые соединены запястьем и крепятся к плечу локтевым суставом. Это описывает рэгдолл-физика (от англ. ragdoll — тряпичная кукла).



Изображение: University of California, Riverside

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

Есть и другие подходы к работе с рэгдоллом: интегрирование Верле (Hitman: Codename 47), инверсная кинематика (Halo: Combat Evolved и Half-Life), смешанный рэгдолл (Uncharted: Drakes Fortune и многие другие) и процедурная анимация (серия Medal of Honor).


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

Напомню, всегда нужно искать баланс между реализмом и весельем. Даже если игра будет немного «читерить».

Возьмем серию Sniper Elite. В реальном мире стрелок должен принимать в расчет кучу переменных: скорость ветра, направление ветра, диапазон, перемещение цели, мираж, источник света, температура, давление и эффект Кориолиса.

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

В Call of Duty: Modern Warfare есть уровень, где нужно поразить цель с дальнего расстояния. Игрок должен учесть эффект Кориолиса, а также скорость и направление ветра. Некоторым нравится такой челлендж, но я ее забросил.

Гонки — еще один жанр, в котором требуется много вычислений по твердым телам и действующим на них силам. Колеса контактируют с дорожным покрытием, подвеска соприкасается с колесами, машины сталкиваются друг с другом. Еще другие объекты прямо или косвенно участвуют в столкновениях.

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

В симуляторах Gran Turismo и Assetto Corsa действуют более реалистичные силы. Например, Assetto Corsa Competizione (версия 1.0.7) использует пятиточечную модель шин. Она включает две точки на передней кромке шины, две на задней и одну посередине — все вместе действуют как объединенное твердое тело. Точки могут двигаться и изгибаться в трех измерениях, независимо реагируя на внешние силы и контакт с поверхностью. Дополнительные точки значительно увеличивают количество вычислений, которые выполняет движок.

Физические модели в 3D-тайтлах намного сложнее, чем в 2D. Приходится отслеживать больше переменных и точек соприкосновения. Но большинство вычислений линейные, поэтому такие модели гораздо проще, чем модели мягкого тела.

Физика мягкого тела

Физика мягкого тела (soft body physics, SBP) описывает деформируемые объекты. Она используется реже и сильно урезана в видеоиграх из-за огромного количества вычислений.

Мягкие тела — это одежда, волосы, скопления частиц типа дыма или тумана. Точки твердого тела всегда остаются на одном и том же расстоянии друг от друга. А мягкое тело может деформироваться и двигаться так, что расстояние между его точками будет меняться.

Деформируемые твердые тела

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

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

Количество вычислений для мягкого тела превосходят возможности CPU и GPU. Поэтому разработчики упрощают и хитрят. Например, используют зацикленную анимацию. Но такая картинка покажется неестественной через какое-то время. Лучше к такому лайфхаку не прибегать, если объект находится в центре внимания.

У одежды почти такие же свойства мягкого тела, как и у флага, но ее физика еще сложнее. Во-первых, потому что игрок точно обратит на нее внимание. Во-вторых, потому что она зачастую более динамична: игрок оказывает на нее собственное влияние. Отличный пример — плащ Бэтмена в серии Arkham.

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

Тут в дело вступают физические движки. В Batman: Arkham Knight студия Rocksteady использовала APEX Cloth PhysX. Этот инструмент позволяет создавать маску для тел, отображающих одежду, и настраивать параметры их движения. В зависимости от конфигурации можно отобразить все от шелка до мешковины.

Для улучшения производительности можно ограничить воздействие естественных сил на ткань. Например, Wind Method (Отображение ветра) можно установить на Accurate (Точное) или Legacy (Частичное). Частичное отображение игнорирует мелкие колебания, производится меньше вычислений.

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

Системы частиц мягкого тела

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

Физические движки значительно улучшили системы частиц за последние годы. Посмотрите на приветственный экран из Skyrim и насколько там реалистично выглядит дым.

У каждой частицы в системе мягкого тела статическая продолжительность жизни. Это период с момента ее возникновения до момента ее исчезновения (через какое-то время источник частиц создаст ее снова). В течение этого периода точка перемещается с учетом заданных параметров.

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

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


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

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

Подытожим

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


Игра должна быть интересной. Реализм не так важен по сравнению с захватывающим геймплеем. Игровая физика по-прежнему важна — нужны интуитивно понятные правила. При этом их можно менять, чтобы обогатить геймплей (вспоминаем двойной прыжок).

Если хотите лучше разобраться в физике видеоигр, то посмотрите соответствующие разделы в руководстве Unity или руководстве Lumberyard.

Читайте также: