Что такое движок nVidia PhysX и для чего он нужен. Что такое PhysX и для чего нужна эта технология? Детальный physx

05.09.2020 Приставки

Американская компания nVidia Corporation произвела на свет множество инноваций, как в технической сфере, так и в сфере программного обеспечения, однако, мало какая новая наработка имела такое же значение, как физический движок nVidia PhysX. Изначально, PhysX разрабатывался не nVidia, а небольшой калифорнийской компанией Ageia Technologies. Тогда ещё PhysX не имел большинства своих возможностей, но потенциал был виден невооружённым глазом.

В феврале 2008 года Ageia Technologies была приобретена nVidia Corporation и полностью вошла в её состав. Разумеется, все наработки Ageia Technologies также перешли в полную собственность nVidia. Руководством последней было принято решение переименовать PhysX в nVidia PhysX и сосредоточится на его активной разработке. Движок был оптимизирован для ускоренного проведения физических расчётов на графических чипах, имеющих также разработанную nVidia архитектуру CUDA. Кроме всего прочего, nVidia PhysX может производить вычисления и расчёты не только на графических чипах, но и на самых обычных центральных процессорах. На сегодняшний день данный физический движок доступен на всех популярнейших платформах, таких как Windows, Mac OS, Linux, Xbox 360, PlayStation 3 и даже Wii, однако аппаратное ускорение доступно только на платформе Windows.

Что такое nVidia PhysX

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

Пример работы движка можно nVidia PhysX

Отличительной особенностью nVidia PhysX является то, что его необходимо скачивать и устанавливать отдельно, в то время как другие физические движки устанавливаются вместе с самой игрой. Сам движок состоит из трёх частей:

  • Rigid body, отвечающий за обработку твёрдых тел;
  • Cloth, отвечающий за обработку тканей;
  • Fluid, отвечающий за обработку различных жидкостей.

Каждый из этих компонентов реализован на высшем уровне. Например, Cloth обеспечивает максимально реалистичное поведение тканей при взаимодействии с другими тканями и иными предметами, а также их разрывы и разделение на несколько частей. Ярким примером может служить игра Mirror’s Edge, где благодаря этой технологии была реализована реалистичное физическое поведение не только тканей, но и брезента, строительной плёнки и других подобных материалов. На сегодняшний день nVidia PhysX широко используется в более чем 150 игровых проектов. Можно с уверенностью сказать, что nVidia PhysX является самым широко распространённым физическим движком в мире.

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

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

Все началось пару лет назад, когда NVIDIA прямо заявила, что графические платы нового поколения должны уметь нечто большее, чем просто выводить на экран красивую картинку. А через некоторое время компания представила набор компонентов для разработчиков под названием CUDA (Compute Unified Device Architecture). Новая платформа открывала перед видеокартами широкое поле для маневров. Теперь графические чипы могли попробовать себя в следующих задачах: декодирование видео, научные и инженерные расчеты, медицинские исследования, финансовые вычисления.

Чтобы повысить ценность платформы в глазах обывателей, NVIDIA возложила на видеокарты ускорение физики. Почти во всех современных играх есть подсистема, которая симулирует физические законы реального мира, что, в свою очередь, повышает реалистичность игрового процесса. Возьмем, к примеру, The Elder Scrolls 4: Oblivion . Физический движок этой игры учитывает массу и плотность объектов, силу трения, гравитационное воздействие и другие параметры. Что это дает? Вода ведет себя почти как настоящая, тела убитых врагов плавают на ее поверхности, деревья гнутся на ветру, одежда повторяет движения тела.

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

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

Осознав это, NVIDIA твердо вознамерилась, используя CUDA и свои видеокарты, поднять игровую физику на новый уровень. Поначалу компания использовала движок Havok FX . Но после того, как Intel купила Havok, NVIDIA оказалась в затруднительном положении.

Спасательный круг

А потом под руку NVIDIA подвернулась фирма Ageia , которая потерпела крах со своим физическим ускорителем PhysX и медленно, но верно шла ко дну. NVIDIA подсуетилась и в феврале 2008 года выкупила бедствующую компанию. Графического гиганта заинтересовали не столько железные разработки Ageia, сколько программный набор PhysX SDK , который использовал аппаратные возможности чипа PhysX, но мог прекрасно обходиться и без него (в этом случае расчет физических эффектов ложился на процессор). Не прошло и полугода, как технология PhysX задышала с новой силой. Первым делом NVIDIA прикрутила ее поддержку к своим топовым решениям. С каждой новой версией драйверов совместимость с PhysX обретали и другие модели видеокарт.

В середине августа 2008 года NVIDIA выпустила GeForce Power Pack , активирующий PhysX на платах серий GeForce 8xxx , GeForce 9xxx и GTX 2xx . Тем самым компания расширила пользовательскую базу до 80 миллионов человек во всем мире. Загрузить этот программный пакет может любой желающий, а находится он на странице www.nvidia.ru/theforcewithin .

В Power Pack входят: драйвера, бесплатная игра Warmonger - Operation: Downtown Destruction , демоверсия игры Metal Knight Zero , дополнительные уровни для Unreal Tournament 3 , клиент проекта распределенных вычислений Folding@home , пробная версия видеокодера Elemental Technologies Badaboom , а также несколько демоприложений, показывающих возможности технологии PhysX. С нашими впечатлениями от игр и демок, входящих в состав Power Pack, вы можете ознакомиться в разделе, посвященном тестированию.

Пара слов о Badaboom. Просматривать видео любых форматов умеет только персональный компьютер. Остальным устройствам (консолям, плеерам, КПК и прочим) требуется перекодирование ролика в понятный им вид. Существует множество программ-кодировщиков, но все они используют ресурсы центрального процессора. Поэтому на преобразование стандартного полуторачасового фильма уходит порядочно времени. Badaboom - тоже кодировщик, но он задействует шейдерные процессоры видеокарт, благодаря чему процесс перегона форматов протекает как минимум вдвое быстрее (в зависимости от используемой видеокарты). Что самое приятное, при этом ЦП свободен для выполнения любых других задач. К примеру, при кодировании клипа из H.264 в MP4 процессор загружен всего на 6%.

У программы предельно простой интерфейс, в наличии много предустановок (для самых популярных устройств). Без минусов, правда, не обошлось: текущая версия Badaboom поддерживает ограниченное количество входных форматов. И, разумеется, владельцы видеокарт от AMD , а также интегрированных решений Intel использовать программу не смогут - Badaboom работает только с платами NVIDIA.

Еще повоюют?

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

Сейчас Intel работает над архитектурой Larrabee . У первых графических чипов нового семейства будет свыше десяти ядер на одном кристалле. Разумеется, сфера применения таких процессоров не ограничивается одной лишь обработкой графики. Они будут использоваться для научных расчетов, моделирования природных процессов и, конечно же, ускорения физики в играх. Что немаловажно, программируется Larrabee теми же самыми командами, что и обычные процессоры архитектуры x86. Это сильно упростит написание приложений, совместимых с новыми графическими чипами Intel.

Компания AMD также не намерена сидеть в стороне. Уже сейчас ее процессоры и видеочипы оптимизируются под физический движок Havok. Как показывает практика, Havok очень хорошо дружит с процессорами AMD, особенно с четырехъядерными Phenom X4 . К началу 2009 года компания планирует выпустить видеокарту, которая для ускорения вычислений будет использовать стандартные средства DirectX 11 .

Практика

Допустим, вы счастливый обладатель платы GeForce 8-й, 9-й или 200-й серии. Как включить ускорение физики средствами видеокарты в играх? В каких приложениях можно оценить преимущество технологии NVIDIA PhysX? Действительно ли результаты столь впечатляющие, как обещала NVIDIA? Мы попробуем ответить на все эти вопросы.

Постановка задачи проста: доказать, что современные видеокарты NVIDIA справляются с обработкой физики лучше, чем последнее поколение процессоров, или опровергнуть это утверждение. Поэтому набор основных компонентов для тестового стенда был очевиден: взятый с пылу с жару ЦП Intel Core i7-920 , пара мощных видеокарт ZOTAC GeForce GTX 280 AMP! Edition и другая парочка графических плат, но уже послабее - две ZOTAC GeForce 9800 GTX+ . В остатке: материнская плата ASUS P6T Deluxe и 6 Гб оперативной памяти от OCZ . Испытания проводились в 64-битной версии Windows Vista Ultimate .

Набор тестовых приложений был следующим:

Unreal Tournament 3 с установленным PhysX-дополнением;

Сетевой экшен с полностью разрушаемым окружением Warmonger - Operation: Downtown Destruction;

Пре-альфа-версия игры Metal Knight Zero - многопользовательского сетевого шутера, в котором все окружение можно разрушить;

Бенчмарк Nurien , основанный на технологиях одноименной социальной сетевой игры (разрабатывается).

Все они входят в состав GeForce Power Pack (в случае с Unreal Tournament 3 речь идет только о дополнении PhysX) и могут быть свободно скачаны с сайта компании.

Установка

Для начала следует обзавестись самыми свежими драйверами для видеокарты. На момент написания статьи была доступна версия GeForce 180.48 , которая включала в себя драйвера PhysX 8.10.13 . То есть нужно скачать всего один инсталляционный файл.

Тестовый стенд
Материнская плата ASUS P6T Deluxe (Intel X58, Socket LGA1366, DDR3-1333, PCIe, PCI, SATA RAID, IDE, FDD, GbLAN, Sound, USB, FireWire, ATX)
Память 3x OCZ OCZ3P16002GK DDR3 2 Гб (1600 МГц, 7-7-7-24)
Видеокарты 2x ZOTAC GeForce GTX 280 AMP! Edition 1024 Гб (NVIDIA GeForce GTX 280, PCIe x16)
2x ZOTAC GeForce 9800 GTX+ 1024 Гб (NVIDIA GeForce 9800 GTX+, PCIe x16)
Жесткий диск Seagate Barracuda 7200.10 ST3400620AS 400 Гб (SATA, 16 Мб)
Оптический привод Nec DV-5800C (IDE)
Блок питания Antec TruePower Quattro (1000 Вт)
Драйвер для материнской платы Intel Chipset Software Installation Utility 9.1.1.1010
Драйвера видеокарты NVIDIA GeForce 180.48
Операционная система Windows Vista Ultimate 64-bit Edition, Service Pack 1

После установки драйверов надо открыть Панель управления NVIDIA (кликнуть правой кнопкой на рабочем столе и выбрать соответствующий пункт) и перейти на закладку с настройками PhysX. Здесь можно включить или выключить аппаратную обработку физики, а также, когда в системе установлено две (и более) видеокарты, выбрать режим их совместной работы. Если платы одинаковые, то доступно два режима: SLI , при котором обе видеокарты делят между собой как графическую, так и физическую нагрузку, и мульти-GPU , когда одна плата берет на себя всю графику, а вторая - всю физику. Если в системе установлены разные видеокарты (например, в первом разъеме PCIe x16 - GeForce 9800 GTX, во втором - GeForce 9600 GT), то разумно будет повесить обработку физики на слабейшую из них.

Тестирование

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

Давайте пройдемся по результатам наших испытаний.

Unreal Tournament 3

Оригинальный UT3 очень хорошо оптимизирован и не содержит каких-либо экстраординарных физических спецэффектов. Поэтому мы использовали PhysX-дополнение, которое включает в себя три новых уровня: Tornado, Lighthouse PhysX и Heat Ray PhysX. На первой карте хозяйничает гигантский смерч. Он свободно перемещается по уровню, снося все на своем пути и норовя догнать игроков. Вторая карта представляет собой один большой маяк, в котором можно раскурочить буквально каждую стену, лестницу и перекрытие. Ну а третий уровень - классическая карта Heat Ray c возможностью частичного разрушения и поддержкой еще нескольких физических эффектов.

Что же мы видим: тестирование только началось, а Core i7-920 уже посрамлен. Обе платы демонстрируют троекратное преимущество над процессором. Добавление второй видеокарты, которая занимается исключительно обработкой физики, приводит к увеличению производительности на 20-50% в зависимости от модели платы.

Warmonger - Operation: Downtown Destruction

Эта игра также базируется на движке Unreal Engine 3 , но по числу физических «присадок» заметно опережает UT3. Разрушается здесь абсолютно все, а надежных укрытий не существует в принципе, так как любой камень, за которым вы решили спрятаться, может быть превращен в пыль после нескольких удачных залпов противника. Дым от оружия стелется по направлению ветра, а туман рассеивается от череды взрывов.

На этом этапе видеокарты NVIDIA лишь укрепили свои позиции - все то же троекратное преимущество. Процессор Intel начинает потихоньку сгорать от стыда. Интересно, что система с GeForce 9800 GTX+ после установки еще одной платы получает чуть ли не 100-процентный прирост, тогда как добавочная GeForce GTX 280 увеличивает fps лишь на 30%.

Metal Knight Zero

Рассказывать о Metal Knight Zero особо нечего. Бегаем, стреляем, наблюдаем, как объекты разлетаются на мелкие кусочки в соответствии с законами физики. Плюс к тому, здесь в полной мере реализована симуляция ткани: флаги и прочие тряпки развеваются на ветру и рвутся точно так же, как и в реальной жизни.

Q : Слышал про ускорение физики средствами видеокарт. Хотелось бы узнать про это поподробнее. И какие видеокарты умеют ускорять физику?

A : Для начала немного истории. В 2006 году компания ATI первой заявила о возможности ускорения физики средствами видеокарт. Аппаратное ускорение физики должно было продвинуть физические эффекты на новый уровень.
Через нескольких месяцев даже была продемонстрирована такая возможность (прочитать можно в этой статье - ATI Physics. Часть вторая – тестируем своими руками ). В качестве физического движка использовался движок HavokFX, разработка компании Havok. На этой демонстрацией дело и закончилось. Про этот проект больше ничего не было слышно. А после покупки компании Havok корпорацией Intel и во все думали что Intel отменит этот проекта. Однако в конце 2008 года AMD заявила что продолжает сотрудничество с Intel в сфере аппаратной физики на видеокартах.

Тем временем NVIDIA, которая тоже говорила о возможности ускорения физики на своих видеокартах, сидела молча до определенного момента. В начале 2008 года NVIDIA заявила о покупке компании AGEIA, которая разработала собственный ускоритель физики PhysX и специальный физический движок PhysX. Дела у компании AGEIA шли не очень хорошо, игр с использованием их физического движка было не много, поэтому и физические ускорители продавались очень плохо. После своего приобретения NVIDIA сразу же принялась переводить API PhysX на свои видеокарты при помощи CUDA.

Итак на данный момент аппаратное ускорение физики средствами видеокарт поддерживают только с игры физическим движком PhysX*и только на видеокартах NVIDIA GeForce 8-й, 9-й, 200-й и 400-й сериях.
Видеокарты AMD Radeon пока не умеют ускорять физику.

Q : Что такое PhysX?
A : PhysX это физический движок с возможностью аппаратного ускорения. Для того что лучше понять, PhysX можно разделить на две части: CPU PhysX и GPU PhysX.

CPU PhysX это многоплатформенный физический движок в котором работает только процессор. Т.е. никакие ускорители физики (Ageia PhysX) или видеокарты тут ничего не дают. Этот физический движок существует практически под все современные игровые платформы: PC, PlayStation 3, XBox 360, Wii.

GPU PhysX это расширенные возможности физического движка в котором для расчета эффектов может использоваться видеокарта с поддержкой CUDA, т.е. NVIDIA GeForce.

В большинстве игр где есть физический движок PhysX используется только CPU PhysX. Всего таких игр насчитывается более 200.
Игр где есть GPU PhysX значительно меньше, немногим более 20. Причем большая часть из них третье сортный трэш. Качественных игр с GPU PhysX можно посчитать по пальцам: Unreal Tournament 3 (со спец дополнением), Mirror"s Edge, Batman: Arkham Asylum, Анабиоз: Сон Разума (Cryostasis: Sleep of Reason) и Metro 2033.

Q : Могу я использовать видеокарты ATI Radeon для GPU PhysX?
A : Нет. Т.к. ATI Radeon не поддерживают CUDA. Возможно позже если NVIDIA перенесет PhysX под OpenCL или DirectCompute, тогда и на ATI Radeon будет возможность работать с GPU PhysX.

Q : Можно в паре с ATI Radeon использовать видеокарты GeForce для ускорения GPU PhysX?
A : Да. Но если без модификаций, то только с драйверами ForceWare 257.15 Beta. Если с модификациями, то читаем тему - Ускоритель физики + ATI Radeon, возможно ли? .

Q : Какую видеокарту выбрать для отдельного ускорения GPU PhysX?
A : На данный момент больше чем GeForce GT240 нет смысла брать.

Список игр где используется PhysX SDK
Хороший сайт по PhysX - PhysXInfo.com - Projects using PhysX SDK
Информация на сайте nVIDIA - PhysX

«NVIDIA PhysX что это за программа» — запрос, который сразу позволяет в его авторе распознать пользователя продукцией от Nvidia. Всё потому, что речь идёт о программном обеспечении, которое способствует работе графических движков Nvidia GeForce и других. Большинство современных игра не буду запускаться на вашем компьютере без предустановленного NVIDIA PhysX.

Стоит начать с того, что изначально технологией physx занималась, и собственно говоря, является его творцом, совсем другая компания. Авторами вышеупомянутого графического чипа являлась молодая американская компания под названием Ageia Technologies. Как самостоятельная единица просуществовала она лишь до 2008-го года, когда и была выкуплена гигантом рынке игровой и технической индустрии — NVidia.

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

Вот только если ATI задуманное довели до конца, то вот Nvidia по среди пути решили поменять политику компании, что касается данной технологии. Отказавшись от собственной разработки, они просто выкупили компанию Ageia Technologies вместе со всеми их разработками. С тех пор графический чип получил название Nvidia physx.

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

В технологии NVIDIA PhysX реализованы три главные компонента:

  • обработка физики жидкости;
  • обработки физики твёрдых тел;
  • обработка физики тканей.

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

Узнав из нашей статьи, что же это за программа — NVIDIA PhysX, Вы понимаете, что решение в том, необходима ли эта программа — не стоит. Если Вы собираетесь устанавливать современные игры или мощные графические редакторы, то Nvidia physx просто необходим.