# Diffusing / smoothing weight map over a triangular mesh.

Showcasing simple procedures with C++ code to smooth / diffuse per vertex weights over a triangle mesh.

# Implicit surface a.k.a (signed) distance field: definition

If I say "implicit surface" you may think of metaballs and marching cube, I'll show you there is more to it!

# Dual Quaternion Skinning with scale

**DQS **with scale applied on the second to last joint. Left, globally propagates until the last bone, right, scale localized to each joint.

Here I'm merely paraphrasing Kavan's **DQS **article using my own notations and words.

# Transforming implicit surface (distance field) and their gradient

\( \renewcommand{\vec}[1]{ \mathbf{#1} } \)

# Transform normals given a deformation map

Changing the shape of a 3D mesh is a very common operation in computer graphics. For instance, rotations, translations etc. are very basic forms of mesh deformations. Of course more complicated algorithms exists to deform your mesh such as wrap deformers, linear blending skinning and so on... During the design of these algorithms you might face a question: how do I transform the normal of the original shape in rest pose to the deformed shape? This entry will give you some pointers to compute it.

# Blender tutorial to animate a cylinder

The goal of this tutorial is to describe step by step the process of skinning a simple cylinder with two joints in Blender 2.5 and superior. This is a beginner lesson in the sense that I will describe as much as possible shortcuts and actions, however, there will be no high level explanations.

Note for the scholars: blender implements the heat diffusion method to compute skinning weights, linear blending and dual quaternion skinning are used to deform the mesh.

# Harmonic function: definitions and properties

This is the second part of my tutorial series on bounded harmonic functions. For a quick introduction and examples of use of harmonic functions read the first part. In this part I define harmonic functions and their properties. This is the hard part with a lot of mathematics. But it's a mandatory step to understand how harmonic functions work. This will allow you to apply them in a broader context and understand many scientific papers relying on these. In addition this will be my entry point to introduce Finite Element Method in future posts. So hang on it's worth it!

# How to generate bounded harmonic functions on regular grids

(a)

(b)

(c)

(d)

Generating an |

## Summary

In this tutorial I give the basics to be able to compute harmonic functions \( f: \mathbb R^n \rightarrow \mathbb R\) over a regular grid/texture (in 1D, 2D or 3D). All you need is to set a few values on the grid that define a closed region (see figure above), then the remaining values are automatically computed using the so-called Laplace operator and solving a linear system of equations. After a quick and "mathless" presentation of an easy way to implement this in C++, I will explain the mathematical jargon. This tutorial is the first of series which will lead to more complicated techniques like Finite Element Methods (**FEM**).

# Dual Quaternions skinning tutorial and C++ codes

In this entry I provide [ C++ code ] to deform a mesh with the famous *Dual Quaternion Skinning* (**DQS**) deformer. This tutorial aims to present and explain the general idea behind *Dual Quaternions* and give means to integrate it quickly into a pre-existing *Linear Blending Skinning* (**LBS**) pipeline. My goal is to give the minimal set of explanations to re-use my code quickly. Therefore I will try not to dwell too much on the maths which are thoroughly explained in the original paper: *"**Geometric Skinning with Approximate Dual Quaternion Blending".*

I will also assume the reader have some basic knowledge about *Skeletal Animation* and *Quaternions* (used as a mean to represent 3D rotations).

# Convert implicit surface defined with global support to compact support

In mathematics functions are sometime characterized as compactly or globally supported. I will explain what it means and how to convert a function from global to compact support in the context of implicit surface modeling (i.e. boolean modeling with implicit surfaces as objects).

# Recipe for implicit surface reconstruction with HRBF

In this entry I'll explain and give code for the easiest method I know to reconstruct a surface represented by a scalar field \(f: \mathbb R^3 \rightarrow \mathbb R\) by interpolating a set of point with their normals. The method is called Hermite Radial Basis Function (HRBF) interpolation. The audience aimed is anyone with some basic knowledge about implicit surfaces (which people often know as metaballs and render with the marching cube algorithm)

#### Quick links:

- [ HRBF core sources ] [ HRBF toy app sources ] [ HRBF toy app binaries ]
- [ maths details ] [ maths summary ] [ tex sources (FR) (EN) ]

- « Previous page
- 1
- Next page »