Ambient Occlusion for Animated Characters Implementation

I developed this project for IFT6095 Real-time Rendering course. Precomputed Ambient Occlusion for Animated Meshes, and Model Rendering and Precomputed Ambient Occlusion for Static Meshes pages are also related to this project.


We investigate a linear relation between ambient occlusion and animation poses for approximating ambient occlusion at run time.Our method takes per vertex ambient occlusion results, and animation parameters, such as joint angles, as inputs, and estimates some parameters (AO parameters). Then, these parameters are used for approximating ambient occlusion by multiplying with the current animation parameters at run time.When AO parameters are approximated with enough number of uniformly selected samples in the pose space, our method can approximate ambient occlusion results with low error rate with respect to the ground truth values. This investigation was built on “Ambient Occlusion for Animated Characters” [Kontkanen et al.2006].


Ambient occlusion is used to approximate the effect of environment lighting. It is a simulation of the shadowing caused by objects blocking the ambient light. Ambient occlusion helps to improve the perception of the areas, and objects in the scene by giving clues to depth. It also improves the realism of the rendering results. Ambient occlusion can approximate the effects usually computed by using global illumination with significantly less computation costs.

Calculating ambient occlusion for animated objects is more difficult than static objects since; ambient occlusion should be updated for each frame for all the objects in real time. To find a method fast enough to work in real time with acceptable results and costs, we decided to investigate a linear relation between pre-computed per vertex ambient occlusion values and animation poses. We computed ambient occlusion values by per vertex ray tracing, and used these values with reference poses for calculating some parameters (AO parameters) that can map ambient occlusion for a given animation pose. During the investigation, we referred “Ambient Occlusion for Animated Characters” [Kontkanen et al.2006].

You can reach the project report here.