среда, 30 января 2013 г.

Пример физики на движке Chipmunk

Пример рисования мышью многоугольников, которые сразу же начинают "жить" в физическом мире. В качестве физического движка используется ChipmunkD - прямой порт Chipmunk на D. Демка может быть использована в качестве основы для physics-based 2D-игры. Единственное ограничение - поддерживаются только выпуклые многоугольники, неконвексная геометрия просто отсеивается и не тесселируется до простых форм.

В архиве - исходники и сборки для Win32 и Linux x86:
polyshaper-all-platforms.zip (1.16 МБ)

Внимание! Пример писался достаточно давно - исходный код, скорее всего, не скомпилируется современными версиями DMD без дополнительных "танцев с бубном".

суббота, 26 января 2013 г.

Обновление dlib

Была значительно обновлена коллекция библиотек dlib: добавлены новые модули в пакет geometry (реализация AABB и сфер, а также пересечений между ними), исправлен баг с нахождением обратной матрицы 4x4, добавлен модуль dlib.math.matrix3x3, а также несколько полезных функций для векторов, матриц и кватернионов. Изменения доступны в ревизии r12 и выше.

http://code.google.com/p/dlib/

Физический движок

Не писал уже целый месяц, приношу за это извинения читателям этого блога =) Месяц ушел на создание каркаса физического движка для Atrium. Для решения контактов используется метод Sequential Impulses, поддерживается трение. На данный момент реализованы два типа геометрических объектов - сфера и бесконечная плоскость. Интегрирование пока производится методом Эйлера, планируется поддержка метода Рунге-Кутты.

В представленной демке симулируется система из 6 шаров и плоскости. Красным шаром можно управлять с клавиатуры (клавиши-стрелки). Зеленый шар имеет повышенную массу, большой шар - пониженную.

Сборка для Linux:
physics-testbuild1-linux-glibc28-x86.tar.bz2