150 likes | 466 Views
Моделирование динамики твердых тел на GPU. Выполнили: Гриднев Максим Машинский Леонид Присивко Вячеслав гр. 3057 /2. Моделирование движения твердых тел (ТТ) в виртуальном пространстве Требования: Ограничения движения ТТ: Столкновения Упругие и жесткие связи между телами
E N D
Моделирование динамики твердых тел на GPU Выполнили: Гриднев Максим Машинский Леонид Присивко Вячеслав гр. 3057/2
Моделирование движения твердых тел(ТТ) в виртуальном пространстве Требования: Ограничения движения ТТ: Столкновения Упругие и жесткие связи между телами Интерактивность: Моделирование в реальном времени (~10% от общего времени просчета) Детализированные статические объекты (ландшафт, окружение) Постановка задачи
Обзор существующих решенийна CPU • Моделирование движения • Обнаружение пересечений • Широкая фаза • Регулярная и древовидная сетка • AABB, OBB, SAT • Узкая фаза • Точные решения GJK(EPA), Lin-Canny, V-Clip • Реакция на пересечения
Модификация решений для GPU • Алгоритмы должны обрабатывать данные для каждого твердого тела независимо и параллельно • Модификация : • Разрешить зависимости между данными твердых тел, используемые алгоритмами • Перенести на GPU алгоритмыдля одиночного тела или пары тел Использование GPU может датьзначительный прирост производительности Динамика роста производительности CPU и GPU
Моделирование движения • Расчет приращений кинематических параметров (функции состояния) • Получение новых значений параметров – решение ОДУ движения • метод Эйлера • метод Рунге-Кутта • Применение полученных позиций и скоростей к телам Для каждого тела данные независимы и вычисления выполняются параллельно GPU
Грубая проверка пересечений пар ограничивающими объемами AABB vs AABB OBB vs OBB Обнаружение пересечений Геометрия твердых тел Для каждого тела составление списка клеток, содержащих их. Создание потенциально пересекающихся пар объектов на основе дискретного разбиения пространства на ячейки GPU GPU • Точная проверка пересечений твердых тел: • Для каждой пары тел выполняется проверка пересечений алгоритмом GJK, реализованным на GPU Пары тел, находящиеся в одних клетках сетки CPU Широкая фаза Узкая фаза GPU Пары тел, подозрительных на пересечение Множество контактов в точках коллизий
Реакция на пересечения 1 блок • Применение импульса в точке пересечения тела приводит к изменению скоростей, нужных для формирования данных об остальных контактных точках • Для параллельной обработки коллизий требуется модификация алгоритма 2 блок 3 блок • Алгоритм параллельной обработки пересечений: • Построение графа зависимостей • Построение реберной раскраски графа зависимостей • Формирование независимых от данных множеств пар - блоки • В каждом блоке пары обрабатываются на GPU параллельно • Расчет импульсов, применяемых к телам Пример реберной раскраски графа зависимостей
Анализ производительности • Увеличение производительности метода на GPU в 6-8 раз относительно реализации на CPU • Нелинейная сложность метода относительно количества обрабатываемых объектов
Выводы Моделирование динамики твердых тел на GPU дает следующие преимущества: Разгрузка CPU для выполнения альтернативных задач Возможность увеличения количества обрабатываемых тел в 10 раз без потери производительности
Литература • An Introduction to Physically Based Modeling:Rigid Body Simulation I—Unconstrained Rigid BodyDynamics, David Baraff, 1997 • An Introduction to Physically Based Modeling: Rigid Body Simulation II—Nonpenetration Constraints, David Baraff, 1997 • Physics on NVIDIA GPUs, Mark Harris, 2006 • OpenCL Game Physics : Bullet: A Case Study in Optimizing Physics Middleware for the GPU, Erwin Coumans. 2009 • GPU Gems 3: Part V - Physics Simulation, 2008 • Real-Time Collision Detection, Christer Ericson, 2005 • Parallel Continuous Collision Detection, Duksu Kim, Jae-Pil Heo, Sung-eui Yoon, 2008
Обнаружение пересечений Широкая фаза Геометрия твердых тел • Для каждого тела составляется список клеток, содержащих его. • Создание потенциально пересекающихся пар объектов на основе дискретного разбиения пространства на ячейки. Пара тел, находящиеся в одних клетках сетки Грубая проверка пересечений пар ограничивающими объемами: • AABB • OBB • Сфера Точная проверка пересечений двух тел Для каждой пары тел параллельно выполняется проверка пересечений одним из алгоритмов, реализуемых GPU • GJK • V-clip Узкая фаза
Обнаружение пересечений Для каждого тела составление списка клеток, содержащих их. Создание потенциально пересекающихся пар объектов на основе дискретного разбиения пространства на ячейки GPU Геометрия твердых тел CPU Широкая фаза Пары тел, находящиеся в одних клетках сетки
Грубая проверка пересечений пар ограничивающими объемами • AABB • OBB • Сфера Обнаружение пересечений (2) Пары тел, находящиеся в одних клетках сетки GPU Широкая фаза Пары тел, подозрительных на пересечение
Обнаружение пересечений (3) Пары тел, подозрительных на пересечение • Точная проверка пересечений твердых тел • Для каждой пары тел параллельно выполняется проверка пересеченийодним из алгоритмов, реализуемых на GPU • GJK • V-clip Узкая фаза GPU Множество контактов в точках коллизий