PhysX
- 1 year ago
- 0
- 0
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 ). Движок используется во многих играх и активно предлагался для продажи (лицензирования) всем желающим, для различных платформ .
С 3 декабря 2018 года исходный код PhysX был перелицензирован под открытой лицензией BSD-3 .
Подпрограммное обеспечение PhysX SDK позволяет разработчикам игр избегать написания собственного программного кода для обработки сложных физических взаимодействий в современных компьютерных играх . 20 июля 2005 года компания Sony лицензировала PhysX SDK для использования в своей игровой приставке седьмого поколения PlayStation 3 . PhysX SDK может использоваться не только в среде Microsoft Windows , но и также в Linux , однако поддержка процессора PhysX пока работает только для Windows.
В отличие от большинства других физических движков, которые поставляются и устанавливаются вместе с игрой, PhysX SDK необходимо установить отдельно. Он устанавливается как отдельный драйвер . Если на компьютере установлена плата PhysX , то драйвер PhysX SDK при работе будет использовать её ресурсы. Если же PhysX отсутствует, то вычислительные задачи будут переноситься на центральный процессор .
Физический движок PhysX SDK состоит из трёх главных компонентов по обработке физики:
После установки драйвера PhysX SDK присутствует возможность просмотреть работу этих трёх компонентов движка в действии.
13 февраля 2008 года компания NVIDIA приобрела Ageia , в результате чего PhysX SDK стал собственностью NVIDIA . Поддержка PhysX SDK была интегрирована в структуру CUDA , для которой уже есть множество драйверов под Linux . Таким образом, необходимость в выделенном физическом процессоре PhysX отпала. Поддержка PhysX SDK доступна для всех видеокарт производства Nvidia , начиная с серии 8ххх. Физический движок PhysX SDK теперь известен как NVIDIA PhysX SDK .
В марте 2008 года Nvidia заявила, что сделает PhysX SDK открытым стандартом, доступным для всех желающих. 24 июля 2008 года стало известно, что Nvidia выпустит WHQL-сертифицированный драйвер ForceWare с поддержкой ускорения физики 5 августа 2008 года .
В связи с прекращением поддержки Havok FX физический движок PhysX SDK являлся до 2010 года единственной технологией с поддержкой аппаратного ускорения. Начальную поддержку технологии аппаратного ускорения с помощью OpenCL получил другой физический движок Bullet , благодаря активной поддержке компании AMD .
Хотя PhysX SDK разработан для использования в компьютерных играх, он может быть применён и в других приложениях.
15 августа 2008 года компания NVIDIA выпустила драйвер ForceWare 177.83 с поддержкой PhysX в видеокартах GeForce серий 8, 9 и 200. Это немедленно расширило пользовательскую базу до более чем 70 миллионов человек во всем мире.
4 марта 2015 года компания NVIDIA объявила о доступности полных исходных кодов PhysX. Код движка поставлется в составе бесплатного PhysX SDK, подготовленного для Windows , Linux , macOS и Android
28 июня 2008 года ( англ. Eran Badit), участник ресурса от 7 июля 2008 на Wayback Machine , запустил аппаратную поддержку PhysX SDK на видеокарте Radeon HD 3870 . Вначале компания NVIDIA отреагировала на инициативу Эрана Бэдита негативно, заявив, что это невозможно. Однако 9 июля 2008 года предложили вступить в команду разработчиков nVidia , открыли доступ к документации, SDK , аппаратному обеспечению и дали контакты инженеров. Было обещано, что модифицированные драйверы для карт ATI скоро станут доступны для загрузки. По другим данным, в свою очередь, компания ATI официально не поддержала инициативу . Для написания официальных (не модифицированных) драйверов 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 — это высокоуровневая надстройка, которая по замыслу NVIDIA должна упростить внедрение PhysX в игровые проекты и ускорить процесс разработки. APEX позволяет художникам и дизайнерам создавать физические эффекты при минимальном участии программистов. Вместо низкоуровневого API PhysX, разработчику предоставляется набор инструментов для создания определённых физических эффектов на базе готовых APEX-модулей. Использование этих модулей обеспечивается интеграцией фреймворка APEX в игровые движки.
Игровые движки , использующие в качестве физической подсистемы компоненты PhysX SDK:
{{
cite press release
}}
: Проверьте значение даты:
|date=
(
справка
)