C++

C Plus Plus

Hyperion Project

Screenshots of the Hyperion project The Hyperion project aims at simulating the deformation of solids in real-time. This project was born during my third year of study at l'Ecole des Mines d'Alès. The underlying method is based on the Finite Element Analysis, and is extensively covered in articles (Part 1, Part 2).

Empirical Software Engineering Laboratory

Position: 
Graduate Research Assistant
Employment Date: 
July, 2002 to July, 2004
Geography: 

ProCaptura

Position: 
Linux Software Engineer
Employment Date: 
November, 2001 to June, 2002

ProCaptura logo ProCaptura develops flat bed large format scanners (FBIV) providing one of the most advanced and accurate capturing devices in the image processing industry. A typical usage consists in scanning maps, and through symbol recognition softwares, to digitize these maps.

Geography: 

ePocket Solutions

Position: 
PocketPC Software Developper
Employment Date: 
July, 2001 to November, 2001

ePocket Solutions logo ePocket Solutions is the editor of Handyman, a standardized set of wireless solutions for field service management running on Pocket PC and Windows Mobile systems.

Geography: 

Axlog Ingéniérie

Position: 
Software Developer
Employment Date: 
June, 2000 to September, 2000
Geography: 

Real-time deformation of solids, Part 2

Solid being deformed In the last article, a solution to deform solids in real-time was outlined. Deforming solids is based on a method called the Finite Element Method (FEM). In order to get real-time results, the FEM has been slightly adapted, and an implementation intended for video-games has been written.

To summarize, the first step of the method which is carried out during the construction of video game levels consists of finding the linear relation between the stress applied on the solid and the node displacements. This linear relation is represented by a matrix which is serialized in a file. During the loading of the level, the application deserializes the file to extract the matrix. During the execution of the level, a collision occurring when a rocket bursts near a wall, for example, is translated into a force vector. Multiplying this force vector by the loaded matrix allows the application to find the deformation of the related solid with a high degree of accuracy. Please refer to the previous article to learn more about the FEM and its modification for real-time scenarii.

Whereas we have been focused on general statements so far, we are now going to have a deeper look at the implementation and its possible optimizations.

Steps of the method

Real-time deformation of solids, Part 1

Screenshot of a deformed cube In the last few years, an important hardware gap has been filled by the video game industry: the GPU have replaced the CPU and software emulation. Although physics simulation has been extensively studied since the beginning of the computer age, this kind of simulation paradoxically remains little explored by video games.

Let us take the case of physics simulation. Before the birth of the computer age, physicians had come up with many analytical equations for various physical problems. But unfortunately, these equations were focusing on simple cases. When computer started being used, analytical equations finally allowed finding approximate solutions; it was the beginning of the numerical computation.

Numerical methods enable engineers to expand their abilities to solve practical design problems. They now treat real shapes as distinct from the somewhat limited variety of shapes from simple analytic solution. Similarly, they do not need to force a complex loading system to fit a more regular load configuration in order to conform to a purely academic situation. Numerical analysis thus provides a tool with which the engineer may feel free to look for the solution of practical problems.

Subscribe to RSS - C++