stringtranslate.com

PhysX

Карта BFG Physx

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, является The Сталинское метро , ​​выпущенная в игровых магазинах только в России в сентябре 2005 года. [5]

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

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

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

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

8 ноября 2022 года версия с открытым исходным кодом была обновлена ​​до PhysX 5 в соответствии с той же трехпунктной лицензией BSD . [12]

Функции

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

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

Аппаратное ускорение

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

ППУ

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

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

ГПУ

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

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

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

АПЕКС

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

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

Nvidia FleX

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

Критика со стороны Real World Technologies

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

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

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

Использование

PhysX в видеоиграх

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

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

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

PhysX в другом программном обеспечении

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

Смотрите также

Ссылки

  1. ^ "NVIDIA PhysX SDK 4.1". Engadget . Получено 5 апреля 2022 г. .
  2. ^ abc "NVIDIA объявляет о выпуске PhysX SDK V3". Nvidia . Архивировано из оригинала 24 мая 2011 г. Получено 3 июня 2011 г.
  3. ^ "NovodeX AG". ETH Zürich . Архивировано из оригинала 8 января 2018 г. Получено 4 декабря 2018 г.
  4. ^ César A. Berardini (12 апреля 2005 г.). "AGEIA Technologies Interview". Архивировано из оригинала 21 сентября 2011 г. Получено 8 июня 2011 г.
  5. ^ "Physics Engine: PhysX". MobyGames . Получено 6 сентября 2023 г.
  6. ^ "NVIDIA завершает приобретение AGEIA Technologies" (пресс-релиз). NVIDIA Corporation. 13 февраля 2008 г. Получено 18 марта 2009 г.
  7. ^ «PhysX для CUDA, поддержка Linux очевидна?». Фороникс . Фороникс Медиа. 14 февраля 2008 года . Проверено 14 февраля 2008 г.
  8. ^ ab "Как восстановить поддержку PPU с последними драйверами PhysX | PhysXInfo.com – PhysX News". PhysXInfo.com. 17 января 2011 г. Архивировано из оригинала 24 ноября 2011 г. Получено 30 ноября 2011 г.
  9. ^ "PhysX на GitHub". Nvidia . Получено 6 марта 2015 г.
  10. ^ "PhysX SDK по состоянию на 7 января 2017 г.". Nvidia . Архивировано из оригинала 7 января 2017 г. . Получено 3 сентября 2017 г. .
  11. ^ abc "PhysX SDK". NVIDIA Developer . 28 ноября 2018 г. Архивировано из оригинала 5 декабря 2018 г. Получено 5 декабря 2018 г.
  12. ^ "Open Source Simulation Expands with NVIDIA PhysX 5 Release". Nvidia . 8 ноября 2022 г. Архивировано из оригинала 28 мая 2023 г. Получено 15 июня 2023 г.
  13. ^ "Sony Computer Entertainment заключает стратегическое лицензионное соглашение с AGEIA" (PDF) (пресс-релиз). Sony Computer Entertainment, Inc. 21 июля 2005 г. Архивировано из оригинального (PDF) 11 марта 2006 г. Получено 23 августа 2006 г.
  14. ^ "Playstation 3 получает бесплатный PhysX от Nvidia". Kotaku. 18 марта 2009 г.
  15. Лоу, Скотт (7 марта 2013 г.). «Nvidia объявляет о поддержке PhysX для PlayStation 4».
  16. ^ "PhysX – Обзор – GeForce". Nvidia.com. Архивировано из оригинала 29 апреля 2009 г. Получено 30 ноября 2011 г.
  17. ^ "NVIDIA объявляет о поддержке PhysX для игровой консоли Microsoft Xbox One". Nvidia.com. Архивировано из оригинала 9 ноября 2014 г. Получено 9 ноября 2014 г.
  18. ^ "Новости – Pre-GDC: Nvidia PhysX одобрена для разработчиков Wii". Gamasutra. 19 марта 2009 г. Получено 30 ноября 2011 г.
  19. ^ "Обзор/предварительный просмотр карты Asus 128mb PhysX". 12 июля 2006 г.
  20. ^ "AGEIA и BFG Technologies заключают соглашение о розничной дистрибуции". Архивировано из оригинала 26 апреля 2006 г.
  21. ^ "Обзор карты BFG Ageia PhysX". 1 октября 2007 г.
  22. ^ "AGEIA PhysX - видеокарта - AGEIA PhysX - 128 МБ Характеристики". Cnet.
  23. ^ «ELSA объединяется с Ageia».
  24. ^ "Статьи на английском языке из PC Games Hardware". www.pcgameshardware.com . 26 января 2009 г.
  25. ^ ab "PhysX FAQ". Nvidia.com . Получено 10 декабря 2015 г. .
  26. ^ Олин Коулз. "Обзор производительности видеоигры Mafia-II". BenchmarkReviews.com . Получено 23 августа 2010 г.
  27. ^ "APEX" . Получено 8 июня 2011 г.
  28. ^ "Категория:APEX - PhysX Wiki". PhysXInfo.com . Получено 21 июля 2013 г. .
  29. ^ "APEX 1.4.1 - Заметки о выпуске (APEX устарел)". gameworksdocs.nvidia.com . Получено 5 декабря 2018 г. .
  30. ^ "NVIDIA FleX". Разработчик NVIDIA . 13 августа 2015 г. Получено 17 апреля 2019 г.
  31. ^ "PhysX87: Дефицит программного обеспечения". www.realworldtech.com .
  32. Стоукс, Джон (8 июля 2010 г.). «NVIDIA испортила свою игровую физическую библиотеку CPU, чтобы насолить Intel?». Arstechnica.com . Получено 30 ноября 2011 г.
  33. ^ "Nvidia: Мы не мешаем CPU PhysX | thinq_ | Страница 1". Thinq.co.uk . Получено 30 ноября 2011 г. .
  34. ^ "Instinct Software - Instinct Engine SDK". Instinctengine.com. Архивировано из оригинала 13 февраля 2015 г. Получено 4 октября 2013 г.
  35. Мэтт Бутрович (12 февраля 2009 г.). «Взгляд на PhysX в Mirror's Edge». The Tech Report . Получено 6 апреля 2011 г.
  36. Rich Brown (21 сентября 2009 г.). «PhysX от Nvidia делает Batman: Arkham Asylum на ПК стоящим ожидания». cNET.com . Получено 6 апреля 2011 г.
  37. Мэтью Мюррей (2 сентября 2010 г.). «Mafia II: Is Applied PhysX Worth It?». ExtremeTech . Архивировано из оригинала 30 декабря 2010 г. Получено 6 апреля 2011 г.
  38. ^ "PhysX - Lumberyard User Guide". Архивировано из оригинала 22 сентября 2020 г. Получено 15 апреля 2020 г.
  39. ^ Джим Такер (1 марта 2011 г.). "Видео: Autodesk раскрывает новые возможности Maya 2012". cgchannel.com . Получено 6 апреля 2011 г. .
  40. ^ "3ds Max 2012 и Maya 2012 добавляют поддержку PhysX". Beyond3D.com. 1 марта 2011 г. Архивировано из оригинала 8 июля 2017 г. Получено 6 апреля 2011 г.
  41. Рэндалл Хэнд (5 мая 2010 г.). "NVidia PhysX и CUDA в Softimage 2011". Vizworld.com . Получено 6 апреля 2011 г. .
  42. ^ "The Game Creators Integrate AGEIA PhysX Technology into DarkBASIC Professional" (пресс-релиз). The Game Creators. 22 марта 2006 г. Архивировано из оригинала 27 апреля 2006 г. Получено 23 сентября 2006 г.
  43. ^ "Обзор". DX Studio . Worldweaver. Архивировано из оригинала 5 июля 2009 г. Получено 2 ноября 2008 г.
  44. ^ "AGEIA присоединяется к программе разработки бенчмарка 3DMark от Futuremark". FindArticles . CBS Interactive. BusinessWire . 27 сентября 2006 г. Получено 3 ноября 2008 г.
  45. ^ "Обзор моделирования". Центр разработчиков робототехники Microsoft . Microsoft. Март 2012.
  46. ^ Боинг, Адриан. "Двигатели". Физический абстракционный слой . Получено 18 ноября 2007 г.
  47. ^ Pierre-Terdiman (22 марта 2019 г.), GitHub - Pierre-Terdiman/PEEL: Physics Engine Evaluation Lab. , получено 22 марта 2019 г.
  48. ^ "Unreal Engine 4.26 Preview". 24 сентября 2020 г.
  49. ^ «Unity — Руководство: Физика».

Внешние ссылки