Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

PhysX является открытым исходным кодом [1] в реальном времени физический движок промежуточного SDK , разработанный Nvidia в составе Nvidia GameWorks программного пакета .

Изначально видео игр с поддержкой PhysX должны были быть ускорен с помощью PhysX PPU ( карты расширения , разработанные Ageia ). Однако после приобретения Ageia компанией Nvidia выделенные карты PhysX были прекращены в пользу использования API на графических процессорах GeForce с поддержкой CUDA . В обоих случаях аппаратное ускорение позволило выгрузить физические вычисления из ЦП , позволив ему вместо этого выполнять другие задачи.

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

История [ править ]

То, что сегодня известно как PhysX, возникло как движок физического моделирования под названием NovodeX. Двигатель был разработан швейцарской компанией NovodeX AG, дочерней компанией ETH Zurich . [3] В 2004 году Ageia приобрела NovodeX AG и начала разработку аппаратной технологии, которая могла бы ускорить физические вычисления, помогая процессору. Ageia назвала технологию PhysX, SDK был переименован с NovodeX в PhysX, а карты ускорителей были названы PPU (Physics Processing Units). [4]

Первой игрой, в которой использовался PhysX, была Bet On Soldier: Blood Sport (2005). [ необходима цитата ]

В 2008 году сама Ageia была приобретена производителем графических технологий Nvidia. [5] Nvidia начала использовать аппаратное ускорение PhysX на своей линейке видеокарт GeForce [6] и в конечном итоге отказалась от поддержки PPU Ageia. [7]

PhysX SDK 3.0 был выпущен в мае 2011 года и представлял собой существенную переработку SDK, в которую были внесены такие улучшения, как более эффективная многопоточность и унифицированная кодовая база для всех поддерживаемых платформ. [2]

На GDC 2015 Nvidia сделала исходный код PhysX доступным на GitHub , но для этого потребовалась регистрация на сайте developer.nvidia.com. [8] собственный SDK был предоставлен разработчиками бесплатно как для коммерческого и некоммерческого использования в ОС Windows , Linux , MacOS , IOS и Android платформах. [9]

3 декабря 2018 года PhysX был сделан с открытым исходным кодом в соответствии с лицензией BSD с тремя пунктами , но это изменение коснулось только компьютеров и мобильных платформ. [10]

Особенности [ править ]

Движок PhysX и SDK доступны для Microsoft Windows, macOS, Linux, [10] PlayStation 3 , [11] [12] PlayStation 4 , [13] Xbox 360 , [14] Xbox One , [15] Wii , [16] iOS и Android. [10]

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

Аппаратное ускорение [ править ]

(ПК) На верхнем снимке экрана показано, как моделируется мусор в Mafia II, когда PhysX установлен на самый высокий уровень в настройках игры. На нижнем скриншоте показана аналогичная сцена с PhysX, повернутым на самый нижний уровень.

PPU [ править ]

Блок обработки физики (PPU) - это процессор, специально разработанный для облегчения вычислительной нагрузки на ЦП, в частности вычислений, связанных с физикой. PPU PhysX предлагались потребителям в виде карт PCI или PCIe от ASUS , [17] BFG Technologies , [18] [19] Dell [20] и ELSA Technology . [21]

Начиная с версии 2.8.3 PhysX SDK, поддержка карт PPU была прекращена, и карты PPU больше не производятся. [7] Последнее воплощение автономной карты PhysX PPU, разработанной Ageia, имело примерно такую ​​же производительность PhysX, как и выделенная 9800GTX. [22]

GPU [ править ]

После того, как Nvidia приобрела Ageia, разработка PhysX отказалась от карт расширения PPU и вместо этого сосредоточилась на возможностях GPGPU современных графических процессоров.

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

Любая видеокарта GeForce с поддержкой CUDA (GPU серии 8 или новее с минимум 32 ядрами и минимум 256 МБ выделенной графической памяти [23] ) может использовать PhysX без необходимости установки специальной карты PhysX.

APEX [ править ]

Технология Nvidia APEX - это многоплатформенная масштабируемая структура динамики, построенная на основе PhysX SDK. Впервые он был представлен в Mafia II в августе 2010 года. [24] APEX от Nvidia состоит из следующих модулей: APEX Destruction, APEX Clothing, APEX Particles, APEX Turbulence, APEX ForceField и ранее APEX Vegetation, действие которого было приостановлено в 2011 году [25] [26 ]. ]

Начиная с версии 1.4.1 APEX SDK устарел. [27]

Nvidia FleX [ править ]

FleX - это метод моделирования на основе частиц для визуальных эффектов в реальном времени. Традиционно визуальные эффекты создаются с использованием комбинации элементов, созданных с помощью специализированных решателей для твердых тел, жидкостей, одежды и т. Д. Поскольку FleX использует унифицированное представление частиц для всех типов объектов, он позволяет создавать новые эффекты, в которых различные моделируемые вещества могут взаимодействовать друг с другом плавно. Такие унифицированные решатели физики являются неотъемлемой частью мира автономной компьютерной графики , где широко используются такие инструменты, как nCloth от Autodesk Maya и Lagoa от Softimage . Цель FleX - использовать мощь графических процессоров для переноса возможностей этих автономных приложений в компьютерную графику в реальном времени. [28]

Критика со стороны Real World Technologies [ править ]

5 июля 2010 г. Real World Technologies опубликовала анализ [29] архитектуры PhysX. Согласно этому анализу, большая часть кода, используемого в приложениях PhysX в то время, была основана на инструкциях x87 без какой-либо оптимизации многопоточности. Это могло привести к значительному падению производительности при выполнении кода PhysX на ЦП. В статье предполагалось, что перезапись PhysX с использованием инструкций SSE может существенно уменьшить несоответствие производительности CPU PhysX и GPU PhysX.

В ответ на анализ Real World Technologies Майк Сколонес, менеджер по продукту PhysX, сказал [30], что поддержка SSE осталась позади, потому что большинство игр сначала разрабатываются для консолей, а затем переносятся на ПК. В результате современные компьютеры запускают эти игры быстрее и лучше, чем приставки, даже с небольшой оптимизацией или без нее. Старший менеджер по связям с общественностью Nvidia Брайан Дель Риццо объяснил, что многопоточность уже была доступна в CPU PhysX 2.x и что разработчик должен был ее использовать. Он также заявил, что автоматическая многопоточность и SSE будут представлены в версии 3 PhysX SDK. [31]

PhysX SDK 3.0 был выпущен в мае 2011 года и представлял собой существенную переработку SDK, в которую были внесены такие улучшения, как более эффективная многопоточность и унифицированная база кода для всех поддерживаемых платформ. [2]

Использование [ править ]

PhysX в видеоиграх [ править ]

Технология PhysX используется такими игровыми движками , как Unreal Engine (начиная с версии 3), Unity , Gamebryo , Vision (начиная с версии 6), Instinct Engine, [32] Panda3D , Diesel , Torque , HeroEngine и BigWorld . [23]

Как один из немногих основных физических движков, он используется во многих играх, таких как The Witcher 3: Wild Hunt , Warframe , Killing Floor 2 , Fallout 4 , Batman: Arkham Knight , Borderlands 2 и т. Д. В большинстве этих игр используется ЦП для обработки моделирования физики.

Видеоигры с дополнительной поддержкой PhysX с аппаратным ускорением часто включают дополнительные эффекты, такие как рвущаяся ткань, динамический дым или моделируемые частицы мусора. [33] [34] [35]

PhysX в другом ПО [ править ]

Другое программное обеспечение с поддержкой PhysX включает:

  • Active Worlds (AW), платформа трехмерной виртуальной реальности с клиентом, работающим в Windows [ необходима ссылка ]
  • Amazon Lumberyard , движок для разработки трехмерных игр, разработанный Amazon [36]
  • Autodesk 3ds Max , Autodesk Maya и Autodesk Softimage , комплекты компьютерной анимации [37] [38] [39]
  • DarkBASIC Professional (с обновлением DarkPHYSICS), язык программирования, предназначенный для разработки игр [40]
  • DX Studio , интегрированная среда разработки для создания интерактивной трехмерной графики [41]
  • Futuremark «s 3DMark06 и Vantage инструментов бенчмаркинга [42]
  • Microsoft Robotics Studio , среда для управления роботами и моделирования [43]
  • Nvidia SuperSonic Sled и Raging Rapids Ride, демонстрации технологий
  • OGRE (через оболочку NxOgre), механизм рендеринга с открытым исходным кодом [ необходима цитата ]
  • Уровень абстракции физики , система абстракции API физического моделирования (она обеспечивает поддержку COLLADA и Scythe Physics Editor для PhysX) [44]
  • Rayfire, подключаемый модуль для Autodesk 3ds Max, который позволяет моделировать трещины и другое физическое моделирование [ необходима ссылка ]
  • Лаборатория Physics Engine Evaluation Lab - инструмент, предназначенный для оценки, сравнения и тестирования физических движков. [45]
  • Программное обеспечение для разработки игр Unreal Engine от Epic Games . В Unreal Engine 4.26 и более поздних версиях PhysX официально объявлен устаревшим. [46]
  • Unity (игровой движок) от Unity ApS.

См. Также [ править ]

  • DirectX
  • Bullet (программное обеспечение)
  • Havok (программное обеспечение)
  • Open Dynamics Engine
  • Newton Game Dynamics
  • OpenGL
  • Vortex (программное обеспечение)
  • AGX Multiphysics

Ссылки [ править ]

  1. ^ Fingas, Джон (3 декабря 2018). «Любой может использовать движок моделирования физики NVIDIA» . Engadget . Проверено 3 декабря 2018 года .
  2. ^ a b c «NVIDIA объявляет о выпуске PhysX SDK V3» . Nvidia . Архивировано из оригинала на 24 мая 2011 года . Проверено 3 июня 2011 года .
  3. ^ "NovodeX AG" . ETH Zürich . Архивировано из оригинала на 8 января 2018 года . Проверено 4 декабря 2018 года .
  4. Сезар А. Берардини (12 апреля 2005 г.). «Интервью AGEIA Technologies» . Архивировано из оригинального 21 сентября 2011 года . Проверено 8 июня 2011 года .
  5. ^ «NVIDIA завершает приобретение AGEIA Technologies» (пресс-релиз). Корпорация NVIDIA. 13 февраля 2008 . Проверено 18 марта 2009 года .
  6. ^ "PhysX для CUDA, поддержка Linux дана?" . Фороникс . Phoronix Media. 14 февраля 2008 . Проверено 14 февраля 2008 года .
  7. ^ a b «Как восстановить поддержку PPU с помощью последних версий драйверов PhysX | PhysXInfo.com - Новости PhysX» . PhysXInfo.com. 17 января 2011 . Проверено 30 ноября 2011 года .
  8. ^ "PhysX на GitHub" . Nvidia . Проверено 6 марта 2015 года .
  9. ^ «PhysX SDK по состоянию на 7 января 2017 г.» . Nvidia . Архивировано из оригинала на 7 января 2017 года . Проверено 3 сентября 2017 года .
  10. ^ a b c "PhysX SDK" . Разработчик NVIDIA . 28 ноября, 2018. Архивировано из оригинала на 5 декабря 2018 года . Проверено 5 декабря 2018 года .
  11. ^ «Sony Computer Entertainment заключает стратегическое лицензионное соглашение с AGEIA» (PDF) (пресс-релиз). Sony Computer Entertainment, Inc. 21 июля, 2005. Архивировано из оригинального (PDF) от 11 марта 2006 года . Проверено 23 августа 2006 года .
  12. ^ «Playstation 3 получает бесплатный PhysX от Nvidia» . Котаку.
  13. Лоу, Скотт (7 марта 2013 г.). «Nvidia объявляет о поддержке PhysX для PlayStation 4» .
  14. ^ «PhysX - Обзор - GeForce» . Nvidia.com . Проверено 30 ноября 2011 года .
  15. ^ «NVIDIA объявляет о поддержке PhysX для игровой консоли Microsoft Xbox One» . Nvidia.com. Архивировано из оригинала 9 ноября 2014 года . Проверено 9 ноября 2014 года .
  16. ^ «Новости - Pre-GDC: Nvidia PhysX одобрен для разработчиков Wii» . Гамасутра. 19 марта 2009 . Проверено 30 ноября 2011 года .
  17. ^ "Обзор карты Asus 128mb PhysX / Предварительный просмотр" . 12 июля 2006 г.
  18. ^ «AGEIA и BFG Technologies заключают соглашение о розничной торговле» . Архивировано из оригинального 26 апреля 2006 года.
  19. ^ "Обзор карты BFG Ageia PhysX" . 1 октября 2007 г.
  20. ^ "AGEIA PhysX - видеокарта - AGEIA PhysX - 128 МБ спецификации" . Cnet.
  21. ^ "ELSA объединяется с Ageia" .
  22. ^ "Английские статьи из компьютерных игр Hardware" . www.pcgameshardware.com . 26 января 2009 г.
  23. ^ a b «Часто задаваемые вопросы по PhysX» . Nvidia.com . Проверено 10 декабря 2015 года .
  24. Олин Коулз. "Обзор производительности видеоигр Mafia-II" . BenchmarkReviews.com . Проверено 23 августа 2010 года .
  25. ^ "АПЕКС" . Проверено 8 июня 2011 года .
  26. ^ "Категория: APEX - PhysX Wiki" . PhysXInfo.com . Проверено 21 июля 2013 года .
  27. ^ «APEX 1.4.1 - Примечания к выпуску (APEX устарел)» . gameworksdocs.nvidia.com . Проверено 5 декабря 2018 года .
  28. ^ "NVIDIA FleX" . Разработчик NVIDIA . 13 августа 2015 года . Проверено 17 апреля 2019 года .
  29. ^ «PhysX87: недостаток программного обеспечения» . www.realworldtech.com .
  30. Стоукс, Джон (8 июля 2010 г.). «Неужели NVIDIA повредила свою библиотеку игровой физики ЦП в назло Intel?» . Arstechnica.com . Проверено 30 ноября 2011 года .
  31. ^ «Nvidia: Мы не ограничиваем возможности процессора PhysX | thinq_ | Страница 1» . Thinq.co.uk . Проверено 30 ноября 2011 года .
  32. ^ «Программное обеспечение Instinct - SDK Instinct Engine» . Instinctengine.com. Архивировано из оригинального 13 февраля 2015 года . Проверено 4 октября 2013 года .
  33. ^ Matt Butrovich (12 февраля 2009). «Взгляд на PhysX в Mirror's Edge» . Технический отчет . Проверено 6 апреля 2011 года .
  34. Rich Brown (21 сентября 2009 г.). «PhysX от Nvidia делает PC Batman: Arkham Asylum достойным ожидания» . cNET.com . Проверено 6 апреля 2011 года .
  35. Мэтью Мюррей (2 сентября 2010 г.). "Mafia II: стоит ли этого прикладного PhysX?" . ExtremeTech . Проверено 6 апреля 2011 года .
  36. ^ https://docs.aws.amazon.com/lumberyard/latest/userguide/gems-system-gem-physx.html
  37. Джим Такер (1 марта 2011 г.). «Видео: Autodesk представляет новые функции Maya 2012» . cgchannel.com . Проверено 6 апреля 2011 года .
  38. ^ «3ds Max 2012 и Maya 2012 добавляют поддержку PhysX» . Beyond3D.com. 1 марта 2011 года Архивировано из оригинала 8 июля 2017 года . Проверено 6 апреля 2011 года .
  39. Randall Hand (5 мая 2010 г.). «NVidia PhysX и CUDA в Softimage 2011» . Vizworld.com . Проверено 6 апреля 2011 года .
  40. ^ «Создатели игры интегрируют технологию AGEIA PhysX в DarkBASIC Professional» (пресс-релиз). Создатели игры. 22 марта 2006 года Архивировано из оригинального 27 апреля 2006 года . Проверено 23 сентября 2006 года .
  41. ^ «Обзор» . DX Studio . Worldweaver. Архивировано из оригинала 5 июля 2009 года . Проверено 2 ноября 2008 года .
  42. ^ «AGEIA присоединяется к программе разработки тестов 3DMark от Futuremark» . Найти статьи . CBS Interactive. BusinessWire . 27 сентября 2006 . Проверено 3 ноября 2008 года .
  43. ^ «Обзор моделирования» . Центр разработчиков робототехники Microsoft . Microsoft.
  44. ^ Боинг, Адриан. «Двигатели» . Слой абстракции физики . Проверено 18 ноября 2007 года .
  45. Pierre-Terdiman (22 марта 2019 г.), GitHub - Pierre-Terdiman / PEEL: Physics Engine Evaluation Lab. , получено 22 марта 2019 г.
  46. ^ https://forums.unrealengine.com/unreal-engine/announcements-and-releases/1814986-unreal-engine-4-26-preview

Внешние ссылки [ править ]

  • Официальный сайт продукта
  • Techgage: AGEIA PhysX .. Первые впечатления
  • Techgage: NVIDIA PhysX: отчет о производительности и состоянии