Technique d'ombrage NPR pour Blender

Les shaders utilisés pour le rendu non réaliste en 3D simulent souvent l’ombre par des techniques issuent de la bande déssinée comme les trames ou les hachures.

Si l’on ne veut pas utiliser ces effets en compositing, qui donnent l’impression que les objets bougent sous une trame fixe, il nous faut appliquer la texture à l’objet.

le problème de base.

Des trames ou des traits génèrent parfois des interférences visuelles quand, s’éloignant, ils deviennent trop petits ou se chevauchent à l’écran, on apelle cela le moirage.

Exemple avec une texture algorithmique faite de points simulant une trame, plus l’objet recule, plus les points se rapetissent augmentant d’autant le risque de moirage.

Exemple moirage


la solution du scaling.

Si l’on agrandit la texture elle même pour compenser, on maîtrise la taille des points qui restent suffisemment gros, mais l’objet semble glisser dans une mer de points.

Exemple scaling


la taille du point.

Une solution consiste à grossir la taille des points, ceux-ci semblent se rapprocher les uns des autres, couvrant plus la surface de l’objet, l’effet peut être atténué en donnant une couleur grise aux points.

Exemple taille

Pour gérer la taille du point, on couple une ramp avec la sortie Distance d’une Voronoi texture.

Exemple ramp


Automatiser.

Pour permettre l’animation de la taille des points, on remplace la ramp par un multiply add.

Exemple multiply add

Puis on récupère la distance à la caméra, avec Map Range on transforme les positions les plus éloignées et plus proches de l’objet à la caméra par les valeur donnant les bonnes tailles de points.

Exemple profondeur