Законы физики. Прицельный взгляд на технологию NVIDIA PhysX

Законы физики. Прицельный взгляд на технологию NVIDIA PhysX

Теория — Законы физики. Прицельный взгляд на технологию NVIDIA PhysX
дело в художниках. Да-да, в художниках и дизайнерах игр. Потому что считать-то все это красивое разрушаемое окружение не так уж и сложно — нужные библиотеки на все случаи жизни уже давно можно бесплатно скачать. Но вот для того, чтобы было что счита
Игроманияhttps://www.igromania.ru/
Теория
Законы физики. Прицельный взгляд на технологию NVIDIA PhysX

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

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

Физика в надежных руках

Первые версии движка Havok могли просчитать траекторию полета небольшого числа ящиков.

В начале эпохи физических расчетов в играх все калькуляции ложились на плечи центрального процессора. Другого вычислительного устройства тогда попросту не было: мощностей тогдашних одноядерных процессоров хватало разве что на расчет параметров трех-четырех ломающихся деревянных ящиков в одной сцене да на редкий мусор на улицах виртуальных городов. Постепенно игры научились просчитывать взаимодействие объектов, управлять траекторией полета тел и художественным разбрызгиванием крови. Во многом развитию физических спецэффектов поспособствовал движок Havok Physics, представленный в 2000 году одноименной ирландской компанией (Havok переводится с ирландского как «ответ на все вопросы»). Программный интерфейс позволил разработчикам сосредоточиться на коде игры, не отвлекаясь на прописывание физических эффектов — все они уже были запрограммированы в движке.

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

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

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

Ситуация на рынке начала было накаляться — все производители процессоров, графических и центральных, бросились судорожно придумывать свой «ответ Чемберлену». Однако, несмотря на бодрый старт, сил и опыта Ageia не хватило для того, чтобы грамотно продвинуть свое устройство среди девелоперов. Пара технических демоверсий да одна демонстрационная игра Cell Factor — вот и все, чего добилась компания за два года существования PhysX.

К тому времени видеокарты сделали мощный шаг вперед — графические конвейеры со строго прописанными функциями исчезли, их место заняли универсальные шейдерные процессоры. Отныне графические чипы могли заниматься расчетами общего назначения — немудрено, что ATI и NVIDIA разом ухватились за новую возможность и анонсировали расчеты физики средствами GPU. Только, вот незадача, разрабатывать собственный мультиплатформенный движок для взаимодействия с графическими чипами и играми выходило слишком накладно, да и совсем ни к чему — на рынке ведь уже были Havok и PhysX…

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

Создателей Havok в конце 2007 года выкупила компания Intel. По слухам, микропроцессорный гигант тут же приказал свернуть работы над продвинутым движком Havok FX, который должен был задействовать мощности графических чипов при расчетах физики, и даже заставил всех работавших над ним инженеров подписать страшные договоры о неразглашении информации. Так что вместо того, чтобы придумывать конкурента PhysX, лучшие умы Intel принялись оптимизировать движок для работы в среде многоядерных х86-совместимых процессоров — все это впоследствии легло в основу готовящегося к выходу в следующем году проекта Larrabee.

NVIDIA же не оставалось ничего другого, кроме как выкупить наработки Ageia: транзакция была завершена в феврале 2008 года, и уже спустя несколько месяцев калифорнийская компания анонсировала ускорение физики мощностями нового чипа и интеграцию программного пакета PhysX с собственными разработками. ATI на пару с AMD остались не у дел.

Место под солнцем

Вирус The Way It’s Meant to Be Played поразил уже не один десяток игр. В будущем их станет только больше — программа успешно зарекомендовала себя среди девелоперов

Итак, в руках NVIDIA оказался полноценный физический движок, готовый комплект для разработчиков PhysX SDK и неплохая пользовательская база — на момент покупки технология уже пользовалась некоторой популярностью и получила поддержку со стороны крупных игрострой-компаний. Так что, по сути, NVIDIA осталось только связать движок со своими графическими процессорами и раскрутить его в среде разработчиков. Здесь как нельзя кстати пришлись уже готовые и вполне работающие концепции компании — платформа для вычислений общего назначения средствами графического чипа (CUDA) и программа сотрудничества с разработчиками игр The Way It’s Meant to Be Played.

Связать движок с CUDA не составляло проблем — в первых же драйверах PhysX NVIDIA анонсировала поддержку всех выпущенных игр с физическими эффектами на основе Ageia PhysX SDK. Владельцы видеокарт GeForce, начиная с восьмого поколения, получили подарок совершенно бесплатно — физика во многих играх им досталась без аппаратного ускорителя Ageia (эту железку к тому времени уже отправили на свалку истории), ведь все расчеты физики легли на плечи графического чипа. Начало было положено, оставалось продвинуть технологию, заручившись поддержкой всех крупных издателей. Этим и занялась NVIDIA в рамках программы The Way It’s Meant to Be Played.

Tom Clancy’s Ghost Recon: Advanced Warfighter не смогла спасти Ageia PhysX — даже несмотря на то, что игроки об игре отзывались вполне положительно.

Сама концепция тесного сотрудничества появилась в арсенале компании задолго до PhysX. По мере усложнения графических чипов и появления десятков новых функций писать игры стало труднее — так что в рамках программы инженеры NVIDIA помогают девелоперам разобраться в микроархитектуре видеокарт. В ходе работы обе стороны пытаются создать эффективный код, который будет работать максимально быстро на видеокартах GeForce, добавить поддержку красивых физических и графических спецэффектов (у ATI тоже есть подобная программа взаимодействия с разработчиками — Get in the Game).

Получается, что на руках у NVIDIA оказались все карты — поддержка мощной физической технологии со списком доступных игр и концепция для ее продвижения. В компании говорят, что сейчас движок продвигает себя сам, и с этим сложно не согласиться, ведь AMD со своим графическим подразделением пока не смогла дать достойный ответ конкуренту. С момента анонса NVIDIA PhysX к калифорнийскому лагерю присоединились производители игровых приставок, издатели и разработчики игр Epic, Electronic Arts, Capcom, Sega, THQ, GRIN, DICE и даже создатели iPhone. Казалось бы, вот оно, игровое счастье! Вот-вот произойдет чудо и на рынке появится много интересных игр с интерактивным окружением, ведь такие гиганты уж точно должны найти достойное применение наработкам NVIDIA?

А теперь добро пожаловать в суровую реальность.

Разрушить все

Даже Apple iPhone получил поддержку физических спецэффектов. Конечно, в существующей версии справиться со всеми красотами устройство не сможет — слишком мала мощность.

На бумаге возможности движка PhysX выглядят просто потрясающе. С его помощью можно создать по-настоящему интерактивное окружение с разрушаемыми стенами, пробиваемыми заборами, плавающими по воде предметами и тому подобными радостями. Движок в состоянии отрисовать более 500 000 миниатюрных частиц в кадре, просчитать очень реалистичный огонь, заставить ткань развеваться на ветру, рваться от пуль и огибать проходящих персонажей. На практике же мы пока не получили ни одной игры, где все это реализовано по максимуму. Да, был Mirror’s Edge с трескающимся стеклом, был Advanced Warfighter с красивыми взрывами, был даже Terminator: Salvation, где роботы из будущего реалистично бросались остовами автомобилей. Только вот все это выглядит куда менее эффектно, чем на самом деле позволяют технологии. Многое из реализованного преспокойно может обработать любой центральный процессор, без помощи десятков шейдерных процессоров в графическом чипе.

Видеоролики на сайте NVIDIA (www.nvidia.com/object/physx_new.html, также их можно найти на нашем диске) пытаются убедить нас в обратном. В одном из них автомобиль ездит по логотипу компании, поднимая невероятной красоты облака пыли. Пыль клубится и медленно растворяется в воздухе. Когда камера приближается к машине, становится видно, как тысячи крошечных пылинок повинуются законам физики: кружатся в вихрях, отражают лучи света, сталкиваются и разлетаются... Реалистично, завораживающе и, если верить NVIDIA, вполне реально — на просчет таких вот картинок особо мощных карт не понадобится, хватит даже GeForce 9800. Так почему же всего этого до сих пор нет в играх?

Красиво разлетающееся стекло в Mirror’s Edge порадовало владельцев современных моделей GeForce — они получили дополнительную функцию без денежных вложений.

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

На самом деле существует пара игр с «полноценным» окружением. Например, высокую планку качества в свое время задали дополнительные уровни для Unreal Tournament 3, доступные в пакете GeForce Graphics Plus Powerpack N1. Выстрелы из гранатометов и лазерных винтовок деформируют стены, разносят в щепки рекламные щиты, взрывают асфальт. Только вот таких уровней всего три. Еще один пример качественного использования физики — «Анабиоз: Сон разума». Активация PhysX преображает игру: появляется реалистичная вода, в каждой каюте десятки мелких предметов начинают жить своей жизнью, подчиняться настоящим физическим законам, а не валяться мертвым грузом на полках и столах.

А вот ткань в Mirror’s Edge рвется не очень-то реалистично — в реальности это происходит по несколько иным законам.

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

Терпение — это искусство надеяться

Есть и еще один фактор, который волнует разработчиков игр, — кроссплатформенность. Технология NVIDIA PhysX реально работает не только на PC, но и на консолях (Xbox 360, PlayStation 3, Nintendo Wii), и даже на откровенно слабых мобильных платформах вроде iPhone. Однако применяется она до сих пор практически исключительно в PC-играх, оставляя консольным решениям только самые примитивные физические расчеты. Разумеется, тут дело только в мощностях: современные видеокарты с сотнями шейдерных процессоров легко справляются с нагрузкой, но консоли тем же похвастаться не могут. А представляете, как тяжело создавать одну и ту же игру для разных платформ? NVIDIA, конечно, гордо заявляет о «масштабируемости физики» для систем различной мощности, но на самом деле эта самая маштабируемость — это вагон и маленькая тележка строчек кода, которые придется менять под каждую платформу отдельно. То есть как ни крути, а игру все равно придется изменять под каждую консоль в соответствии с ее производительностью — загружать соответствующие библиотеки и ограничивать глубину расчетов.

В игре Dark Void пользователи смогут полетать на красивых реактивных ранцах. Лишь бы от выхлопного дыма не закружилась голова — так можно и об стену удариться.

Такие сложности, разумеется, не столько привлекают, сколько отпугивают девелоперов. Однако скоро ситуация должна измениться: вопреки слухам, NVIDIA не стала сидеть на мешке сокровищ Ageia и пожинать плоды чужих трудов — программисты компании продолжили разработку физического движка. И уже создали новое решение — причем не одну программу для расчетов, а целую физическую платформу NVIDIA APEX.

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

Виртуальные солдаты в игре Darkest of Days грозятся заполнить игровой экран до самого горизонта. Хочется верить, что и модель поведения войск не отстанет от визуальной части.

Комплект APEX, так же как и PhysX, состоит из двух частей — собственно движка и библиотек к нему, которые можно скачивать и загружать в игру по мере надобности. В настоящий момент практически все библиотеки, правда, находятся на стадии бета-версий и для скачивания доступны только некоторые из них — модули разрушений, реалистичной растительности, частиц (газ, туман, пыль и тому подобное) и одежды. Но отзывы со стороны девелоперов уже очень хорошие — фокус-группа NVIDIA в один голос утверждает, что работать с APEX удобно, а эффекты ее выглядят намного реалистичнее эффектов PhysX. Кстати, если у вас есть видеокарта NVIDIA GeForce 8800 или старше, вы можете убедиться в этом сами: на нашем диске выложена маленькая демонстрационная игра, созданная с использованием библиотеки APEX Soft Bodies. Только не забудьте поставить соответствующие драйверы, прежде чем запускать игру, — их тоже можно взять с диска.

Призрачная угроза

Патч с физическими спецэффектами к игре Sacred 2: Fallen Angel добавляет особый шарм фэнтезийным битвам. К примеру, движения гигантского голема порождают ударную волну и сотни камней по всему периметру.

В последнее время все больше говорят об открытой платформе для вычислений общего назначения средствами GPU под названием OpenCL — вот, мол, смотрите, подрастает конкурент NVIDIA. На словах все и вправду весьма внушительно: открытый стандарт, абсолютно бесплатный для любых разработчиков, огромный список поддерживаемого оборудования, сотни энтузиастов со взором горящим в десятках стран мира… Такой подход может разом лишить преимуществ фирменные технологии конкурентов! Правда, в реальности все опять не так радужно: для того, чтобы сесть и написать свой физический движок под OpenCL, нужно не только много ума и усидчивости, но еще деньги и время, а на дворе все кризис, и раскошеливаться на такие рискованные проекты никто не торопится.

Такая же ситуация сложилась и вокруг специализированных шейдеров Compute Shader, которые войдут в состав будущего API DirectX 11. С их помощью тоже можно будет производить расчеты общего назначения на мощностях любых современных графических чипов без использования сторонних платформ и закрытых стандартов вроде NVIDIA CUDA. В теории для них тоже можно было бы написать свой физический движок. У Microsoft даже, скорее всего, нашлись бы на это деньги, если бы не одно но: работать движок, написанный для DirectX 11, сможет только на PC-платформах — консоли его просто не потянут, уровня их мощностей хватает только на DirectX 10, да и то с трудом. Ну а поскольку в сравнении с таким кроссплатформенным гигантом, как PhysX, гипотетический Microsoft-движок смотрится довольно бледно, компания не спешит расставаться с деньгами.

Получается, что на самом деле новых конкурентов NVIDIA не увидит еще долго — время не то. Другое дело — конкуренты старые. PhysX ведь, как ни крути, не открытый движок. Да, его могут использовать все желающие, но обязательная причастность к «зеленому» лагерю NVIDIA при этом импонирует далеко не каждому. Самый яркий пример — поддержка со стороны видеокарт AMD: вы вот можете представить себе коробку с новой мощной видеокартой ATI Radeon с логотипом NVIDIA PhysX? Мы точно не можем. Умельцы с сайта NGOhq.com пытались сделать драйвер, который бы обманул программное обеспечение PhysX и заставил его работать на видеокартах ATI Radeon HD, но… за полгода ни к чему хорошему попытки не привели — и энтузиазм «подпольщиков» поутих.

По слухам, AMD уже вступала в переговоры с NVIDIA по поводу использования PhysX, но результатов так и не добилась. После этого компания обратила свой взор на физический движок Havok, принадлежащий компании Intel (подробнее об этом читайте на врезке). Как знать, может быть, вместе с Larrabee появятся и «физические решения» для AMD?

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

Сетевая игра Star Tales расскажет о жизни знаменитостей куда лучше, чем программа по MTV. Физический движок PhysX, в свою очередь, неплохо обработает одежду героинь.

* * *

«Физическая» технология NVIDIA медленно, но верно завоевывает сердца разработчиков игр. Сейчас ее поддерживают 140 игр, еще несколько десятков находится в разработке. Ядро PhysX уже вживлено в большинство самых мощных игровых движков — Unreal Engine 3 (Epic), Gamebryo 2.5 (Emergent Game Technologies), Diesel Engine (GRIN), Eclipse Engine (BioWare). Однако о полном порабощении умов девелоперов новой технологией говорить пока слишком рано — на это потребуется еще не один год.

1 2 Все
Комментарии
Загрузка комментариев