stringtranslate.com

Физика

Карта BFG Physx

PhysX — это пакет SDK промежуточного программного обеспечения физического движка реального времени с открытым исходным кодом [1] , разработанный 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, является « Сталинское метро» , выпущенное в российских игровых магазинах в сентябре 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 из 3 пунктов , но это изменение распространялось только на компьютерные и мобильные платформы. [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 и Андроид. [11]

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

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

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

ППУ

Физический процессор (PPU) — это процессор, специально разработанный для облегчения вычислительной нагрузки на ЦП, особенно вычислений, связанных с физикой. PPU PhysX предлагались потребителям в виде карт 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]

графический процессор

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

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

Любая видеокарта GeForce с поддержкой CUDA (GPU 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 на процессоре. В статье предполагается, что перезапись PhysX с использованием инструкций SSE может существенно уменьшить разницу в производительности между CPU PhysX и GPU PhysX.

В ответ на анализ Real World Technologies Майк Сколонс, менеджер по продуктам PhysX, сказал [32] , что поддержка SSE осталась позади, поскольку большинство игр сначала разрабатываются для консолей , а затем портируются на ПК. В результате современные компьютеры запускают эти игры быстрее и лучше, чем консоли, даже с минимальной оптимизацией или без нее. Старший менеджер по связям с общественностью 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» . Нвидия . Архивировано из оригинала 24 мая 2011 года . Проверено 3 июня 2011 г.
  3. ^ "Новодекс АГ". ETH Цюрих . Архивировано из оригинала 8 января 2018 года . Проверено 4 декабря 2018 г.
  4. Сезар А. Берардини (12 апреля 2005 г.). «Интервью AGEIA Technologies». Архивировано из оригинала 21 сентября 2011 года . Проверено 8 июня 2011 г.
  5. ^ «Физический движок: PhysX» . МобиИгры . Проверено 6 сентября 2023 г.
  6. ^ «NVIDIA завершает приобретение AGEIA Technologies» (пресс-релиз). Корпорация NVIDIA. 13 февраля 2008 года . Проверено 18 марта 2009 г.
  7. ^ «PhysX для CUDA, поддержка Linux очевидна?». Фороникс . Фороникс Медиа. 14 февраля 2008 года . Проверено 14 февраля 2008 г.
  8. ^ ab «Как восстановить поддержку PPU с помощью последних драйверов PhysX | PhysXInfo.com - Новости PhysX» . PhysXInfo.com. 17 января 2011. Архивировано из оригинала 24 ноября 2011 года . Проверено 30 ноября 2011 г.
  9. ^ «PhysX на GitHub». Нвидия . Проверено 6 марта 2015 г.
  10. ^ «PhysX SDK по состоянию на 7 января 2017 г.» . Нвидия . Архивировано из оригинала 7 января 2017 года . Проверено 3 сентября 2017 г.
  11. ^ abc "PhysX SDK". Разработчик NVIDIA . 28 ноября 2018 года. Архивировано из оригинала 5 декабря 2018 года . Проверено 5 декабря 2018 г.
  12. ^ «Моделирование с открытым исходным кодом расширяется с выпуском NVIDIA PhysX 5» . Нвидия . Архивировано из оригинала 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» . Котаку. 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» . Гамасутра. 19 марта 2009 года . Проверено 30 ноября 2011 г.
  19. ^ "Обзор/предварительный обзор карты Asus 128 МБ 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». Nvidia.com . Проверено 10 декабря 2015 г.
  26. ^ Олин Коулз. «Обзор производительности видеоигры Mafia-II». BenchmarkReviews.com . Проверено 23 августа 2010 г.
  27. ^ "АПЕКС" . Проверено 8 июня 2011 г.
  28. ^ "Категория: APEX - PhysX Wiki" . PhysXInfo.com . Проверено 21 июля 2013 г.
  29. ^ «APEX 1.4.1 — Примечания к выпуску (APEX устарел)» . gameworksdocs.nvidia.com . Проверено 5 декабря 2018 г.
  30. ^ "НВИДИА Флекс". Разработчик NVIDIA . 13 августа 2015 года . Проверено 17 апреля 2019 г.
  31. ^ «PhysX87: недостаток программного обеспечения» . www.realworldtech.com .
  32. Стоукс, Джон (8 июля 2010 г.). «Неужели NVIDIA испортила свою библиотеку игровой физики для процессоров назло Intel?». Arstechnica.com . Проверено 30 ноября 2011 г.
  33. ^ «Nvidia: Мы не мешаем CPU PhysX | think_ | Страница 1» . Thinq.co.uk . Проверено 30 ноября 2011 г.
  34. ^ «Программное обеспечение Instinct — SDK Instinct Engine» . Instinctengine.com. Архивировано из оригинала 13 февраля 2015 года . Проверено 4 октября 2013 г.
  35. Мэтт Бутрович (12 февраля 2009 г.). «Взгляд на PhysX в Mirror's Edge». Технический отчет . Проверено 6 апреля 2011 г.
  36. Рич Браун (21 сентября 2009 г.). «PhysX от Nvidia делает компьютер Batman: Arkham Asylum достойным ожидания» . cNET.com . Проверено 6 апреля 2011 г.
  37. Мэтью Мюррей (2 сентября 2010 г.). «Mafia II: стоит ли применять PhysX?». ЭкстримТех . Проверено 6 апреля 2011 г.
  38. ^ "PhysX - Руководство пользователя Lumberyard" .
  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. ^ «Создатели игр интегрируют технологию AGEIA PhysX в DarkBASIC Professional» (пресс-релиз). Создатели игры. 22 марта 2006 года. Архивировано из оригинала 27 апреля 2006 года . Проверено 23 сентября 2006 г.
  43. ^ «Обзор». DX-студия . Ткач Мира. Архивировано из оригинала 5 июля 2009 года . Проверено 2 ноября 2008 г.
  44. ^ «AGEIA присоединяется к программе разработки тестов производительности 3DMark Futuremark» . Найти статьи . CBS Интерактив. БизнесВайр . 27 сентября 2006 года . Проверено 3 ноября 2008 г.
  45. ^ «Обзор моделирования» . Центр разработчиков робототехники Microsoft . Майкрософт. Март 2012.
  46. ^ Боинг, Адриан. «Двигатели». Слой физической абстракции . Проверено 18 ноября 2007 г.
  47. ^ Пьер-Тердиман (22 марта 2019 г.), GitHub - Пьер-Тердиман/PEEL: Лаборатория оценки физических двигателей. , получено 22 марта 2019 г.
  48. ^ «Предварительный просмотр Unreal Engine 4.26» . 24 сентября 2020 г.
  49. ^ «Unity — Руководство: Физика» .

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