PhysX
PhysX (МФА: [ˈfɪzɛks], произносится [фи́зикс]) — связующее программное обеспечение (англ. middleware), кроссплатформенный физический движок для симуляции ряда физических явлений, а также комплект средств разработки (SDK) на его основе. Первоначально разрабатывался компанией Ageia для своего физического процессора PhysX. После того, как Ageia была приобретена nVidia, движок перешёл в собственность компании nVidia, которая продолжает его дальнейшую разработку. nVidia адаптировала движок для ускорения физических расчётов на своих графических чипах с архитектурой CUDA. PhysX может также производить вычисления с использованием обычного процессора. В настоящее время PhysX доступен на следующих платформах: Windows, Linux, macOS, Wii, PlayStation 3, Xbox 360, PlayStation 4, Xbox One, Android, iOS (аппаратное ускорение возможно только на платформе Windows). Движок используется во многих играх и активно предлагался для продажи (лицензирования) всем желающим, для различных платформ[1][2][3][4][5][6].
PhysX | |
---|---|
| |
Тип | физический движок |
Разработчики |
Nvidia (текущий) NovodeX AG, Meqon Research AB, Ageia (бывшие) |
Ключевой программист | Манджу Хежд |
Аппаратные платформы | IBM PC-совместимые компьютеры, PlayStation 3, Xbox 360, Wii, PlayStation 4, Xbox One |
Поддерживаемые ОС | Windows, Linux, macOS, Android, iOS |
Лицензия | BSD-3 |
Последняя версия | 9.23.1019 |
developer.nvidia.com/phy… nvidia.com/de-de/ |
С 3 декабря 2018 года исходный код PhysX был перелицензирован под открытой лицензией BSD-3[7][8].
Описание
правитьПодпрограммное обеспечение PhysX SDK позволяет разработчикам игр избегать написания собственного программного кода для обработки сложных физических взаимодействий в современных компьютерных играх. 20 июля 2005 года компания Sony лицензировала PhysX SDK для использования в своей игровой приставке седьмого поколения PlayStation 3.[9] PhysX SDK может использоваться не только в среде Microsoft Windows, но и также в Linux, однако поддержка процессора PhysX пока работает только для Windows.
В отличие от большинства других физических движков, которые поставляются и устанавливаются вместе с игрой, PhysX SDK необходимо установить отдельно. Он устанавливается как отдельный драйвер. Если на компьютере установлена плата PhysX, то драйвер PhysX SDK при работе будет использовать её ресурсы. Если же PhysX отсутствует, то вычислительные задачи будут переноситься на центральный процессор.[10]
Физический движок PhysX SDK состоит из трёх главных компонентов по обработке физики:
- обработка твёрдых тел (англ. rigid body);
- обработка тканей (англ. cloth);
- обработка жидкостей (англ. fluid);
После установки драйвера PhysX SDK присутствует возможность просмотреть работу этих трёх компонентов движка в действии.
13 февраля 2008 года компания NVIDIA приобрела Ageia, в результате чего PhysX SDK стал собственностью NVIDIA.[11] Поддержка PhysX SDK была интегрирована в структуру CUDA, для которой уже есть множество драйверов под Linux. Таким образом, необходимость в выделенном физическом процессоре PhysX отпала. Поддержка PhysX SDK доступна для всех видеокарт производства Nvidia, начиная с серии 8ххх. Физический движок PhysX SDK теперь известен как NVIDIA PhysX SDK.[12]
В марте 2008 года Nvidia заявила, что сделает PhysX SDK открытым стандартом, доступным для всех желающих.[13] 24 июля 2008 года стало известно, что Nvidia выпустит WHQL-сертифицированный драйвер ForceWare с поддержкой ускорения физики 5 августа 2008 года.[14][15]
В связи с прекращением поддержки Havok FX физический движок PhysX SDK являлся до 2010 года единственной технологией с поддержкой аппаратного ускорения.[16] Начальную поддержку технологии аппаратного ускорения с помощью OpenCL получил другой физический движок Bullet, благодаря активной поддержке компании AMD.
Хотя PhysX SDK разработан для использования в компьютерных играх, он может быть применён и в других приложениях.
15 августа 2008 года компания NVIDIA выпустила драйвер ForceWare 177.83 с поддержкой PhysX в видеокартах GeForce серий 8, 9 и 200. Это немедленно расширило пользовательскую базу до более чем 70 миллионов человек во всем мире.[17][18]
4 марта 2015 года компания NVIDIA объявила о доступности полных исходных кодов PhysX. Код движка поставлется в составе бесплатного PhysX SDK, подготовленного для Windows, Linux, macOS и Android[19]
28 июня 2008 года Эран Бэдит (англ. Eran Badit), участник ресурса NGOHQ.com Архивная копия от 7 июля 2008 на Wayback Machine, запустил аппаратную поддержку PhysX SDK на видеокарте Radeon HD 3870.[20] Вначале компания NVIDIA отреагировала на инициативу Эрана Бэдита негативно, заявив, что это невозможно. Однако 9 июля 2008 года Бэдиту предложили вступить в команду разработчиков nVidia, открыли доступ к документации, SDK, аппаратному обеспечению и дали контакты инженеров.[21] Было обещано, что модифицированные драйверы для карт ATI скоро станут доступны для загрузки. По другим данным, в свою очередь, компания ATI официально не поддержала инициативу Бэдита.[22] Для написания официальных (не модифицированных) драйверов ATI с поддержкой PhysX компания nVidia предлагает лицензировать аппаратную поддержку CUDA, которая включает в себя PhysX. Однако технология CUDA конкурирует с технологией AMD FireStream.
В графических драйверах nVidia версии 186 была заблокирована возможность совместной работы двух графических карт, на которые установлены графические процессоры от разных производителей (AMD и nVidia). Таким образом, если раньше была возможность разделения вычислений по разным графическим картам (например, карта с процессором nVidia может рассчитывать игровую физику, а карта с процессором AMD — заниматься рендерингом изображения), то с версии 186, если в системе обнаружен GPU другого производителя (даже интегрированный в чипсет), то эта возможность блокируется. Кроме того, движок PhysX новой версии не поддерживает специализированные физические ускорители (PPU) PhysX, разработанные ещё Ageia, если в системе обнаружен GPU, выпущенный не NVIDIA.
Представитель nVidia объяснил эту ситуацию следующим образом:
PhysX является открытым программным стандартом, и любая компания может свободно разрабатывать поддерживающее его аппаратное или программное обеспечение. NVIDIA поддерживает ускорение физических расчетов силами GPU NVIDIA, когда GPU NVIDIA используется и для графики... По многим причинам — частично из-за затрат на разработку, частично из-за затрат на тестирование и частично по деловым мотивам NVIDIA не будет поддерживать ускорение физических расчетов силами GPU, если графическая обработка выполняется GPU другого производителя.
APEX PhysX
правитьAPEX — это высокоуровневая надстройка, которая по замыслу NVIDIA должна упростить внедрение PhysX в игровые проекты и ускорить процесс разработки. APEX позволяет художникам и дизайнерам создавать физические эффекты при минимальном участии программистов. Вместо низкоуровневого API PhysX, разработчику предоставляется набор инструментов для создания определённых физических эффектов на базе готовых APEX-модулей. Использование этих модулей обеспечивается интеграцией фреймворка APEX в игровые движки.
Игровые движки
правитьСписок примеров в этой статье не основывается на авторитетных источниках, посвящённых непосредственно предмету статьи. |
Игровые движки, использующие в качестве физической подсистемы компоненты PhysX SDK:
См. также
правитьПримечания
править- ↑ Роман Епишин. THQ голосует за физику . Игромания (22 декабря 2008). Дата обращения: 23 декабря 2008. Архивировано из оригинала 14 мая 2013 года.
- ↑ Павел Шубский. PlayStation 3 получит PhysX . Игромания (18 марта 2009). Дата обращения: 18 марта 2009. Архивировано из оригинала 22 марта 2009 года.
- ↑ PhysX для PS3-игр . GameTech (18 марта 2009). Дата обращения: 18 марта 2009. Архивировано 16 марта 2012 года.
- ↑ Александр Будик. NVIDIA PhysX появится на Sony PS3 . 3DNews (18 марта 2009). Дата обращения: 25 марта 2009. Архивировано 23 марта 2009 года.
- ↑ Евгений Курочкин. NVIDIA PhysX теперь и на Wii . Страна Игр (20 марта 2009). Дата обращения: 21 марта 2009. Архивировано 24 мая 2013 года.
- ↑ Александр Шеметов. Nintendo говорит "да" [[NVIDIA]] PhysX . 3DNews (21 марта 2009). Дата обращения: 25 марта 2009. Архивировано 24 марта 2009 года.
- ↑ Nvidia сошла с ума и открывает PhysX под BSD-3 . Дата обращения: 4 декабря 2018. Архивировано 4 декабря 2018 года.
- ↑ NVIDIA Extends PhysX for High-Fidelity Simulations, Goes Open Source . Дата обращения: 4 декабря 2018. Архивировано 4 декабря 2018 года.
- ↑ "Sony Computer Entertainment Enters Into Strategic Licensing Agreement With AGEIA" (Press release) (англ.). Sony Computer Entertainment, Inc. 2005-07-21. Архивировано из оригинала 16 февраля 2008. Дата обращения: 23 августа 2006.
- ↑ PhysX For CUDA, Linux Support A Given? (англ.). phoronix.com. Дата обращения: 14 февраля 2008. Архивировано 16 марта 2012 года.
- ↑ NVIDIA Completes Acquisition of AGEIA Technologies: Financial News — Yahoo! Finance Архивная копия от 17 апреля 2008 на Wayback Machine (недоступная ссылка с 14-05-2013 [4194 дня] — история)
- ↑ Александр Шеметов. Кто лучше "ускоряет физику", GeForce 9500 GT или Core 2 Extreme QX9770? 3DNews (4 августа 2008). Дата обращения: 4 августа 2008. Архивировано 7 августа 2008 года.
- ↑ Nvidia offers PhysX support to AMD / ATI Архивировано 13 марта 2008 года. (недоступная ссылка с 14-05-2013 [4194 дня] — история)
- ↑ Павел "xAnder" Шубский. WHQL-драйвер NVIDIA для PhysX – в начале августа . Игромания (24 июля 2008). Дата обращения: 27 июля 2008. Архивировано из оригинала 28 июля 2008 года.
- ↑ Александр Шеметов. Новые драйверы [[NVIDIA]] PhysX: прирост около 25% в 3DMark Vantage . 3DNews (23 июня 2008а). Дата обращения: 4 августа 2008. Архивировано 2 августа 2008 года.
- ↑ Shilov, Anton GPU Physics Dead for Now, Says AMD’s Developer Relations Chief. Nvidia’s Chief Exec Predicts “Negative Synergies” with Intel’s Acquisition of Havok . Xbit Laboratories (19 ноября 2007). Дата обращения: 26 ноября 2007. Архивировано 16 февраля 2012 года.
- ↑ NVIDIA выпустила драйвер для аппаратной поддержки PhysX . GameDev.ru (15 августа 2008). Дата обращения: 27 октября 2008. Архивировано 5 января 2012 года.
- ↑ Винни Весси. Почти бесплатная физика . RusDoc.ru (14 октября 2008). Дата обращения: 19 октября 2008. Архивировано 16 февраля 2012 года.
- ↑ Latest PhysX Source Code Now Available Free on GitHub (4 марта 2015). Дата обращения: 5 марта 2015. Архивировано 28 марта 2015 года.
- ↑ BlackCat. PhysX взломан и больше не является эксклюзивом для карт [[NVIDIA]] . IXBT.com (28 июня 2008). Дата обращения: 9 июля 2008. Архивировано 29 июня 2009 года.
- ↑ Павел "xAnder" Шубский. NVIDIA откроет поддержку PhysX для ATI Radeon? Игромания (9 июля 2008). Дата обращения: 9 июля 2008. Архивировано из оригинала 3 сентября 2009 года.
- ↑ Взломщика драйверов [[nVidia]] пригласила на работу... компания [[nVidia]] . Tom's Hardware (9 июля 2008). Дата обращения: 13 июня 2009. Архивировано 10 марта 2013 года.
Ссылки
править- Собственный сайт Nvidia для разработчиков PhysX. (недоступная ссылка)
- NVIDIA PhysX Архивная копия от 28 октября 2008 на Wayback Machine (рус.) — страница PhysX на официальном сайте nVidia
- PhysXInfo.com Архивная копия от 26 августа 2009 на Wayback Machine (англ.) — крупнейший веб-сайт, посвящённый технологии PhysX
- Ageia PhysX Drivers — страница со списком всех драйверов, выпущенных Ageia для игровых ускорителей физических расчетов Ageia PhysX
- Сайт сообщества разработчиков игр с использованием технологии PhysX Архивная копия от 2 октября 2019 на Wayback Machine на движке Unity3D
Отдельные статьи
- Алексей Берилло. NVIDIA PhysX — аппаратно ускоренные физические эффекты . iXBT.com (11 марта 2010). — Тестирование игр, максимально интенсивно использующих PhysX, а также аналитические и описательные материалы. Дата обращения: 11 марта 2010. Архивировано 14 декабря 2011 года.
- Алексей Горбунов, Иван Нечесов. Обзор технологии NVIDIA PhysX . Игромания (журнал) (9 декабря 2008). — Аналитическая статья, в которой описывается технология и проводятся её тестирования. Дата обращения: 10 декабря 2008. Архивировано из оригинала 13 декабря 2008 года.
- Виталий Царук. NVIDIA PhysX: физические эффекты силами видеокарты . журнал «Домашний ПК» (12 ноября 2008). Дата обращения: 2 августа 2009. Архивировано 16 марта 2012 года.
- Александр Залога. Введение в физический движок AGEIA PhysX 3. UralDev (3 апреля 2007). Дата обращения: 3 апреля 2010. Архивировано 16 марта 2012 года.
- ATI Physics / Видеокарты Архивная копия от 18 июля 2021 на Wayback Machine