Skip to content

Library to Compute Centres of Rotation for Optimised Centres of Rotation Skinning by Le and Hodgins 2016 "Real-time Skeletal Skinning with Optimized Centers of Rotation"

License

Notifications You must be signed in to change notification settings

pmbittner/OptimisedCentresOfRotationSkinning

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Thesis License

CoRCalculator - Library to Compute Centres of Rotation for Optimised Centres of Rotation Skinning

This is a small C++ library and re-implementation to compute optimized centres of rotation for skinning 3D graphical models with the skinning method proposed by Le and Hodgins in 2016 in their paper Real-time Skeletal Skinning with Optimized Centers of Rotation. Moreover, the library contains GLSL shaders for optimized centres of rotation skinning as well as for the classical linear blend skinning and dual-quaternion skinning. Le and Hodgins present their method in this video.

Instructions

An example on how to use the library is given in example.cpp.

The CMake file is tested on Linux and Windows.

When compiled with the flag COR_ENABLE_PROFILING, the CoRCalculator will print the times it has needed for each step.

The library has to be linked with the option -pthread, as it uses multithreading (std::async).

Dependencies

This library solely depends on the header-only library glm. On Linux, installing libglm-dev with apt suffices. On Windows, finding glm may require some changes, as we do it manually.

Shader

We provide GLSL vertex shader logic for these three skeletal skinning techniques:

The file skeletons.glsl contains the perform_skinning function, that computes one of these three methods, depending on a uniform variable. The files quaternion.glsl and dualquaternion.glsl each contain utility functions for their respective mathematics and have to be compiled together with the vertex shader because they are required by skeletons.glsl. We split these files so that you may pick what you need, since the skeletons.glsl file has to be customized anyway (especially the layout locations of the attributes).

Citation

This repository contains code corresponding to:

P. Bittner, JP Tauscher, S. Grogorick, M. Magnor. Evaluation of Optimised Centres of Rotation Skinning. Poster @ International Conference on Computational Visual Media (CVM) 2019

N. Magnenat-Thalmann, R. Laperrire, and D. Thalmann. Joint-dependent local deformations for hand animation and object grasping. In Proceedings on Graphics interface’88. Citeseer, 1988

L. Kavan, S. Collins, J.Žára, and C. O'Sullivan. Skinning with dual quaternions. In Proceedings of the 2007 symposium on Interactive 3D graphics and games, pages 39–46.ACM, 2007

B. H. Le and J. K. Hodgins. Real-time skeletal skinning with optimized centers of rotation. ACM Transactions on Graphics (TOG), 35(4):37, 2016

Please cite as:

@misc{bittner2019evaluation,
  title = {Evaluation of Optimised Centres of Rotation Skinning},
  author = {Bittner, Paul Maximilian and Tauscher, Jan-Philipp and Grogorick, Steve and Magnor, Marcus},
  howpublished = {Poster @ International Conference on Computational Visual Media 2019},
  month = {Apr},
  year = {2019}
}