08-05-2023
PhysX | |
---|---|
Физический движок | |
Официальный логотип |
|
Разработчики | nVidia (текущий) NovodeX AG, Meqon Research AB, Ageia (бывшие) |
Ключевой программист | Манджу Хежд |
Аппаратные платформы | IBM PC-совместимые компьютеры, PlayStation 3, Xbox 360, Wii |
Поддерживаемые ОС | Windows, Linux, Mac OS X |
Лицензия | коммерческая — доступен для лицензирования |
Последняя версия | 9.10.0514 / 25 октября 2010 года |
Последняя игра на движке | Switchball / 26 июня 2007 года |
Страница PhysX |
PhysX (произносится ['fiziks]) — проприетарное подпрограммное обеспечение (англ. middleware), кроссплатформенный физический движок для симуляции ряда физических явлений, а также комплект средств разработки (SDK) на его основе. Первоначально разрабатывался компанией Ageia для своего физического процессора PhysX. После того, как Ageia была приобретена nVidia, движок перешёл в собственность компании nVidia, которая продолжает его дальнейшую разработку. nVidia адаптировала движок для ускорения физических расчётов на своих графических чипах с архитектурой CUDA. PhysX может также производить вычисления с использованием обычного процессора. В настоящее время PhysX доступен на следующих платформах: Windows, Linux, Mac OS X, Wii, PlayStation 3, Xbox 360 (аппаратное ускорение возможно только на платформе Windows). Движок используется во многих играх и активно предлагается для продажи (лицензирования) всем желающим.
Содержание |
Подпрограммное обеспечение PhysX SDK позволяет разработчикам игр избегать написания собственного программного кода для обработки сложных физических взаимодействий в современных компьютерных играх. 20 июля 2005 года компания Sony лицензировала PhysX SDK для использования в своей игровой приставке седьмого поколения PlayStation 3.[1] PhysX SDK может использоваться не только в среде Microsoft Windows, но также и в Linux, однако поддержка процессора PhysX пока работает только для Windows.
В отличие от большинства других физических движков, которые поставляются и устанавливаются вместе с игрой, PhysX SDK необходимо установить отдельно. Он устанавливается как отдельный драйвер. Если на компьютере установлена плата PhysX, то драйвер PhysX SDK при работе будет использовать её ресурсы. Если же PhysX отсутствует, то вычислительные задачи будут переноситься на центральный процессор.[2]
Физический движок PhysX SDK состоит из трёх главных компонентов по обработке физики:
После установки драйвера PhysX SDK присутствует возможность просмотреть работу этих трёх компонентов движка в действии.
13 февраля 2008 года компания NVIDIA приобрела Ageia, в результате чего PhysX SDK стал собственностью NVIDIA.[3] Поддержка PhysX SDK была интегрирована в структуру CUDA, для которой уже есть множество драйверов под Linux. Таким образом, необходимость в выделенном физическом процессоре PhysX пропала. Поддержка PhysX SDK доступна для всех видеокарт производства Nvidia, начиная с серии 8ххх. Физический движок PhysX SDK теперь известен как NVIDIA PhysX SDK.[4]
В марте 2008 года Nvidia заявила, что сделает PhysX SDK открытым стандартом, доступным для всех желающих.[5] 24 июля 2008 года стало известно, что Nvidia выпустит WHQL-сертифицированный драйвер ForceWare с поддержкой ускорения физики 5 августа 2008 года.[6] [7]
В связи с отменой Havok FX физический движок PhysX SDK является на данный момент единственной технологией с поддержкой аппаратного ускорения.[8]
Хотя PhysX SDK разработан для использования в компьютерных играх, он может быть применён и в других приложениях.
15 августа 2008 года компания NVIDIA выпустила драйвер ForceWare 177.83, который активирует поддержку PhysX в видеокартах серий 8, 9 и 200. Это немедленно расширило пользовательскую базу до более чем 70 миллионов человек во всем мире.[9] [10]
5 декабря 2008 года компания NVIDIA выложила программный пакет «PhysX pack 2», который расширяет список игр с поддержкой продвинутой физики. Этот пакет распространяется бесплатно и занимает 3,5 Гб. В состав пакета входят логическая головоломка Crazy Machines 2, демо-сцена обработки частиц Dark Basic Fluids Demo, демо-сцена работы с мягкими телами Dark Basic PhysX Soft Body Demo и два новых уровня для сетевой игры Warmonger.[11]
15 декабря 2008 года директор AMD по техническому маркетингу Годфри Чен (англ. Godfrey Cheng) заявил, что физический движок NVIDIA PhysX обречен на смерть, как и любая закрытая технология.[12]
22 декабря 2008 года появилась новость о том, что издатель компьютерных игр компания THQ совместно с компанией NVIDIA подписали соглашения о применении технологии NVIDIA PhysX в компьютерных играх, которые будет издавать THQ.[13]
17 марта 2009 года компания NVIDIA опубликовала пресс-релиз, в котором сообщила о заключении договора с японской транснациональной корпорацией Sony о предоставлении инструментария и соответствующего программного обеспечения PhysX разработчикам игр для игровой приставки PlayStation 3. Таким образом все зарегистрированные разработчики, которые имеют официальную лицензию и право создавать игры для PS3, смогут бесплатно получить доступ к полному набору инструментальных средств технологии NVIDIA PhysX, включающий библиотеки, заголовочные файлы, help-файлы, документацию и т. п.[14][15][16]
20 марта 2009 года компания NVIDIA подтвердила, что для всех зарегистрированных разработчиков игр для приставки Nintendo Wii будет бесплатно предоставлен инструментарий PhysX.[17][18]
26 марта 2009 года появилась новость о том, что в онлайновом магазине компании Apple — App Store продаются несколько игр для iPhone с поддержкой PhysX: Big Fun Racing, Space Race и Debris.[19]
NGOHQ.com, запустил аппаратную поддержку 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 другого производителя. |
В начале октября 2009 года стало известно, что участник форума NGOHQ.com под псевдонимом GenL создал бета-версию программного «патча» для драйверов nVidia. Данный неофициальный патч перехватывает и отменяет блокировку работы PhysX, если в системе обнаружен GPU от AMD. На данном этапе работы патч «исправляет» ситуацию только в случае с GPU; поддержка PPU ещё отсутствует. Однако разработчик патча сообщил о продолжении работы над ним.[23][24]
APEX - это высокоуровневая надстройка, которая по замыслу NVIDIA должна упростить внедрение PhysX в игровые проекты и ускорить процесс разработки. APEX позволяет художникам и дизайнерам создавать физические эффекты при минимальном участии программистов. Вместо низкоуровневого API PhysX, разработчику предоставляется набор инструментов для создания определенных физических эффектов на базе готовых APEX-модулей. Использование этих модулей обеспечивается интеграцией фреймвока APEX в игровые движки.[25]
Следующие игры используют физический движок PhysX и могут использовать либо физический процессор PhysX, либо графические процессоры GeForce:[26] [27] [28]
Так как Unreal Engine 3[33] использует физический движок PhysX SDK, то все игры (за исключением Stranglehold и Bioshock) разрабатываемые на этом движке, поддерживают ускорение физики через PhysX PPU.
Sacred 2 поддерживает PhysX только начиная с патча 2.40
Игровые движки, использующие в качестве физической компоненты PhysX SDK:
Nvidia | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
Графические процессоры |
|
||||||||||
Чипсеты материнских плат |
|
||||||||||
Прочее |
|
PhysX.