This repository provides the codes used to reproduce the results shown in the following paper: Velocity Skinning for Real-time Stylized Skeletal Animation. Damien Rohmer, Marco Tarini, Niranjan Kaylyanasyndaram, Faezeh Moshfeghifar, Marie-Paule Cani, Victor Zordan. Eurographics, Computer Graphics Forum vol.40, n.2, 2021.
A project webpage associated to this article is available at: https://velocityskinning.com.
- left click + mouse drag: rotation
- right click + mouse drag: zoom
- CTRL + left click + mouse drag: pan
- CTRL + right click + mouse drag: translation forward/backward
- SHIFT + left click on a joint: joint selection (followed by mouse drag to articlate it)
The directory 01_fig_generic/
contains the standard C++ implementation used to generate most of the illustrative images didn't requiering GPU acceleration.
The following video describes the use of this code to generate most of the figures (such as Fig.4, 5, 9, and 10), and results shown in the demonstration video.
The directory 02_fig11_gpu/
contains the GPU implementation set to display the Cthulhu character in looping animation.
The directory 03_fig_teaser_cow_meadow/
contains the GPU implementation set to display the meadow of cows corresponding to the right-side of the teaser image.
The directory 04_dragon_web/
contains the web implementation that was used to take the view of the dragon shown in Fig.12.
- The code is fully implemented in JavaScript.
- The webpage may need a server (ex. python3 -m http.server) to load the mesh files.
- A hosted version is available at https://velocityskinning.com/web_demo/index.html.
Requires a C++ compiler, cmake, libglfw3
- Command lines to set-up an Ubuntu system from scratch
# Basic development tools (g++, make, etc)
sudo apt-get install build-essential
# CMake
sudo apt-get install cmake
# GLFW
sudo apt-get install libglfw3-dev
Ex. to compile the code in directory 01_fig_generic/
(and others) using the default Makefile (for standard system)
- Open a command line in 01_fig_generic/ directory
make
./scene
Ex. to compile the code in directory 01_fig_generic/
(and others) using CMake (should work on more various systems)
- Open a command line in 01_fig_generic/ directory
# Generate the directory build/
mkdir build
# Go to the build/ directory
cd build
# Run CMake
cmake ..
# A file Makefile should be generated
# Compile
make
# Make sure the compilation succeed, a file pgm should be created
# Go back to the root directory
cd ..
# Run the executable from the root directory
build/sample_code
Method to compile with Visual Studio 2019 and CMake the code in directory 01_fig_generic/
(similar operations for 02_fig_11_gpu and 03_fig_teaser_cow_meadow).
- Start CMake (cmake-gui)
- Fill "Where is the source code" with the full path to the directory 01_fig_generic/
- Fill "Where to build the binaries" with the full path to 01_fig_generic/build
- Click Configure
- Once the configuration is done, click on Generate
If successfull, a build/ directory is created and contains the file pgm.sln
- Start Visual Studio and open the project file
pgm.sln
In the solution explorer
- Right click on Solution 'projectName' (Solution 'sample_code' in the sample code) and select Properties
- Change the value of
Single startup project
topgm
(this sets Visual Studio to compile the current project instead of a generic "All_BUILD" empty project).
In the top toolbar
- Change the build type from 'Debug' to 'RelWithDebInfo' (this allows to have optimal runtime performance, while preserving debug information).
- In Local Windows Debugger, select 'projectName Debug Properties'.
- In the General properties (selected by default) change the value of Output Directory in removing the directory 'build\RelWithDebInfo' from the path (the end of the pathname)
- (As a result, the executable
pgm.exe
will be generated in the root directory of the project instead of a build\RelWithDebInfo\ subdirectory).
- (As a result, the executable
-
In the Debugging property change the value of Working Directory from $(ProjectDir) to $(TargetDir)
-
The project should now be ready to be compiled and run.
@article{velocityskinning2021,
title={Velocity Skinning for Real-time Stylized Skeletal Animation},
author={Damien Rohmer, Marco Tarini, Niranjan Kaylyanasyndaram, Faezeh Moshfeghifar, Marie-Paule Cani, Victor Zordan},
journal={Computer Graphics Forum, Proc. Eurographics},
volume = {40},
number = {2},
year={2021},
}
The code is released under MIT License. See LICENSE for details.