GithubHelp home page GithubHelp logo

philipluk / supercages Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cordafab/supercages

0.0 1.0 0.0 2.29 MB

A framework for real-time deformations with coupled skinning cages and skeletons

License: MIT License

C++ 97.74% C 1.24% QMake 1.02%
pluk-rigging pluk-gamedev

supercages's Introduction

Real-time Deformation with Coupled Cages and Skeletons

Corda Fabrizio, Jean-Marc Thiery, Marco Livesu, Enrico Puppo, Tamy Boubekeur, Riccardo Scateni

PDF

Skeleton-based and cage-based deformation techniques represent the two most popular approaches to control real-time deformations of digital shapes and are, to a vast extent, complementary to one another. Despite their complementary roles, high-end modeling packages do not allow for seamless integration of such control structures, thus inducing a considerable burden on the user to maintain them synchronized. In this paper, we propose a framework that seamlessly combines rigging skeletons and deformation cages, granting artists with a real-time deformation system that operates using any smooth combination of the two approaches. By coupling the deformation spaces of cages and skeletons, we access a much larger space, containing poses that are impossible to obtain by acting solely on a skeleton or a cage. Our method is oblivious to the specific techniques used to perform skinning and cage-based deformation, securing it compatible with pre-existing tools. We demonstrate the usefulness of our hybrid approach on a variety of examples.

SCA2020 Video Presentation

Trailer

SCA2020 Trailer

SCA2020 Full Presentation

Installation

SuperCages can be compiled using the supercages.pro qmake file placed in the project root. SuperCages has been tested with:

  • Intel MacOS 11.1
  • Apple Silicon MacOS 11.1
  • Ubuntu

MacOS configuration

Install Qt and libqglviewer using the installers provided on the respective websites. Use brew to install gsl, glm, and Eigen:

brew install gsl
brew install glm
brew install eigen

Ubuntu configuration

Install Qt using these instructions. Use apt to install libqglviewer, its dependencies, gsl, glm and Eigen:

apt install libglew-dev
apt install libqglviewer-dev-qt5
apt install freeglut3-dev
apt install libgsl-dev
apt install libglm-dev
apt install libeigen3-dev

Example Usage

In the _DataExamples folder you can find the Arm rig example.

Press the Load Rig button placed in the left side of the SuperCages UI to open the file selection dialog window.

Choose the arm.obj file to load the skin geometry. SuperCages will load automatically the arm.ska and arm.skw files that contain the skeleton topology and its weights.

Then, a second dialog window will show up: choose arm_cage.obj to load the cage geometry. SuperCages will load automatically the arm_cage_cageWeights.txt cage weights file, and the arm_cage.maxvol maxvol data.

Press the Load Skel Anim button and select arm_skelAnim.txt to load the provided skeleton animation.

Press the Load Cage Anim button and select arm_cageAnim.txt to load the provided skeleton animation.

Click on the main canvas, and press the P keyboard button to play the example animations.

You can obtain additional information about the file composition opening each one in a text editor.

Acknowldegment

If you use SuperCages in your academic projects, please cite us using the following BibTeX entry:

@article{doi:10.1111/cgf.13900,
  author  = {Corda, Fabrizio and Thiery, Jean Marc and Livesu, Marco and Puppo, Enrico and Boubekeur, Tamy and Scateni, Riccardo},
  title   = {Real-Time Deformation with Coupled Cages and Skeletons},
  journal = {Computer Graphics Forum},
  volume  = {39},
  number  = {6},
  pages   = {19-32},
  doi     = {10.1111/cgf.13900},
  url     = {https://onlinelibrary.wiley.com/doi/abs/10.1111/cgf.13900},
  eprint  = {https://onlinelibrary.wiley.com/doi/pdf/10.1111/cgf.13900},
  year    = {2020}}

supercages's People

Contributors

cordafab avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.