PhysX - PhysX
Оригинальный автор (ы) | NovodeX AG (ETH Цюрих ) |
---|---|
Разработчики) | Корпорация Nvidia (2008-настоящее время) Ageia (2004-2008) NovodeX AG (2001-2004) |
Стабильный выпуск | 19.09.0218 / 5 марта 2019 г. |
Репозиторий | 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 для многопоточного моделирования физики. Он поддерживает динамика твердого тела, динамика мягкого тела (подобно моделирование ткани, включая рваную и уплотненную ткань), тряпичные куклы и контроллеры персонажей, динамика автомобиля, частицы и объемное моделирование жидкости.
Аппаратное ускорение
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 включает:
- Активные миры (AW), платформа виртуальной реальности 3D с клиентом, работающим в Windows[нужна цитата ]
- Amazon Lumberyard, движок для разработки 3D-игр, разработанный Amazon[36]
- Autodesk 3ds Max, Autodesk Maya и Autodesk Softimage, компьютерная анимация апартаменты[37][38][39]
- DarkBASIC Professional (с обновлением DarkPHYSICS), язык программирования ориентирован на разработку игр[40]
- DX Studio, интегрированная среда разработки для создания интерактивной 3D-графики[41]
- Futuremark с 3DMark06 и Vantage инструменты для сравнительного анализа[42]
- Microsoft Robotics Studio, среда для управления роботом и моделирования[43]
- Nvidia SuperSonic Sled и Raging Rapids Ride, демонстрации технологий
- ОГРЭ (через оболочку NxOgre), Открытый исходный код движок рендеринга[нужна цитата ]
- В Слой абстракции физики, физическое моделирование API система абстракции (обеспечивает КОЛЛАДА и Редактор Scythe Physics поддержка PhysX)[44]
- Rayfire, плагин для Autodesk 3ds Max что позволяет моделировать трещины и другие физические процессы[нужна цитата ]
- Лаборатория Physics Engine Evaluation Lab - инструмент, предназначенный для оценки, сравнения и тестирования физических движков. [45]
- Unreal Engine программное обеспечение для разработки игр от Эпические игры. В Unreal Engine 4.26 и более поздних версиях PhysX официально объявлен устаревшим. [46]
- Unity (игровой движок) пользователя Unity ApS.
Смотрите также
- DirectX
- Bullet (программное обеспечение)
- Havok (программное обеспечение)
- Open Dynamics Engine
- Newton Game Dynamics
- OpenGL
- Vortex (программное обеспечение)
- AGX Multiphysics
Рекомендации
- ^ Фингас, Джон (3 декабря 2018 г.). «Любой может использовать движок моделирования физики NVIDIA». Engadget. Получено 3 декабря, 2018.
- ^ а б c «NVIDIA объявляет о выпуске PhysX SDK V3». Nvidia. Архивировано из оригинал 24 мая 2011 г.. Получено 3 июня, 2011.
- ^ «Новодекс АГ». ETH Zürich. Архивировано из оригинал 8 января 2018 г.. Получено 4 декабря, 2018.
- ^ Сезар А. Берардини (12 апреля 2005 г.). "Интервью AGEIA Technologies". Архивировано из оригинал 21 сентября 2011 г.. Получено 8 июня, 2011.
- ^ «NVIDIA завершает приобретение AGEIA Technologies» (Пресс-релиз). Корпорация NVIDIA. 13 февраля 2008 г.. Получено 18 марта, 2009.
- ^ "PhysX для CUDA, поддержка Linux дана?". Фороникс. Phoronix Media. 14 февраля 2008 г.. Получено 14 февраля, 2008.
- ^ а б "Как восстановить поддержку PPU с помощью последних версий драйверов PhysX | PhysXInfo.com - PhysX News". PhysXInfo.com. 17 января 2011 г.. Получено 30 ноября, 2011.
- ^ "PhysX на GitHub". Nvidia. Получено 6 марта, 2015.
- ^ «PhysX SDK от 7 января 2017 г.». Nvidia. Архивировано из оригинал 7 января 2017 г.. Получено 3 сентября, 2017.
- ^ а б c "PhysX SDK". Разработчик NVIDIA. 28 ноября 2018 г. Архивировано с оригинал 5 декабря 2018 г.. Получено 5 декабря, 2018.
- ^ «Sony Computer Entertainment заключает стратегическое лицензионное соглашение с AGEIA» (PDF) (Пресс-релиз). Sony Computer Entertainment, Inc. 21 июля 2005 г. Архивировано с оригинал (PDF) 11 марта 2006 г.. Получено 23 августа, 2006.
- ^ «Playstation 3 получает бесплатный PhysX от Nvidia». Котаку.
- ^ Лоу, Скотт (7 марта 2013 г.). «Nvidia объявляет о поддержке PhysX для PlayStation 4».
- ^ «PhysX - Обзор - GeForce». Nvidia.com. Получено 30 ноября, 2011.
- ^ «NVIDIA объявляет о поддержке PhysX для игровой консоли Microsoft Xbox One». Nvidia.com. Архивировано из оригинал 9 ноября 2014 г.. Получено 9 ноября, 2014.
- ^ «Новости - Pre-GDC: Nvidia PhysX одобрен для разработчиков Wii». Гамасутра. 19 марта 2009 г.. Получено 30 ноября, 2011.
- ^ "Обзор / предварительный просмотр карты Asus 128mb PhysX". 12 июля 2006 г.
- ^ «AGEIA и BFG Technologies подписали соглашение о розничной торговле». Архивировано из оригинал 26 апреля 2006 г.
- ^ "Обзор карты BFG Ageia PhysX". 1 октября 2007 г.
- ^ "AGEIA PhysX - видеокарта - AGEIA PhysX - 128 МБ спецификации". Cnet.
- ^ «ELSA объединяется с Ageia».
- ^ "Статьи на английском языке от оборудования для компьютерных игр". www.pcgameshardware.com. 26 января 2009 г.
- ^ а б "Часто задаваемые вопросы по PhysX". Nvidia.com. Получено 10 декабря, 2015.
- ^ Олин Коулз. «Обзор производительности видеоигр Mafia-II». BenchmarkReviews.com. Получено 23 августа, 2010.
- ^ «АПЕКС». Получено 8 июня, 2011.
- ^ "Категория: APEX - PhysX Wiki". PhysXInfo.com. Получено 21 июля, 2013.
- ^ «APEX 1.4.1 - Примечания к выпуску (APEX устарел)». gameworksdocs.nvidia.com. Получено 5 декабря, 2018.
- ^ «NVIDIA FleX». Разработчик NVIDIA. 13 августа 2015 г.. Получено 17 апреля, 2019.
- ^ "PhysX87: Программный дефицит". www.realworldtech.com.
- ^ Стоукс, Джон (8 июля 2010 г.). «Неужели NVIDIA повредила свою библиотеку игровой физики ЦП в назло Intel?». Arstechnica.com. Получено 30 ноября, 2011.
- ^ «Nvidia: мы не ограничиваем возможности процессора PhysX | thinq_ | Страница 1». Thinq.co.uk. Получено 30 ноября, 2011.
- ^ «Программное обеспечение Instinct - SDK Instinct Engine». Instinctengine.com. Архивировано из оригинал 13 февраля 2015 г.. Получено 4 октября, 2013.
- ^ Мэтт Бутрович (12 февраля 2009 г.). "Взгляд на PhysX в Mirror's Edge". Технический отчет. Получено 6 апреля, 2011.
- ^ Рич Браун (21 сентября 2009 г.). «PhysX от Nvidia делает PC Batman: Arkham Asylum достойным ожидания». cNET.com. Получено 6 апреля, 2011.
- ^ Мэтью Мюррей (2 сентября 2010 г.). "Mafia II: стоит ли этого прикладного PhysX?". ExtremeTech. Получено 6 апреля, 2011.
- ^ https://docs.aws.amazon.com/lumberyard/latest/userguide/gems-system-gem-physx.html
- ^ Джим Такер (1 марта 2011 г.). «Видео: Autodesk представляет новые функции Maya 2012». cgchannel.com. Получено 6 апреля, 2011.
- ^ «3ds Max 2012 и Maya 2012 добавляют поддержку PhysX». Beyond3D.com. 1 марта 2011 г. Архивировано с оригинал 8 июля 2017 г.. Получено 6 апреля, 2011.
- ^ Рэндалл Хэнд (5 мая 2010 г.). «NVidia PhysX и CUDA в Softimage 2011». Vizworld.com. Получено 6 апреля, 2011.
- ^ «Создатели игры интегрируют технологию AGEIA PhysX в DarkBASIC Professional» (Пресс-релиз). Создатели игры. 22 марта 2006 г. Архивировано с оригинал 27 апреля 2006 г.. Получено 23 сентября, 2006.
- ^ "Обзор". DX Studio. Worldweaver. Архивировано из оригинал 5 июля 2009 г.. Получено 2 ноября, 2008.
- ^ «AGEIA присоединяется к программе разработки тестов 3DMark от Futuremark». НайтиСтатьи. CBS Interactive. BusinessWire. 27 сентября 2006 г.. Получено 3 ноября, 2008.
- ^ «Обзор моделирования». Центр разработчиков робототехники Microsoft. Microsoft.
- ^ Боинг, Адриан. «Двигатели». Слой абстракции физики. Получено 18 ноября, 2007.
- ^ Пьер-Тердиман (22 марта 2019 г.), GitHub - Пьер-Тердиман / PEEL: Лаборатория оценки физического движка., получено 22 марта, 2019
- ^ https://forums.unrealengine.com/unreal-engine/announcements-and-releases/1814986-unreal-engine-4-26-preview