Implementing Soft Body Dynamics and Collision in Vulkan

Implementing Soft Body Dynamics and Collision in Vulkan

This is my dissertation project and entailed creating a soft body system on top of the Vulkan API. The project has a framework in Vulkan in which multiple models loaded in from a .OBJ file can be rendered, manipulated and textured using an image file. The soft body system on top of this framework using the mass spring system where a model is represented by a network of masses connected together by weightless springs. During build time this network is generated from a model by creating an internal grid structure of masses as well as masses at each of the models vertices. Each mass is then connected to the n nearest other masses by springs.

Network gif The soft body network of a cube

The soft body behavior was achieved using a series of equations to simulate the different forces applied to the model this included: gravity, a spring force (an adaption of Hooke’s Law), and damping force to keep the system stable.

For the soft body collisions, an initial broad phase collision was performed using a dynamic axis aligned bounding box (AABB) intersection test. Then a narrow phase test was performed by finding the intersecting triangles of the two models. These triangles are stored inside a bounding volume hierarchy for optimisation.

Project Details

Date: Jun 25, 2020

Author: Evan Diamond

Categories: project

Tagged: C++, Vulkan, Creative Technologies Project

Client:

Website:

Related Works.

About

Gamers developing new games.

Social Links

Our Bunker

University of the West of England,
Frenchay Campus, Bristol, BS16 1QY,
United Kingdom.