Render Baking sur un modèle low-poly
Introduction
Tout d’abord, qu'est ce que le render baking?
C'est une technique qui permet de pré calculer des textures. Cet outil sert en particulier à obtenir des normal maps (pas utilisées dans ce tutorial) mais aussi des textures plus détaillées (Full Render).
Dans notre exemple, le render baking va permettre d'appliquer les effets d’ombre, de bump, de lumière et d'AO sur les textures.
Pour résumer, ces effets sont "dessinés" sur les textures.
Ces dernières seront appliquer aux meshs pour simuler ces effets. L'avantage de cette méthode c'est que votre ordinateur devra effectuer moins de calculs.
Par exemple calculer de l'ao en temps réel se révélerait être une opération très lourde.
Une fois l'ao baké, votre ordinateur ne devra prendre en compte que la texture bakée ...et c'est tout (à vous le gain de fps).
L'inconvénient majeur vient du fait que les ombres sont fixées (les objets 3D ne peuvent pas servir à un jeux qui gère le cycle jour/nuit par exemple).
Préparation
Notre modèle 3D low poly est donc destiné à être intégrer à un jeux vidéo.
On va créer une petite maison.
Cette méthode s'applique en particulier aux objets immobile, son utilisation pour tout ce qui est personnages, monstres etc ne serait pas judicieuse.
L'important n'est pas de savoir créer un modèle low poly mais de savoir appliquer une texture bakée à ce modèle.
C'est pourquoi vous etes libre de ne pas respecter la modélisation de l'objet qui suit à la lettre (ce tutorial ne détail pas la partie modélisation low poly).
Sachez seulement qu'il est composer de poutres , de 4 murs intérieurs , 4 murs extérieurs , 1 sol , le sol extérieur , 1 plafond , un toit et une cheminée .
Comme vous pouvez le constater, le modèle reste relativement simple :
Tous ces éléments ne forment qu'un seul et unique objet (mise à part le sol extérieur) .Veillez à bien respecter un polycount (ne pas oublier que c'est du low poly).
Les murs intérieurs et extérieurs sont des meshs différents (en effet le render baking ne marche pas pour le "double sided").
Le sol extérieur ne sera pas baké mais il est utile pour l'effet d'AO sur les murs extérieurs.
Dépliage
Première étape : vérifier les normales .La normale d'un mesh indique vers quel face votre texture sera visible.
En effet, contrairement aux rendus sur lesquelles les textures s'affichent des deux cotés du mesh, en temps réel la texture ne s'affiche que sur une seule face
(sauf si on coche l'option '"double sided " ou "two side" ).
De plus lors du render baking, on est obliger de ne travailler que sur une seule face sinon blender va calculer deux fois la texture
(l’une sur l'autre ainsi un des deux motif disparaîtra).
Pour verifier si les normales sont bien tournées on passe soit en mode "UV Face Select" ou en "Edit Mode" en prenant soin d'avoir cocher le bouton " Draw Normals"
(Onglet Editing (F9)>Mesh Tools 1).
Pour inverser les normales, choisissez la face en edit mode et faites ctrl+n ou ctrl+shift+n .
Cas où les normales sont dans le mauvais sens :
Cas où les normales sont dans le bon sens :
Cas où les normales ont éte inverser en premier puis où le mesh a été baké:
Cas où les normales n'ont pas été inversées, le mesh a été baké et en dernier les normales sont inversées trop tardivement:
Dernière indication sur les normales : vérifier que ces dernières pour les éléments "sol intérieur" ,"plafond" et "les 4 murs intérieurs" soient tournées vers l'intérieur .
Une fois ceci fait, passons au dépliage .C'est la partie cruciale. Votre render baking sera basé sur votre depliage.
On va utiliser une texture de 1024*1024 (dans la partie qui suit) afin de ne pas obtenir des textures trop floues. Passez en mode "Uv Face Select" , séparer votre écran en deux
( à gauche avec la vue 3D (shift+F5) , à droite en UV/Image Editor (shift+F10)).
Pour des raisons de simplicité et de rapidité on va principalement utilisé l'outil touche U >Project from view ( en mode "Uv Face Select " ).
Pour commencer sélectionnez tout le modèle et vous verrez son dépliage apparaître dans la 2ème fenêtre.
Comme vous pouvez le constater, il n'est pas encore vraiment déplié et équivaut au dépliage UV Reset.
Dans le fenêtre de droite sélectionner toute les faces dépliées en Uv Reset et mettez les de coté (en dehors de la grille). On va déplier les faces une par une.
Choisissez la façade extérieure du modèle et faites touche U >project from view en vous assurant d'être bien en face du modèle pour obtenir ceci :
Placer son dépliage a peu prés comme sur l'image. L'idée est que chaque face est unique se qui rend la texture elle aussi unique au final. Aucune face ne doit se croiser.
Gardez à l'esprit que les textures grandes et visibles sont celles qui occupent en priorité l'espace du dépliage.
Par exemple, imaginez une texture de décor, une falaise, mais qui se trouve éloignée du joueur et qui n'est pas accessible de prés. Sa taille serait imposante mais du fait de son éloignement il ne serait pas utile que d'avoir une grande texture
(dans l'hypothèse que le render baking soit utilisé ).Même cas pour les objets petits et proche qui n'ont pas besoin d'occuper toute la zone de dépliage.
La répartition de l'espace du dépliage est essentielle car ce dernier est limité.
Continuez de déplier les murs, toit et cheminée (pas besoin d'utiliser les marks seams, utilisez la même méthode que pour la façade) .
Mais pour l'instant ne touchez pas aux poutres.
Voici le dépliage du modèle sans les poutres ( avec justement un espace pour celle ci ) :
Pourquoi avoir attendu de déplier les poutres ? Comme vous pouvez le constater elles sont nombreuses, ce qui veut dire un dépliage plus long a réaliser.
Sélectionnez toute vos poutres en edit mode, faites ctrl+touche e et faites "Mark Seam" , toutes vos poutres ont alors des arrêtes oranges .
Gardez vos poutres sélectionnées, passez en mode "Uv Face Select"et faites touche U >unwrap(smart projection) .Vous obtenez ceci :
Vous pouvez bien sur utiliser une méthode de dépliage plus courante et plus propre. Celle-ci est la plus rapide.
Dans la fenêtre de droite, sélectionnez ce nouveau dépliage et placé le sur le coté en dehors de la grille.
Puis, dans la fenêtre de gauche faites touche a pour sélectionnez toutes les faces (vous etes toujours en mode "UV Face Select" normalement).
Placez le dépliage des poutres à l'endroit vide et vous obtenez ceci :
Votre modèle 3D est entièrement déplié (et vous pouvez supprimer les Seams avec touche e+ctrl >clear seam si vous en avez envie).
Texturing
Choisissez une résolution (ici 1024*1024) et grâce à votre dépliage et à un logiciel de retouche d'image créez votre texture:
Créez un matériel et appliquer lui la texture non bakée dans l’onglet "Texture buttons (F6)">texture type = Image. Dans "Load" choisissez votre texture non bakée.
Dans l'onglet principale des Materials ,dans l'onglet "Map Input" cochez "UV" puis dans l'onglet "Map To" cochez "Nor" deux fois avec une valeur de 2 .
Lighting
Etape essentielle qui permettra de fixer les effets de lumière, d'ombre et d'AO.
Commençons par la lampe principale, un sun de valeur 1 (n’oubliez pas de cocher ray shadow).
Ajoutez de L'AO (samples 5 (ou plus, il est conseillé de le mettre au maximum), énergie 2).1 hemi de valeur 0.1, bleu, a l'opposé du sun, en hauteur.
2 areas a l'intérieur de la maison, valeur 0.1, samples 05 (16 conseillé), umbra, dither et noise cochés, Dist 0.8.
Et une lampe, au centre de la maison, valeur 1.5, Dist 0.8, Ray Shadow decoché.
Au rendu on obtient :
Render Baking
Enfin ! La dernière étape ! La plus simple aussi .Choisissez votre modèle 3D en mode "UV Face Select".Il est déplié avec la texture non bakée.
Dans la fenêtre de droite (UV/Image Editor) cliquez sur "image" pus "new" , mettez 1024 pour "Width" et "Heigth".
La texture non bakée est remplacé par une texture toute noire.
C'est très important car si vous ne le faites pas, lors du baking la texture restera noire et il vous faudra relancer blender et recommencer l'étape "Render Baking ".
Avant de lancer le render baking vérifier le nombre de thread utilisé (Onglet "Scene F10 " > Output > thread) car le render baking supporte le multi-thread.
Dans l'onglet "Bake" vérifier que "Full render " soit coché et configurer "Margin" à 5 .Appuyez sur le bouton "Bake".
La texture bakée va alors être calculé petit à petit ...et ça risque d'être plus ou moins long selon les paramètres que vous avez choisit.
Une fois la texture bakée obtenue, sauvegardée la (au format que vous désirez). Vous pouvez supprimer le sol extérieur ainsi que les lampes.
Vous devriez avoir obtenu ce genre de texture :
On a donc en temps reel :
Lien vers le .blend , la texture non bakée et la texture bakée
Tutoriel rédigé par Gabich, Mai 2008.