«Bullet» активно используется в
компьютерных играх
, фильмах, программах трёхмерного моделирования, как компонент других игровых движков и во множестве других более специфичных случаях. «Bullet» используется компанией
AMD
в рамках программы
Open Physics Initiative
, которая предполагает создание нового физического движка на базе «Bullet» и
Digital Molecular Matter
, который будет активно использовать аппаратное ускорение расчётов физических вычислений посредством
OpenCL
и
DirectCompute
.
Согласно статье из журнала
(англ.)
(
, которая была опубликована в августе 2009 года, «Bullet» по популярности использования разработчиками компьютерных игр занимает третье место, уступая лишь движкам
nVidia PhysX
и
Havok
.
Содержание
История
В середине сентября 2009 года компания
AMD
предложила свою поддержку в разработке
OpenCL
-версии движка «Bullet» для видеокарт.
30 сентября 2009 года было официально объявлено о том, что DMM станет составным компонентом новообразованного движка, который разрабатывается
AMD
и Pixelux соответственно проекту «
Open Physics Initiative
».
В середине октября 2009 года журналисты сайта Icrontic взяли интервью у руководителя технического маркетинга nVidia Тома Питерсена с целью узнать отношение компании к Bullet после инициативы AMD. Питерсон заявил, что nVidia и дальше будет максимально поддерживать развитие движка.
В конце февраля 2010 года была выпущена версия движка и SDK под номером 2.76. В этой версии были сделаны необходимые приготовления к поддержке исполнения через OpenCL и обновлены предварительные демонстрации MiniCL. Был улучшен плагин Dynamica для Autodesk Maya, введён новый бинарный платформонезависимый формат экспорта-импорта физических данных .bullet, а также добавлены предварительные версии новых инструментов: btInternalEdgeUtility для исключения ненужных коллизий при взаимодействии объектов и редактор/отладчик физики.
22 сентября 2010 года вышла версия 2.77, в которой рамках
Open Physics Initiative
была добавлена запланированная ранее поддержка аппаратного ускорения на графических процессорах через
OpenCL
и
DirectCompute
. В версии 2.77 аппаратное ускорение было реализовано для модуля симуляции одежды (BulletSoftBody). В будущих версиях планируется поддержка и других модулей движка. Также в рамках версии 2.77 разработчики создали плагин для
3DS Max
, который добавляет в программу поддержку Bullet.
В начале августа 2011 года на конференции
SIGGRAPH
2011 компания
Autodesk
при поддержке AMD представила для редактора трёхмерной графики
Maya
2012 новый плагин Bullet Physics, который использует OpenCL и который вошел в набор
Subscription Advantage Pack
. «Мы продвигаем индустриальные стандарты вроде OpenCL и Bullet Physics, так как они упрощают программирование и устраняют препятствия, вызванные проприетарными технологиями, которые могут ограничить творчество разработчиков», — заявил по этому поводу Сандип Гупте (
англ.
Sandeep Gupte
), главный управляющий подразделения профессиональной графики в AMD.
16 сентября 2011 года была выпущена версия 2.79, основная часть которой была направлена на исправление ошибок, однако также и вносила новый функционал: новый метод декомпозиции выпуклых поверхностей на основе библиотеки HACD и новая система сборки
premake
, которая может автоматически генерировать файлы проекта
Microsoft Visual Studio
. Одновременно с выходом этой версии были опубликованы материалы по Bullet, которые презентовались на
SIGGRAPH
2011 в рамках доклада «Destruction and Dynamicsfor Film and Game Production».
Функциональные возможности
Просчитывает столкновения (
англ.
collision shapes
) таких фигур: сфера, параллелепипед, цилиндр, конус, выпуклый корпус и сетка треугольников (
англ.
triangle mesh
)
;
Возможность сериализации физических данных в специально разработанный файловый формат .bullet
;
Существует порт под
Java
и
Python
(также именуемые «JBullet»
и «PyBullet
» соответственно) и
XNA
.
Обнаружение столкновений
Обнаружение столкновений
, используемое в «Bullet», как и в большинстве других физических движков, имеет широкую и узкую фазы (
англ.
broadphase, narrowphase
). Во время широкой фазы алгоритм обнаружения столкновений уменьшает количество потенциально взаимодействующих объектов путём применения
к сцене. «Bullet» содержит несколько разных реализаций широкой фазы, предназначенных для различных целей. Наиболее общая реализация базируется на динамических иерархиях ограничивающих объёмов (
англ.
dynamic bounding volume hierarchies
): используются выровненные по осям ограничивающие параллелепипеды (
англ.
axis aligned bounding box — AABB
), которые постепенно обновляются при перемещении, добавлении или удалении объектов. Также присутствует другая реализация широкой фазы, имеющая аппаратное ускорение на графических процессорах посредством
OpenCL
, однако она имеет ограничения на размеры объектов.
Этап узкой фазы связан с точной генерацией точек контакта между парами соприкоснувшихся между собой объектов. «Bullet» использует несколько обобщённых алгоритмов, а именно
алгоритм Гилберта-Джонсона-Кёрти
(
англ.
GJK
) и
(EPA), которые решают задачи столкновения для широкого набора типов геометрических форм столкнувшихся объектов.
Присутствует поддержка непрерывного обнаружения столкновений, которое вычисляет время столкновения между движущимися и вращающимися объектами, однако по умолчанию «Bullet» вычисляет наименьшее расстояние и глубину проникновения в дискретные моменты времени для получения информации о точках контакта между объектами.
Использование
Благодаря своей бесплатности и открытому свободному коду «Bullet» активно используется не только в
индустрии компьютерных игр
, но и в производстве спецэффектов к фильмам. Многие производители спецэффектов, использующие «Bullet», модифицируют его под свои
проприетарные
программные инструменты или под текущие задачи, которые должен выполнять движок. Например,
Digital Domain
использовала модифицированный «Bullet» для создания эффектов к фильму «
2012
», а
(англ.)
(
интегрировала изменённую версию движка в свой внутренний программный инструмент fBounce при создании фильма «
Шерлок Холмс
».
Weta Digital
интегрировала движок в свою внутреннюю программу wmRigid при создании спецэффектов фильма «
Команда-А
».
Помимо этого, «Bullet» активно используется в программах трёхмерного моделирования в качестве плагина или уже интегрированного инструмента. Он доступен для
Cinema 4D
,
Houdini
,
3ds Max
,
(англ.)
(
,
Blender
,
Maya
и
Lightwave
.
Verge3D
содержит «Bullet», портированный на JavaScript с помощью компилятора
Emscripten
. Предоставляет доступ к API библиотеки с использованием средств визуального программирования Puzzles.
Прочее
3DMark 11
—
бенчмарк
из серии
3DMark
, первый бенчмарк данной серии, использующий «Bullet» с поддержкой аппаратного ускорения.
(неопр.)
. eric777 (28 января 2009). — «we specifically used Bullet to allow the player to free-draw new static & dynamic objects, to modify the levels and solve puzzles.» Дата обращения: 14 ноября 2009. Архивировано из
15 марта 2012 года.
(неопр.)
. Roy Eltham (15 апреля 2009). — «We're using Bullet collision & dynamics. We use it for our character controller (our own custom one), line of sight checks, and so forth as well as for vehicle physics in the Racing and Demolition Derby instances. Check out the beta here. Go sign up, we are letting people into the beta in waves over the next week or so. Roy Eltham, Senior Engine Programmer, Sony Online Entertainment,
обращения: 20 апреля 2009. Архивировано из
15 марта 2012 года.
(англ.)
. официальный сайт «Bullet» (6 мая 2009). Дата обращения: 1 октября 2009. Архивировано из
15 марта 2012 года.
Dale Nardozzi - "Legba".
(неопр.)
.
TeamXbox
(6 августа 2009). — «We are also using a modified version of an open source physics engine called Bullet Physics Library to calculate our physics simulation and collision inside the game.» Дата обращения: 15 декабря 2010. Архивировано из
15 марта 2012 года.
(англ.)
. официальный сайт «Bullet» (23 сентября 2009). Дата обращения: 1 октября 2009. Архивировано из
15 марта 2012 года.
(неопр.)
. Wavesonics (12 октября 2009). — «The engine was developed 100% from scratch, and makes extensive use of Bullet for all physics, collision detection, and more.» Дата обращения: 14 ноября 2009. Архивировано из
15 марта 2012 года.
(неопр.)
. Kester Maddock (13 ноября 2009). — «HotWheels: Battle Force 5 for Wii uses Bullet for collision detection, dynamics, and vehicle simulation..» Дата обращения: 14 ноября 2009. Архивировано из
15 марта 2012 года.
(неопр.)
. Kester Maddock (14 октября 2009). — «Madagascar Kartz for Wii, PS3 & Xbox360 uses Bullet.
Madagascar Kartz is a 4 player kart racer. Its vehicle simulation is based on Bullet's btRaycastVehicle.» Дата обращения: 14 ноября 2009. Архивировано из
15 марта 2012 года.
↑
(англ.)
. Официальный сайт Bullet Physics (27 июня 2011). Дата обращения: 26 июля 2011. Архивировано из
15 марта 2012 года.
(неопр.)
(13 ноября 2009). Дата обращения: 24 ноября 2009.
20 ноября 2009 года.
(неопр.)
. Архивировано из
15 марта 2012 года.
↑
(неопр.)
. Архивировано из
15 марта 2012 года.
↑
(неопр.)
. Arthur Shek (26 сентября 2008). — «I'm the software manager at Walt Disney Animation Studios who kicked off this project and cleared the open source release.» Дата обращения: 21 февраля 2010. Архивировано из
15 марта 2012 года.
(неопр.)
. Erwin Coumans (12 ноября 2009). — «Some movies using Bullet Physics are Bolt, Hancock and 2012». Дата обращения: 21 февраля 2010. Архивировано из
15 марта 2012 года.
↑
(англ.)
. Официальный сайт движка (27 октября 2010). Дата обращения: 15 декабря 2010. Архивировано из
15 марта 2012 года.
(неопр.)
. Архивировано из
6 июня 2012 года.
(неопр.)
. www.lightwave3d.com. Дата обращения: 14 октября 2017.
14 октября 2017 года.
(неопр.)
. Maxon (3 сентября 2009). — «MoDynamics is based on the proven Bullet physics library». Дата обращения: 14 ноября 2009. Архивировано из
15 марта 2012 года.
Hellard, Paul
(неопр.)
(19 мая 2010). — «Professional artists using the Carrara 8 Pro toolset will gain access to […] the Bullet Physics Library.» Дата обращения: 2 июля 2010. Архивировано из
15 марта 2012 года.
(недоступная ссылка)
(неопр.)
. Дата обращения: 5 декабря 2017.
6 декабря 2017 года.
(неопр.)
. Paul Martz (11 ноября 2009). — «I'm pleased to announce osgBullet, a new open source Bullet-based project.» Дата обращения: 14 ноября 2009. Архивировано из
15 марта 2012 года.