0

Зачем нужен physx nvidia

Немного истории

Американская компания nVidia Corporation произвела на свет множество инноваций, как в технической сфере, так и в сфере программного обеспечения, однако, мало какая новая наработка имела такое же значение, как физический движок nVidia PhysX. Изначально, PhysX разрабатывался не nVidia, а небольшой калифорнийской компанией Ageia Technologies. Тогда ещё PhysX не имел большинства своих возможностей, но потенциал был виден невооружённым глазом.

В феврале 2008 года Ageia Technologies была приобретена nVidia Corporation и полностью вошла в её состав. Разумеется, все наработки Ageia Technologies также перешли в полную собственность nVidia. Руководством последней было принято решение переименовать PhysX в nVidia PhysX и сосредоточится на его активной разработке. Движок был оптимизирован для ускоренного проведения физических расчётов на графических чипах, имеющих также разработанную nVidia архитектуру CUDA. Кроме всего прочего, nVidia PhysX может производить вычисления и расчёты не только на графических чипах, но и на самых обычных центральных процессорах. На сегодняшний день данный физический движок доступен на всех популярнейших платформах, таких как Windows, Mac OS, Linux, Xbox 360, PlayStation 3 и даже Wii, однако аппаратное ускорение доступно только на платформе Windows.

Что такое nVidia PhysX

Чем же по своей сути является nVidia PhysX и благодаря чему он получил такую широкую популярность? PhysX является кроссплатформенным физическим движком, избавляющим игровых разработчиков от необходимости долгой, дорогой и трудоёмкой самостоятельной разработки собственного программного обеспечения, отвечающего за физическое взаимодействие различных тел.

Пример работы движка можно nVidia PhysX

Отличительной особенностью nVidia PhysX является то, что его необходимо скачивать и устанавливать отдельно, в то время как другие физические движки устанавливаются вместе с самой игрой. Сам движок состоит из трёх частей:

  • Rigid body, отвечающий за обработку твёрдых тел;
  • Cloth, отвечающий за обработку тканей;
  • Fluid, отвечающий за обработку различных жидкостей.

Каждый из этих компонентов реализован на высшем уровне. Например, Cloth обеспечивает максимально реалистичное поведение тканей при взаимодействии с другими тканями и иными предметами, а также их разрывы и разделение на несколько частей. Ярким примером может служить игра Mirror’s Edge, где благодаря этой технологии была реализована реалистичное физическое поведение не только тканей, но и брезента, строительной плёнки и других подобных материалов. На сегодняшний день nVidia PhysX широко используется в более чем 150 игровых проектов. Можно с уверенностью сказать, что nVidia PhysX является самым широко распространённым физическим движком в мире.

PhysX

Официальный логотип
Тип Физический движок
Разработчики nVidia (текущий)
NovodeX AG, Meqon Research AB, Ageia (бывшие)
Ключевой программист Манджу Хежд
Аппаратные платформы IBM PC-совместимые компьютеры, PlayStation 3, Xbox 360, Wii, PlayStation 4, Xbox One
Поддерживаемые ОС Windows, Linux, Mac OS X, Android, IOS
Лицензия BSD-3
Последняя версия 9.19.0218
Официальный сайт

PhysX (МФА: [ˈfɪzɛks] , произносится [фи́зикс]) — связующее программное обеспечение (англ. middleware ), кроссплатформенный физический движок для симуляции ряда физических явлений, а также комплект средств разработки (SDK) на его основе. Первоначально разрабатывался компанией Ageia для своего физического процессора PhysX. После того, как Ageia была приобретена nV >[1] [2] [3] [4] [5] [6] .

Читайте также:  Ближайшие события в космосе

С 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 состоит из трёх главных компонентов по обработке физики:

После установки драйвера PhysX SDK присутствует возможность просмотреть работу этих трёх компонентов движка в действии.

13 февраля 2008 года компания NV >[11] Поддержка PhysX SDK была интегрирована в структуру CUDA, для которой уже есть множество драйверов под Linux. Таким образом, необходимость в выделенном физическом процессоре PhysX отпала. Поддержка PhysX SDK доступна для всех видеокарт производства Nv >[12]

В связи с прекращением поддержки Havok FX физический движок PhysX SDK являлся до 2010 года единственной технологией с поддержкой аппаратного ускорения. [16] Начальную поддержку технологии аппаратного ускорения с помощью OpenCL получил другой физический движок Bullet, благодаря активной поддержке компании AMD.

Хотя PhysX SDK разработан для использования в компьютерных играх, он может быть применён и в других приложениях.

Возможность запуска PhysX при сторонних GPU [ править | править код ]

28 июня 2008 года Эран Бэдит (англ. Eran Badit ), участник ресурса NGOHQ.com, запустил аппаратную поддержку PhysX SDK на видеокарте Radeon HD 3870. [20] Вначале компания NV >[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:

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

Одним из проприетарных движков для симуляции физики трехмерных объектов является PhysX от NVidia. В отличие от большинства современных движков, которые входят в состав дистрибутива с игрой, PhysX требуется инсталлировать отдельно. Устанавливается PhysX в качестве дискретного драйвера. Также для обработки графики может использоваться специальная плата, установленная отдельно. В этом случае драйвер движка во время работы будет задействовать ее ресурсы. В случае же отсутствия такого аппаратного компонента, все задачи, связанные с вычислениями, будут возложены «на плечи» центрального процессора.

Непосредственно движок Физикс включает в себя три основных компонента, осуществляющие обработку физики:

  • обработку жидкостей;
  • обработку тканей;
  • обработку твердых тел.

В случае инсталляции библиотеки PhysX SDK вы можете собственноручно понаблюдать за работой этих трех составных частей движка в отношении обработки полигональных объектов.

PhysX используется исключительно на видеокартах семейства NVidia начиная с серии GeForce 8 и более поздних с минимальным объемом видеопамяти в 256 Мб и числом ядер в 32 штуки. Если вы хотите задействовать графический адаптер NVidia для обработки графики с помощью PhysX, другие видеокарты в системе должны быть также оснащены NVidia GPU.

Возможные проблемы и их решения

Довольно часто во время установки драйвера PhysX появляются ошибки с порядковыми номерами 1316 или 1714. Такая проблема связана с некорректным удалением старых драйверов при их переустановке на видеокарту NVidia. Такая проблема наблюдается в ОС Win 7 и выше. При этом, PhysX не устанавливается совсем. Стоит отметить, при использовании специальных программных комплексов и утилит для очистки системы (Reg Organizer, Driwer Cleaner, Drive Sweeper) проблему решить не удается. Скорее всего, вам придется удалить старые библиотеки NVidia из памяти ПК целиком.

Читайте также:  Банки ру озон скидки

У автора данной статьи такая проблема с PhysX возникла, когда было принято решение заменить видеокарту GeForce GTX 560 на GTX 670. Разумеется, старый драйвер к новой видеокарте попросту не подойдет, и операционка начнет выбрасывать различные ошибки. Вашему вниманию представлена инструкция, как с этим бороться.

Не имеет значения, удалили вы старую версию PhysX либо нет, как бы то ни было, запускаем приложение Driver Cleaner или Driver Sweeper, при этом последней версии.

В перечне драйверов выставляем галочку рядом с опцией NVidia – PhysX и кликаем на кнопке «Анализ».

Вручную выделяем все те пункты, которые были найдены приложением, осуществляем очистку и приступаем к следующей операции. Если программе ничего не удалось найти, также приступаем к следующему шагу.

Проверяем папку C:Progam Filess (x86) для 64-битной системы или Progam Filess для 32-х разрядной ОС соответственно и находим там каталог NVidia Corporation. Если в нем есть папка PhysX, удаляем ее.

Корректно установить PhysX на Windows 7 пока что не удастся, нужно еще заняться чисткой реестра. Воспользуемся комбинацией клавиш Win+R и запустим команду regedit. В результате откроется редактор реестра. Важно понимать, что в случае некорректного удаления ключей в реестре можно лишиться надежной работоспособности системы, либо операционка вообще перестанет запускаться. Поэтому прежде, чем приступать к ручной чистке, сделайте бэкап реестра с помощью тех же утилит для работы с ключами реестра, о которых шла речь ранее.

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

Нажимаем Правка -> Найти. Задаем в поле поиска значение «physx» и жмем «Найти далее»

Если в открытой ветке все поля имеют какое-либо отношение к PhysX, удаляем всю папку целиком. Если вы видите, что в ветке есть ключи, относящиеся к другим программным продуктам или технологиям, удалите только те ключи, в названии или значении которых встречается искомое слово. Все остальные ключи находим с помощью команды «Найти далее».

На весь процесс полной ручной очистки у вас уйдет около часа, поэтому запаситесь терпением. Согласитесь, намного легче аккуратно произвести ручную очистку, чем переустанавливать операционку целиком. Да и на настройку дополнительного ПО (архиваторов, файловых менеджеров, драйверов к комплектующим) уйдет гораздо больше времени, так что игра стоит свеч.

Когда реестр будет очищен, перезагрузите компьютер и можете приступать к инсталляции новой версии PhysX с сайта компании NVidia, доступной для скачивания. Теперь вы знаете, как грамотно и абсолютно корректно переустановить PhysX на ОС линейки Виндовс. После этого проблема с ошибками должна исчезнуть, и все остальное пойдет «как по маслу».

admin

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *