Найти в Дзене
кITейка

История технологии: PhysX

Всем хорошего настроения! Попробуем еще один формат подачи материала в виде своего рода исторической справки. Сегодня поговорим с вами о движке обработки физики - PhysX. NovodeX История PhysX берет начало в Швейцарии, в компании NovodeX AG, которая занималась разработкой движка симуляции физики в реальном времени. Для тех времен NovodeX был достаточно прогрессивным движком, так как поддерживал многопоточность и кросс-платформенность, а также мог похвастаться стабильностью и быстротой работы в сравнении с конкурентами. На тот момент разработчики ПО лишь только начинали решать вопросы того, как сделать физику объектов реалистичной, и реализация NovodeX выглядела очень и очень обещающей. Она оказалась настолько перспективной, что компания смогла подписать соглашение с Epic Games, которые собирались интегрировать физический движок в свой Unreal Engine. Отличительной особенностью решения от NovodeX было наличие нескольких блоков, каждый из которых был нужен для разных задач и в теории мог
Оглавление

Всем хорошего настроения! Попробуем еще один формат подачи материала в виде своего рода исторической справки.

Сегодня поговорим с вами о движке обработки физики - PhysX.

NovodeX

История PhysX берет начало в Швейцарии, в компании NovodeX AG, которая занималась разработкой движка симуляции физики в реальном времени. Для тех времен NovodeX был достаточно прогрессивным движком, так как поддерживал многопоточность и кросс-платформенность, а также мог похвастаться стабильностью и быстротой работы в сравнении с конкурентами. На тот момент разработчики ПО лишь только начинали решать вопросы того, как сделать физику объектов реалистичной, и реализация NovodeX выглядела очень и очень обещающей. Она оказалась настолько перспективной, что компания смогла подписать соглашение с Epic Games, которые собирались интегрировать физический движок в свой Unreal Engine.

Отличительной особенностью решения от NovodeX было наличие нескольких блоков, каждый из которых был нужен для разных задач и в теории мог быть использован отдельно от других блоков. Другими словами, движок мог быть гибко настроен под те задачи, которые были необходимы разработчикам приложения.

Основной частью движка был пакет Foundation SDK, который содержал основные математические функции, на основе которых уже могли быть выстроены алгоритмы работы всех остальных частей комплекта. Служил основой движка и не мог быть использован самостоятельно.

Collission SDK - первый самостоятельный пакет, который позволял обнаруживать столкновение объектов.

PhysX просчитывает столкновение частиц на платформах в Planetside 2
PhysX просчитывает столкновение частиц на платформах в Planetside 2

Rigid Body SDK - на основе Foundation SDK - описывает физику твердых тел. Интересно то, что для обнаружения столкновений данная библиотека может использовать любую стороннюю библиотеку, а не только Collission SDK.

Substance SDK - библиотека для моделирования веществ и сред. Также полностью самостоятельная и позволяет использовать сторонние библиотеки.

Физика воды на основе модифицированной библиотеки Substance SDK
Физика воды на основе модифицированной библиотеки Substance SDK

Пятой частью комплекта являются различные инструменты, позволяющие ПО взаимодействовать с другими приложениями.

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

Ageia

Компания была основа на год позже NovodeX и пошла по альтернативному пути: основатели фирмы хотели разработать специальный чип, сопроцессор, который будет заниматься расчетом физики в реальном времени, тем самым снимая нагрузку с центрального процессора. Кроме того, предполагалось, что специально выделенный чип куда более эффективно сможет справляться с возложенными на него задачами. В 2004 году Ageia делает свое самое лучшее вложение - покупает компанию NovodeX и переходит к модификации движка для того, чтобы он смог работать с разрабатываемым Ageia сопроцессором.

Так выглядела плата расширения PhysX в исполнении Asus
Так выглядела плата расширения PhysX в исполнении Asus

Немногим позже движок NovodeX переименован в Ageia PhysX, а компания вовсю начинает готовиться к запуску продажи своего выделенного процессора обработки физики в реальном времени, что и происходит весной 2006 года.

Не лишним будет упомянуть, что на протяжении всего этого времени, оба гиганта графической индустрии - Nvidia и ATI, которая на тот момент еще не была приобретена AMD, - пристально наблюдали за развитием компании. Одним из ключевых моментов стала покупка Intel физического движка Havoc, из-за чего AMD, которая не так давно приобрела ATI за очень немаленькую сумму, решила отказаться от идеи покупки Ageia. Intel заплатила круглую сумму за технологии Havoc. AMD, предвидя схожий масштаб сделки, решили не покупать PhysX.

А вот конкуренты в лице Nvidia спустя год объявили о желании приобрести фирму, и в 2008 году Ageia перестала существовать как компания, физический сопроцессор был снят с производства, а физический движок, переименованный в Nvidia PhysX, был адаптирован под работу на GPU с ядрами CUDA.

Nvidia

Рассказывать много о жизни PhysX под крылом Nvidia не получится. Я думаю многие прекрасно знают, как сложился жизненный путь технологии. Она получила достаточно широкое распространение на волне популяризации аппаратной обработки физических явлений, однако в игровой индустрии технология прижилась плохо именно из-за своей аппаратности.

Borderlands 2 определенно к лицу физика частиц, хотя иногда от происходящего на экране можно словить эпилептический припадок. Да и реализация была сыровата - в некоторых особо "физичных" локациях fps сильно проседал
Borderlands 2 определенно к лицу физика частиц, хотя иногда от происходящего на экране можно словить эпилептический припадок. Да и реализация была сыровата - в некоторых особо "физичных" локациях fps сильно проседал

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

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

На данный момент исходный код PhysX доступен на правах открытой лицензии, и лишь единичные разработчики реализовывают технологию в своих проектах. Из последних игр - Metro: Exodus.

Технология прошла длинный путь от головокружительного взлета, до размеренного и верного угасания. Некоторые части технологии нашли новое пристанище в движках, при этом лишившись (частично) аппаратной привязки.

Рубрика "История технологии"

Тесселляция