PhysX - PhysX

PhysX
Логотип NVIDIA PhysX.png
Оригинальный автор (ы)NovodeX AG (ETH Цюрих )
Разработчики)Корпорация Nvidia
(2008-настоящее время)
Ageia
(2004-2008)
NovodeX AG
(2001-2004)
Стабильный выпуск
19.09.0218 / 5 марта 2019 г. (2019-03-05)
Репозиторийhttps://github.com/NVIDIAGameWorks/PhysX
Операционная системаМайкрософт Виндоус, macOS, Linux, PlayStation 2, PlayStation 3, PlayStation 4, Xbox 360, Xbox One, Wii, iOS, Android
ТипФизическое моделирование
ЛицензияBSD-3
Интернет сайтСайт разработчика Nvidia PhysX

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

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

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

История

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

Первой игрой, в которой использовался PhysX, была Ставка на солдата: Кровавый спорт (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 с 3 пунктами, но это изменение коснулось только компьютеров и мобильных платформ.[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.
(ПК) На верхнем снимке экрана показано, как моделируется мусор в Мафия 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 и вместо этого сосредоточилась на ГПГПУ возможности современных графических процессоров.

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

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

APEX

Технология Nvidia APEX - это многоплатформенная масштабируемая структура динамики, построенная на основе PhysX SDK. Впервые он был представлен в Мафия 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 использует унифицированное представление частиц для всех типов объектов, он позволяет создавать новые эффекты, в которых различные моделируемые вещества могут взаимодействовать друг с другом. плавно. Такие универсальные решатели физики являются основным продуктом офлайн компьютерная графика мир, где такие инструменты, как Autodesk Maya это nCloth и Softimage Лагоа широко используются. Цель FleX - использовать мощь графических процессоров для переноса возможностей этих автономных приложений в компьютерную графику в реальном времени.[28]

Критика со стороны технологий реального мира

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), Единство, Gamebryo, Зрение (начиная с версии 6), Instinct Engine,[32] Panda3D, Дизель, Крутящий момент, HeroEngine и BigWorld.[23]

Как один из немногих основных физических движков, он используется во многих играх, таких как Ведьмак 3: Дикая Охота, Варфрейм, Киллинг этаж 2, Fallout 4, Бэтмен: Рыцарь Аркхема, Borderlands 2 и т. д. В большинстве этих игр для обработки моделирования физики используется центральный процессор.

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

PhysX в другом ПО

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

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

Рекомендации

  1. ^ Фингас, Джон (3 декабря 2018 г.). «Любой может использовать движок моделирования физики NVIDIA». Engadget. Получено 3 декабря, 2018.
  2. ^ а б c «NVIDIA объявляет о выпуске PhysX SDK V3». Nvidia. Архивировано из оригинал 24 мая 2011 г.. Получено 3 июня, 2011.
  3. ^ «Новодекс АГ». 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. ^ а б "Как восстановить поддержку PPU с помощью последних версий драйверов PhysX | PhysXInfo.com - PhysX News". PhysXInfo.com. 17 января 2011 г.. Получено 30 ноября, 2011.
  8. ^ "PhysX на GitHub". Nvidia. Получено 6 марта, 2015.
  9. ^ «PhysX SDK от 7 января 2017 г.». Nvidia. Архивировано из оригинал 7 января 2017 г.. Получено 3 сентября, 2017.
  10. ^ а б 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. ^ "Статьи на английском языке от оборудования для компьютерных игр". www.pcgameshardware.com. 26 января 2009 г.
  23. ^ а б "Часто задаваемые вопросы по 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. ^ Мэтт Бутрович (12 февраля 2009 г.). "Взгляд на PhysX в Mirror's Edge". Технический отчет. Получено 6 апреля, 2011.
  34. ^ Рич Браун (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. ^ Рэндалл Хэнд (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. ^ Пьер-Тердиман (22 марта 2019 г.), GitHub - Пьер-Тердиман / PEEL: Лаборатория оценки физического движка., получено 22 марта, 2019
  46. ^ https://forums.unrealengine.com/unreal-engine/announcements-and-releases/1814986-unreal-engine-4-26-preview

внешняя ссылка