# Tutorials

## Skinning

- [ slides (161MB) ] Introduction to character animation (skinning)
- Linear blending cheat sheet
- Dual Quaternion Skinning
- Dual Quaternion Skinning and scale
- Bulge free Dual Quaternion

*Other Sources*

## Geometry Processing, FEM

Harmonic functions:

Triangle meshes:

- Cotangent weights
- Laplacian mesh smoothing (Iterative, implicit, explicit)
- Harmonic weight diffusion
- Harmonic weights (Direct solving)
- Laplacian matrix & Laplace operator (Definition)
- Curvature

Regular grids (TODO)

- Harmonic weights
- Bi-harmonic stencils (1D, 2D)

## Implicit Surface / Distance Field

- Introduction
- Global and compact support
- Normal of a distance field
- Transformation
- TODO: Common blending and advanced blending operations
- ...
- [ code ] [ subject (FR) ] Labs on Hermite Radial Basis Functions (HRBF) for point cloud reconstruction
- HRBF tutorial
- Mean curvature

*Other Sources*

*Material from my former PhD director Pr. Loïc Barthe (mostly in French)*

- Slides on the foundation of implicit surface.
- Seminar on implicit blending (and also gradient blending etc.)

## General 3D Graphics

### OpenGL 3.0

[ code (FR/EN) ] Tutorials and C++ code to introduce OpenGL 3.0 using a Qt 5.0 window and CMake. You'll also find assignement instructions (in French) with very detailed comments inlined in the code to learn step by step OpenGL functions. (usually taught to 4th year university students). Although you should not need them you can ask for answer sheets by email. Note all assignment were translated from French. Please ask for English translation if you think you want to try them. To dive deeper into OpenGL and graphic programming take also a look at open.gl.

### OpenGL 2.1

This is an old tutorial mostly about the **deprecated** openGL 2.1. It can be useful to understand old projects (many are still using GL 2.1) and is easier to learn at first. But since you will have to learn openGL 3.0 at some point you might want to jump to it directly. Note that this course was designed for Master students.

### GL 2.1: lessons

- Chap1: [ pdf ] [ odt ] introduction to OpenGL 2.1 and GLUT
- Chap2: [ pdf ] maths on affine transformations and projection (Agnostic to OpenGL version)
- [ course slides ]

- (French) [ pdf ] [ odt ] Phong shading explained
- (Fr/En) Phong shading cheat sheet

*Other Sources*

### GL 2.1: Practicals & Exercices

- 01 [ pdf ] [ odt ] [ code ] Introduction
- 02 [ pdf ] [ odt ] [ code ] Transformations
- 03 [ pdf ] [ odt ] [ code ] Lighting
- 04 [ pdf ] [ odt ] [ code ] Camera
- 05 [ pdf ] [ odt ] [ code ] Mesh loader
- 06 [ pdf ] [ odt ] VBOs
- 07 [ code ] Bezier curves

### GL2.1 corrections

### DirectX 11

(Miscellaneous resources)

- [ My C++ sample ] to setup a basic window with Windows API; every line of code is explained with comments and links.
- Getting started with DX11: List of online tutorials/youtube playlist documentation
- COM pointers and DirectX
- [ DirectX Error Library ] to make returned 'HRESULT' values human readable.