Friday, 21 September 2018

Skeletal Animation based on records from motion capture database

Some time ago i implemented an importer and converter of motion capture records(asc, amc files)
and got it up and running in my graphics-engine.
The results are good after i found the correct order of transformations to be applied.
The files are downloadable at carnegie melon university mocap lab(http://mocap.cs.cmu.edu/).
There you will also find a viewer for the files and everything explained(reference frame, bone transformation etc.).
figure: mocap skeletal character animation
(Engine and graphics: Andreas Walenda)

 
video: mocap skeletal character animation
(Engine and graphics: Andreas Walenda)

Particle Animation by ForceField Simulation

 I recently worked on particle animations by simulating a forceField with two masses creating a gravitational pull on each other(using newtons law of universal gravitation: F1/2 = G * m1*m2/r^2).
The colors in the picture indicate the velocity of each particle and the lines the velocity direction vector. 

figure: particles in gravitational forceField
(Engine and Graphics: Andreas Walenda)

video: particles in gravitational forceField
(Engine and Graphics: Andreas Walenda)
I also added an algorithm to connect particle with its closest neighbour creating a very interesting effect of "attract and let go", just interesting to look at. I added the algorithm as a separate tutorial page("Nearest Neighbour Connection Algorithm for Particles in C/C++").

figure: particles in gravitational forceField connected
to its nearest neighbours
(Engine and Graphics: Andreas Walenda)
video: particles in gravitational forceField connected
to its nearest neighbours
(Engine and Graphics: Andreas Walenda)

Thursday, 8 September 2016

Water simulation based on Spring-Damper Grid Model

The video below shows my first approach on water simulation back in October of 2011 using a spring damper grid.
I chose this approach over many others due to the parametric model and the intuitive way of modeling the dynamics.
Though there are drawbacks in general and in my implementation such as unstable solutions to the equation of motion due to oscillations( resulting from explicit solver( just euler method )  and unstable eigenvalues ).
The values of stiffness and the damping of the elements become more influence the more elements you connect and therefore less predictable in the results.
figure1: interaction of elements (xm denotes position of middle Point, x3 that of direct right hand neighbour,
x_restLen is the resting length where no spring force occurs)

As can be seen in figure1 each element is connected to its direct neighbours in the grid by a spring and  damping element.
I used also the diagonal elements in adding all resulting forces acting on the element to account for the resulting interaction force. Additionally each element has also a "virtual" connection to its initial position cause we don't want the whole thing to drop when applying gravity which is the main driving force behind a stable settlement of all grid-elements.
In this implementation there is only one incident point possible, so you can't have multiple sources of external forces at a time.
The lighting in this demo uses bilinear interpolation of the normals of each grid quad to have a good highlight and overall lighting effect.
I am using forward rendering so transparency wasn't an issue. 

Figure: Water Animation through user interaction
(Engine and Graphics: Andreas Walenda)


Video: Water Animation Spring Damper
(Engine and Graphics: Andreas Walenda)



Wednesday, 1 October 2014

object oriented programming in C

Today i added a short tutorial on how to have some object oriented style in the C Language with private Data and Class-style Operations using opaque pointers ( What is an Opaque Pointer? )
Please see tutorial sections on the right!

Monday, 22 March 2010

playing around with crysis sandbox editor...

Hello,

today i was experimenting on a "shoot the lights out scene" and finally i have build something pretty working.
In fact you can aim with your gun take the light out and instantly a particle effect is spawned, the
lamp drops and a destroyed lamp is spawned replacing the current lampModel.

Conditions for this to work are the following:
1.) make two breakable objects one lamp and one placeholder-lamp with a "destroyed"- texture ->
2.) define a BasicEntity and attach the "healthy" model to it and make sure the entity uses physics and has a mass.
3.) add constraints (magnets with orbitals) from editor physics and attach the basic entity from 2.) to it, we will use the constrains and the maximum forces and torques to define whether it can and when the constraints will become broken in order for your lamp to drop to the ground after shooting it.
3.) now use the flowgraph and query the constraint if broken or not, the "on brake event" should swap the model in the BasicEntity

UPDATE: i made this post back in 2010 and just wanted to overhaul it a bit, sry the pics are lost due to a blog update.
For all who are interested in cryengine 3 and above editor and engine details, this is the place to go docs cryngine( editor, engine, technical details)