Новости про Bullet Physics и OpenCL

В Bullet Physics 3 расширится использование GPU-ускорения для физики

Разработчики надеются выпустить к марту следующую версию открытого физического движка с поддержкой аппаратного ускорения на GPU.

Сотрудник AMD и по совместительству основной разработчик SDK для работы с физическими симуляциями Bullet Physics, Erwin Coumans, дал интервью сайту fxguide.com, в котором рассказал о состоянии и планах развития движка в рамках открытой физической инициативы AMD. Мы приводим выдержку высказываний и озвученных фактов из интервью:

  • Bullet Physics получил заметную популярность благодаря открытому исходному коду и достаточно свободной лицензии ZLib, в отличие от проприетарных решений вроде Havok и PhysX. Он также предлагает больше возможностей, чем другие открытые движки, вроде ODE.
  • В рамках открытой физической инициативы разработчики будут стараться создавать повторно используемые низкоуровневые компоненты, которые разработчики смогут интегрировать в собственные физические движки.
  • Bullet Physics помимо открытой версии имеет и закрытый компонент поддержки для платформы Sony Playstation 3 под названием «Physics Effects», и Sony продолжит его поддержку и в дальнейшем. В планы команды входит разработка поддержки платформы Xbox 360 и GPU-ускоряемой версии для API OpenCL и Microsoft Direct Compute.
  • Обработка физики столкновений в Bullet разбита на две основных фазы: фазу исключения несталкивающихся объектов из сцены и фазу точного расчёта точек столкновения объектов. Уже имеется реализация первой фазы с ускорением через OpenCL, но она имеет ограничения по размеру объектов.
  • Имеется множество способов ускорения вычислений физических симуляций, и хотя графические процессоры достаточно хороши для упрощённых расчётов, некоторые сложные алгоритмы, особенно с ветвлением, лучше выполняются на центральных процессорах. Оптимальным для физики будет совместное использование и центральных, и графических процессоров, что особенно перспективно для платформ Sandy Bridge и Fusion, где CPU и GPU практически слились в одно целое.
  • Релиз версии 3.х Bullet Physics намечен на март этого года и будет приурочен к очередной ежегодной конференции разработчиков игр (GDC). В новой версии ускорение через OpenCL и Direct Compute будет расширено на части общего физического конвейера, в дополнение к уже имеющемуся ускорению симуляций ткани.
  • Несмотря на нехватку ресурсов у разработчиков, Bullet Physics останется с открытым исходным кодом, и Erwin Coumans намерен не допустить привязок движка к проприетарным решениям кого-либо из производителей оборудования.

Bullet Physics logo

Bullet Physics был выбран в 2009 году AMD в качестве основы для открытой платформы GPU-ускоряемой игровой физики, в противовес закрытому решению GPU PhysX от NVIDIA. Осенью 2010 года сотрудничество дало плоды в виде первой публичной версии SDK 2.77 с поддержкой аппаратного ускорения, работающего для видеокарт всех производителей. Движок Bullet был также выбран Futuremark для тестов физики в составе бенчмарка 3DMark 11, сменив использовавшийся в 3DMark 2006 и 3DMark Vantage движок PhysX.

Открытая физическая инициатива от AMD — новые подробности

Открытый стандарт физики начинает воплощаться в конкретику.

Согласно опубликованному пресс-релизу, совместная работа AMD, Bullet и Pixelux близится к воплощению в конкретные движки и программные продукты. В основу открытого движка ляжет технология расчётов столкновений твёрдых тел от Bullet Physics и система «физических» свойств материалов Digital Molecular Matter (DMM) от Pixelux. AMD разработает некий инструмент физического моделирования для разработчиков игр, позволяющий объединить обе технологии в игре, а также проспонсирует бесплатную лицензию DMM для использования в PC-проектах. «Лидирующем» же движком для демонстрации набора физических технологий от «красных» станет Vision Engine от Trinigy, должный стать тем же, чем стал Unreal Engine 3 для PhysX.

AMD logo

Ускорение физических расчётов на GPU будет доступно через OpenCL и DirectCompute API, реализуемых посредством ATI Stream для GPU AMD. В будущем, помимо физики твёрдых тел, аппаратное ускорение будет обеспечено и для системы частиц/потоков, симуляции одежды и столкновений мягких тел в составе Bullet Physics. После этого физический движок AMD-Bullet-Pixelux может даже превзойти PhysX, в котором в настоящее время нет аппаратного ускорения для физики твёрдых тел. Правда, симуляция последних не составляет заметной нагрузки для современных CPU, а в играх с использованием PhysX, таких как Dark Void или Cryostasis, востребовано как раз ускорение симуляций частиц/потоков. Будем надеяться, что в этом году AMD сможет на деле показать преимущества своих физических решений вместо голословных нападок на PhysX.

Bullet Physics готовится к OpenCL-ускорению

В новом обновлении физического движка проведена подготовка к использованию OpenCL в следующей версии.

В SDK версии 2.76 популярного физического движка с открытым исходным кодом Bullet Physics сделаны необходимые приготовления к поддержке исполнения через OpenCL и обновлены предварительные демонстрации MiniCL. Объявлено, что будущие версии 3.х движка будут поддерживать OpenCL «штатно». Напомним, что разработку движка Bullet поддержала корпорация AMD в рамках программы Open Physics в качестве противовеса PhysX от NVIDIA, хотя изначально движок поддерживала NVIDIA в направлении использования CUDA.

Bullet Physics

Кроме того, в новой версии введён бинарный платформонезависимый формат экспорта-импорта физических данных .bullet, улучшен плагин Dynamica для Autodesk Maya и добавлены предварительные версии новых инструментов: btInternalEdgeUtility для исключения ненужных коллизий при взаимодействии объектов и редактор/отладчик физики. Загрузить код SDK можно со страницы проекта на Google.

NVIDIA также поддерживает движок Bullet Physics

На прошлой неделе AMD сообщила о начале сотрудничества с Pixelux Entertainment с целью ввести поддержку аппаратного ускорения в физический движок с открытым кодом Bullet Physics, который занимает третье место (около 10 %) по популярности среди разработчиков. Движок будет переписан для работы с открытым API OpenCL, то есть, в отличие от PhysX, движок Bullet будет работать как на картах ATI, так и NVIDIA.

Журналисты сайта Icrontic обратились к руководителю технического маркетинга NVIDIA Тому Питерсену с целью узнать, что сможет изменить движок Bullet в политике компании и на рынке в целом.

Icrontic: Собирается ли NVIDIA поддерживать Bullet Physics, ведь он основан на открытых индустриальных стандартах, поддерживаемых NVIDIA?

Том Питерсен: NVIDIA поддерживает Bullet (мы встретились с Эрвином на технологической конференции по видеокартам). Мы приветствуем любые программы или API, которые помогают кому-то более эффективно использовать GPU. По существу, по словам Эрвина, он использует видеокарты NVIDIA для разработки своего кода. По этому поводу он даже предоставил нам цитату:

«GPU-ускорение Bullet с помощью OpenCL будет работать с любыми совместимыми драйверами, для нашей разработки мы используем видеокарты NVIDIA GeForce и даже употребляем примеры кода из их OpenCL SDK, они замечательный технологический партнёр.

Эрвин Камэнс, Создатель движка Bullet Physics».

Icrontic: Какую помощь, если она есть, NVIDIA намерена предоставить проекту Bullet Physics?

Том Питерсен: Мы будем продолжать оказывать любую помощь, которая в наших силах, для команды Bullet. В настоящее время они используют драйвер OpenCL, предоставленный NVIDIA.

Icrontic: Как по мнению NVIDIA повлияет создание третьего физического движка на потребителей?

Том Питерсен: NVIDIA продвигает использование GPU для улучшения игрового процесса на ПК. Если Bullet сможет сделать то же для некоторых разработчиков в некоторых играх, то мы поддерживаем это. Одновременно, NVIDIA продолжит вводить новшества в PhysX на своих видеокартах. Мы предоставим комплексное решение, включающее инструменты разработки, настройки производительности, управления информационным содержанием и поддержку разработчиков — это даст весомые преимущества пользователям нашей продукции, как в случае с игрой Batman Arkham Asylum.

Icrontic: Bullet — это «правильный ответ» на несовместимость между PhysX и Havok?

Том Питерсен: Я не думаю, что это единственное решение. Каждая реализация физики имеет свои сильные стороны. Позиция NVIDIA заключает в том, что хорошая производительность и комплексное решение необходимы, чтобы предоставить мощное решение. Мы много уделяем внимания нашей разработке APEX (среда разработки, позволяющая реализовывать эффекты разрушений, воздуха, одежды, растений, а также инструменты отладки), чтобы сделать использование PhysX для разработчиков более простым. Если говорить коротко, то NVIDIA инвестирует средства в интеллектуальные разработки, и мы поддерживаем независимые инициативы, делающие то же самое.

NVIDIA стоит на позиции продвижения собственного движка PhysX, который, очевидно, врядли намерена делать в ближайшее время индустриальным стандартом, то есть решением с открытым кодом и поддержкой аппаратно-программных интерфейсов OpenCL или DirectCompute. С другой стороны, NVIDIA не хочет оставлять аппаратное ускорение Bullet Physics эксклюзивной технологией ATI, и поэтому оказывает посильную помощь проекту.

Отсюда видно, что Bullet Physics должен стать инструментом № 1 среди разработчиков, чтобы аппаратное ускорение физики стало индустриальным стандартом. Но для этого, как справедливо отметил Том Питерсен, необходимы мощные инструменты разработчика, сопоставимые с теми, которые предоставляет NVIDIA. В противном случае, большая часть игровых проектов будут разрабатываться с учётом того, что физические расчёты должны осуществляться центральным процессором, как это происходит в настоящее время даже с многими приложениями, использующими PhysX SDK.

NVIDIA потратила большие деньги на покупку бесплатного движка PhysX и его дальнейшее продвижение и, конечно, должна получить от этих затрат максимальную отдачу. То есть компании выгодней, чтобы PhysX был популярнее других решений и ускорялся только на видеокартах GeForce. AMD, в свою очередь, утверждает, что PhysX станет бесполезным для NVIDIA. Заявление бесспорное, но когда это произойдёт, судить очень сложно.

AMD и Pixelux объединят усилия для ускорения физики на OpenCL

Шесть месяцев назад компания AMD вместе с Havok во время конференции разработчиков игр демонстрировала аппаратное ускорение физики тканей через OpenCL. Однако, по всей видимости, далее такой демонстрации пока дело не пойдёт: Intel не хочет выпускать Havok с поддержкой аппаратного ускорения до выхода Larrabee. Поэтому на днях компания AMD в пресс-релизе сообщила о начале работы c компаний Pixelux Entertainment, разработчиком третьего по популярности физического движка Bullet Physics.

Результатом этого сотрудничества должно стать появление версии движка Bullet Physics, поддерживающего ускорение средствами видеокарт через стандарт OpenCL. Важно отметить, что в отличие от PhysX, AMD собирается создать полностью открытый стандарт, ускоряющий физику с помощью любого оборудования OpenCL на любой платформе, в том числе и средствами видеокарт NVIDIA GeForce.

Между прочим, движок Bullet Physics использовался в такой достаточно известной игре как Star Wars: The Force Unleashed и Indiana Jones от LucasArts, версия для ПК которой выходит в этом году.

Выбор AMD пал на OpenCL, а не на DirectCompute потому, что последний стандарт привязан к API DirectX, то есть к Windows, в то время как OpenCL является отдельным, цельным вычислительным решением.

Не упустила AMD в своём пресс-релизе и сделать упрёк в сторону PhysX, отметив, что NVIDIA, создав стандарт, исполняющейся только на видеокартах GeForce, разделяет пользователей и разработчиков и тем самым тормозит развитие графической индустрии.

Однако, если NVIDIA столкнётся с сильным открытым стандартом ускорения физики, то она быстро перенесёт PhysX на OpenCL или DirectCompute, что позволит разработчикам, наконец, без оглядки на производителей оборудования использовать в своих играх богатые физические эффекты. Ждём OpenCL-версию Bullet Physics.

AMD поддерживает физический движок Bullet, разрабатываемый на GeForce

Журналисты ресурса Fudzilla сообщили, что на одной из конференций NVIDIA сказала, что господин Эрвин Куманс, создатель движка Bullet Physics разрабатывает его на картах GeForce. Между прочим, именно этот физический движок AMD хочет ускорить с помощью своих видеокарт через OpenCL.

Также Эрвин Куманс отметил: «Ускорение средствами видеокарт AMD расчётов Bullet через OpenCL будет работать на любом совместимом драйвере: к примеру, мы использовали видеокарты NVIDIA GeForce для нашей разработки и даже применили код из их инструментов для разработчиков: NVIDIA является отличным технологическим партнёром».

Это означает, что аппаратное ускорение Bullet разрабатывается на видеокартах NVIDIA GeForce, несмотря на то, что AMD собирается представить драйвер и аппаратное ускорение для Bullet Physics. Кстати, это же сообщение говорит в пользу того, что аппаратное ускорение Bullet Physics будет прекрасно работать на видеокартах GeForce.

Так или иначе, но NVIDIA сейчас намного впереди с реализацией аппаратного ускорения физики: её движок PhysX является самым популярным. Havok занимает второе место, однако Intel, владеющая этим стандартом, ни за что не даст реализовать аппаратное ускорение физики Havok на видеокартах AMD или NVIDIA: ей он ещё понадобится для Larrabee.

Bullet Physics занимает лишь третье место, однако, благодаря будущей поддержке OpenCL и полной открытости, у него есть все шансы примирить разработчиков и производителей видеокарт, став индустриальным стандартом.

Есть ещё один достаточно популярный физический движок — Open Dynamics Engine, однако он занимает всего 4,1 % рынка.

Слухи: движок игровой физики Bullet Physics будет портирован на OpenCL при поддержке AMD

Не смотря на многократные отрицания важности NVIDIA PhysX и GPU физики в целом, AMD возможно всё-таки ступит на территорию аппаратно-ускоряемой игровой физики.

По появившейся в Сети информации, Bullet Physics Library, комплекс библиотек для имитации физических процессов с открытым исходным кодом, при поддержке AMD будет переработан для использования API универсальных вычислений OpenCL. По данным августовского исследования издания Game Developer Magazine, Bullet Physics является третьей по популярности библиотекой физики у разработчиков после принадлежащего NVIDIA PhysX и Havok от Intel. С учетом появившегося вчера на сайте AMD пресс-релиза об отправке своих OpenCL-совместимых решений (включая «фирменные» средства для разработчиков ATI Stream) на сертификацию разработчику OpenCL Kronos Group, это может стать серьёзной заявкой AMD на лидерство в области игровой физики.

Слайд AMD о OpenCL

Любопытно, что ранее разработчики Bullet Physics проявляли интерес к технологии NVIDIA CUDA, и даже выпустили комплект демонстраций с использованием CUDA 2.1 к прошедшей в марте этого года Game Developers Conference`09. От разработчиков Bullet Library пока не поступало официальных подтверждений о сотрудничестве с AMD, как и пояснений о судьбе адаптации для NVIDIA CUDA.