Skip to content

Программа написана для дипломной работы. Многопоточная симуляция ткани методом XPBD на CPU с поддержкой коллизий

Notifications You must be signed in to change notification settings

Kuprin2000/ClothSimulation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ClothSimulation

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

Работа программы делится на четыре этапа:

  1. редактирование сцены путем добавления частей ткани и твердых тел
  2. настройка дополнительных ограничений для ткани
  3. настройка параметров симуляции
  4. непосредственно симуляция

В программе реализованы следующие ограничения:

  1. внутренние ограничения ткани:
  • ограничение на растяжение,
  • реалистичное ограничение на растяжение,
  • ограничение на изгиб,
  • реалистичное ограничение на изгиб,
  1. ограничения, созданные коллизиями:
  • коллизия ткани с самой собой типа вершина-треугольник,
  • коллизия ткани с самой собой типа ребро-ребро,
  • коллизия ткани с твердым телом типа вершина-треугольник,
  • коллизия ткани с твердым телом типа ребро-ребро,
  1. пользовательские ограничения:
  • задание положения произвольной вершины ткани,
  • угла изгиба вдоль произвольного ребра ткани,
  • сшивание двух произвольных вершин ткани.

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

Поиск коллизий основан на R-дереве сцены.

Более подробное описание программы приведено в файле docs/theory.pdf

Проект зависит от следующих библиотек:

  • Glad – прослойка, упрощающая работу с OpenGL,
  • GLFW – библиотека для создания окна, контекста OpenGL и обработки ввода,
  • GLM – высокопроизводительная математическая библиотека,
  • ImGui – минималистичная библиотека для создания графического интерфейса,
  • ImPlot – дополнение для ImGui, позволяющее строить графики.

Примеры работы программы

Alt text

Alt text

Alt text

Alt text

demo.mp4

About

Программа написана для дипломной работы. Многопоточная симуляция ткани методом XPBD на CPU с поддержкой коллизий

Resources

Stars

Watchers

Forks