Tutorials
#Skinning
- [
slides (161MB) ] Introduction to character animation (skinning)
- Linear blending cheat sheet
- Dual Quaternion Skinning (
jp )
- 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
- Harmonic weights
- Bi-harmonic stencils (1D, 2D)
Tetrahedral meshes
Curves
Misc
#Mesh deformation
- Simple repulsive fields
- Deformation map: infer the object's normal transformation
- Jiggle deformation explained
#Implicit Surface / Distance Field
- Introduction
- Contour lines
- 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
- Íñigo Quílez. Co-creator of shader toy provides astounding tutorials on distance fields/implicit surfaces modeling. (Implicit snail shader example)
- Introduction to ray marching distance fields (implicit surfaces) and boolean modeling.
- Introduction to implicit surface modeling
- Ray marching (sphere tracing) in Unity
- Sphere tracing paper
- Easy antialising
- Advanced antialising
- A librarie with simple implicit surface blending operations.
- Clayxels -- implicit modelling plugin for unity
- MagicaCSG -- Standalone implicit SDF modeller
- Womp -- In browser (chrome) implicit SDF modeller. (presentation video)
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.)
#Maya
General development:
- Setup IDE / environment development to develop C++ plugins.
- Maya programmer cheat sheet
- How to distribute Maya plugins
- Some MEL commands and procedures
- Iterate over elements of an array attribute with MEL & Python
C++ API tutorials:
- Allow user to paint weight for a custom deformer node (MPxDeformer) via C++ API
- Get currently selected vertices via C++ API
- set skin weights of a skincluster via C++ API
- Save node attributes (MPxData) on file via C++ API
- Display and set per vertex color of a mesh via C++ API
- Control curve/spline as a node attribute
- Custom Skin Cluster Node via C++ API
- Add progress window or bar via C++ API
Minor tips:
#Unreal Engine
- [C++] what are delegates and how to use them. (a.k.a event dispatch)
- [C++] TArray doc sheet
- [C++] TMap doc sheet
- [C++] FMatrix doc sheet
- [C++] USkeletalMesh doc sheet
#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 or learnopengl.com.
Misc: emulate GL2.1 direct drawing with gl 3.0 >
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 ] [
odt ] maths on affine transformations and projection (Agnostic to OpenGL version)
- [
course slides ]
 Fr: Phong shading explained [
pdf ] [
odt ]
 Fr,
 En: Phong shading cheat sheet
Other Sources
GL 2.1: Practicals & Exercises
- 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 the return value 'HRESULT' human readable.
Misc
- The book of shaders
- C++ code to move objects by grabbing a virtual trackball in the scene with your mouse pointer
#Math
- 4x4 matrix inversion code
- 2x2 singular value decomposition code
- How to avoid SVD (fitting point sets together)
- 3x3 polar decomposition code
- Gradient operator: cheat sheet
- Tensor definition
- Unusual interpretation of the cross product
- Maxima: operator cheat sheet
- Geometric interpretation of the inverse theorem
#Japan
- Learning Japanese
- Learning Japanese: list of resources
- Job interview: SPI personality test (question samples)
- Buy a car in Tokyo
- Find a Parking space in Tokyo
#Miscellaneous
- MDD exporter (Lightwave Point Cache)
- CCD (Cylcic Coordinate Descent) IK algorithm
- HRBF distance field viewer
- Orbit / Trackball emuation for 2D mouse pointer.
- Skin a cylinder in blender