Well, I finished the thesis, but couldn’t update the pages. So, by the time you can directly check the pdf file for more information.
Čau!
——————————————————————————————————-
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
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) |