Well, I finished the thesis, but couldn’t update these pages. So, by the time you can directly check the pdf file for more information.



Keywords: computer graphics, skeletal animation, skinning, deformations, shading, manifold harmonics

This page will be updated frequently since I have begun to write my thesis…

My thesis focuses on  finding  relationships  between  motion  and  appearance  of  real world objects consisting of a skeleton animating a skinned character. The main goal is to  study  how  different  parameterizations  of  joints, 3D  vertices,  orientations,  etc.,  can help us to explain or reduce animation-dependent light transport. We are developing a system  that  extracts  appearance information  under  motion  data,  and  then  dynamically animate  the  associated  character  in  an  environment  under  varying  external  physical stimuli and lighting conditions.

Currently, we are working with ambient occlusion (AO). You can refer this page for getting some information about AO. Even though ambient occlusion is relatively simpler case than other complex shading techniques, it is quite important for realism. SSAO based techniques are current de facto ambient occlusion techniques for video game development. These techniques are fast for real time applications and done in screen space; however, they are error prone techniques and cannot produce realistic results.

Our approach creates realistic results since it learns and approximate real world results, and this approximation can be done in real time with a simple dot product operations.

In addition to that, our investigation can be extended to other visual effects and techniques such as rendering human skin (subsurface scattering), changes in color, deforming muscles, fur movement, clothing deformations, precomputed radiance transfer (PRT) etc..

Learning Process and Real Time per Vertex Approximation

There is a linear connection between motion and corresponding appearance. Our system uses this for its learning process. A linear system (below) based on  [Kontkanen et al.2006] is constructed and the parameters gathered by solving this system are used later for real time per vertex ambient occlusion approximation.

Apxv = JpxnTnxv

where, A is a p x v  matrix containing ray-traced ambient occlusion (ground truth values), J is a p x n matrix containing reference poses, T is a n x v matrix containing the parameters we are seeking where, p is number of reference poses, v is number of vertex numbers, and n is size of the parameterization used. For example, if vertex positions of the mesh is used for parameterization, then size of v and n will be the same.

Later, these t parameters can be used with different motions (poses) for approximating per vertex ambient occlusion in real time as below:
ai = j · ti

where, ai is AO result of vertex i, j is current pose vector, and ti is parameters of vertex i. Our latest parameterization based on [Vallet08] performs this operations for the whole vertices in the cluster. This means, for bases parameterization, ai becomes vector of per vertex AO results of cluster i, and ti becomes approximated harmonics bases of cluster i.

Parameterization Techniques

We used joint angles ([Kontkanen et al.2006]), vertex positions, clustered vertex positions, and finally frequency space parameters of ray traced AO based on harmonic bases of the manifold (mesh) during our parameterization.

While other parameterizations failed with complex motions and caused flickering in the results, frequency space parameterization is able to approximate ground truth values in 10-30 error rate (Please refer to tables below).

Until more content is added, you can refer this page for frequency space parameterization, and this page for other parameterization techniques.

Comparison of Parameterization Techniques

Striking Animation Ray Traced Ground Truth

Striking Animation Ray Traced Ground Truth

Joint Angle Approximation

Joint Angle Approximation

Clustered Vertex Pos. Approximation

Clustered Vertex Pos. Approximation

Regularization - Clustered Vertex (lambda = 0.00001)

Regularization – Clustered Vertex (lambda = 0.00001)

Clustered bases approximation

Striking Animation Clustered Harmonics Bases Approximation (Frequency Space Parameterization) -gif loading may take some time-


Joint Angle Approximation Clustered Vertex Pos. Approx. Clustered Vertex Pos. with Regularization Clustered Harmonics Bases
Error Rate 10-4 10-3 10-1 10-30
Visual Results Fails at complex motions (Flickering) Fails at complex motions (Flickering) Fails at complex motions (Flickering) Can work with any kind of motion (No flickering)