While at Bournemouth University, I completed a project on real-time deformation. This was undertaken in 8 weeks during the summer of 2015.
Abstract |
For my Masters Project, an investigation was undertaken into real-time deformation using a modified Finite Element Method.
OpenGL and C++ were used in order to create a standalone application demonstrating the FEM techniques being applied to an object. This object can be remeshed into certain elements which can be used to approximate a new shape when force is applied to the object. Built completely from scratch, the original element were intended to be 2D triangular elements in order to be easily rendered and accurately represent thin sheets. However, it was decided that the addition of a 3D elements would allow an easier representation of elements with more substance. The material properties of the object can also be changed, with presets for materials such as steel and granite and an option to add custom materials at the users risk. |
Every day, we interact with deformable objects such as cloth, hair, paper, and more. Within computer graphics these deformable bodies need to be simulated, whether it is skin for a medical simulation, an application to test stress levels on a bridge for an engineer, or just simply to look believable within a virtual landscape. Methods such as the mass spring model have allowed video games to efficiently recreate the movement of 2D soft bodies such as cloth and hair, however the simulation of more solid objects using this method has issues. In this project, a modified Finite Element Method has been used in order to simulate soft body deformations of thicker objects in a real-time environment, intended for use either as a tool to export these elements or to show the potential applications of the finite element method within video games. The application was created in C++, and uses OpenGL, NGL and Eigen libraries. A visually believable deformation is created within the application, which could be used as a tool for artists as well as a showcase of the methods in real time. Finally, the application has been running with an average framerate of 82 frames per second (fps), exceeding the aim of 60 fps.
|
|