Baking d'occlusion ambiante avec Blender

L'occlusion ambiante est une technique de ray-tracing. Plusieurs rayons sont lancés dans toutes les directions à partir de chaque point de la surface de l'objet. Deux cas de figures se présentent :

  • le rayon part à l'infini, le point sera calculé en prenant en compte l'illumination maximale et la couleur du background si cette option est activée,
  • le rayon rencontre une autre partie de l'objet ou même un autre objet, il en sera tenu compte pour la valeur d'illumination (intensité diminuée),
  • l'effet final est une sorte d'illumination globale... complètement fausse... mais suffisamment réaliste pour faire l'affaire.

Les éléments requis

Un objet 3D terminé avec sa carte de dépliage UV. Attention, il faut éviter les faces coplanaires dans ce dépliage. Chaque face de l'objet doit disposer de son espace propre et unique dans la texture. Il est également nécessaire que les objets proches qui doivent être pris en compte dans le calcul de l'occlusion ambiante soient réalisés. Un matériau quelconque sera appliqué sur l'objet avec une valeur ambiante différente de 0. Contrôlez bien ce point si vous obtenez un baking de l'occlusion ambiante complètement noir !

La réalisation du baking

Commençons par un agencement de l'interface de Blender : une fenêtre "3D View" et une fenêtre "UV Image Editor" en haut pour visualiser le travail en cours, une fenêtre "Buttons" en bas pour le paramétrage et le lancement du calcul.

Dans la fenêtre "Buttons", panneau "Shading", onglet "Amb Occ", activez "Ambient Occlusion", et utilisez comme valeur d'échantillonnage "Samples" 5 pour commencer. Le rendu sera "granuleux" mais rapide pour les premiers tests. Au moment du calcul final, optez pour une valeur "Samples" à 20. Le nombre de rayons calculés depuis un point de la surface de l'objet sera égal à cette valeur. Ce sera beaucoup plus long mais le résultat sera utilisable.

  • Les paramètres de l'occlusion ambiante réglés, on sélectionne toutes les faces de l'objet dans la fenêtre "3D view" en mode "Edit"
  • Dans la fenêtre 'UV Image Editor", création d'une nouvelle image, nommez la et sauvez cette image dans le même dossier que votre objet.
  • Utiliser le double de la résolution nécessaire, il n'y pas d'antialiasing à l'occasion de ces calculs de baking. On réduira la texture réalisée à ses dimensions utiles dans Gimp ou Photoshop par étapes successives pour contourner cette fonction manquante de Blender V.2.49.
  • Passons maintenant au panneau "Scene" dans la fenêtre du bas et définissons les paramètres du baking
  • Activez l'option "Ambient Occlusion" dans l'onglet 'Bake"
  • Dans ce même onglet, validez l'option "Normalized", le rendu utilisera ainsi la totalité des nuances entre le blanc et le noir
  • L'option "Clear" validée effacera les données présentes dans l'image précédemment créée.
  • Pour finir, toujours dans cet onglet "Bake", entrez une valeur de 1 ou 2 pour le paramêtre "Margin". Le calcul du baking débordera de 1 ou 2 pixels par rapport au dépliage UV garantissant la bonne couverture du baking sur les arêtes extérieures des "iles" du dépliage.
  • Enfin, on clique sur le bouton "Bake" et on patiente... Cela peut-être long sur certaines configurations.
  • En activant l'option "Textured" pour l'ombrage de votre fenêtre 3D, vous verrez apparaître la passe d'occlusion sur votre modèle

Si vous constatez la présence de triangles noirs dans votre baking, c'est qu'il y a un problème de normal sur cette face. Il suffit de sélectionner la face incriminée et d'inverser la normale à la face en saisissant W pour faire apparaître le menu "Specials" et de choisir l'option "Flip Normal".

N'oubliez pas de sauver l'image calculée, Blender ne le fera pas pour vous !

L'application du baking

Il ne reste plus qu'a importer votre passe d'occlusion dans votre texture sur un nouveau calque en mode "Multiply" dans votre éditeur 2D favori. Il suffit d'agir sur le paramètre "Opacité/intensité" du calque d'occlusion ambiante pour nuancer l'effet.

Pour finir, il est utile d'exclure du calcul de l'occlusion ambiante les éléments mobiles de votre objet, l'"ombre" de ces objets n'est en fait valable que pour leur position par défaut et malheureusement pas pour les autres positions possibles.

Certes, c'est un peu long et compliqué mais le résultat peut être assez convainquant. A vous de jouer !