Académique Documents
Professionnel Documents
Culture Documents
P o1*
"G1L.1_
Stranger,
19 novembre 2014
k T`QTQb /m +Qm`b
RR
8 G2 ?B;? TQHv
Rj
R8
Rd
RN
N *2bi T`i
kR
Ry*QM+HmbBQM
kj
R AMi`Q/m+iBQM
Vous avez un projet de jeu vido, mais vous dbutez en 3D ? Vous tes un habitu de la modlisation mais les textures vous font peur ? Vous tes simplement curieux de dcouvrir les mthodes
des pros ?
Ce cours est fait pour vous ! A travers un objet dexemple, nous allons voir pas pas comment
un lment de jeu vido est cr aujourdhui. Le cours sappuie sur le modeleur libre Blender
et ncessitera galement lusage dun logiciel de retouche dimage tel que Adobe Photoshop ou
GIMP.
Figure 1.1 : Lexemple de ce cours ; les talents artistiques de lauteur seront excuss
k T`QTQb /m +Qm`b
Ce cours se veut simple et accessible. Lobjectif est de vous apprendre une mthode typique pour
raliser un objet de jeu vido, travers un exemple.
Voici ce que ce cours nest pas :
un cours de modlisation ;
un guide pas--pas qui vous rappelle le dtail des oprations ;
un cours universel pour crer tous les objets possibles ;
une encyclopdie qui explique tout.
On va voir ici des techniques trs modernes puisque le cours se base sur la technologie du Physically Based Rendering. Un moteur de jeu rcent comme Unreal Engine 4, CryEngine 3 ou Unity 5
est indispensable ici. Le monde du logiciel libre ne propose pas encore ce stade dvolution technique.
Une connaissance basique de Blender est requise : modlisation simple, modiers et UV mapping.
De nombreux cours de qualit existent sur ce sujet, commencer par celui-ci.
11
Figure 4.1 : Dans lordre de lecture : albedo, normal, roughness et ambient occlusion
12
8 G2 ?B;? TQHv
La particularit dun high poly, la version haute dnition de votre objet, cest que cet objet ne sera
jamais prsent dans le jeu. Le nombre dlirant de faces, la complexit des modiers, la difficult
texturer sont autant de raisons. On va donc tricher, importer le low poly dans le jeu, et utiliser
une technique qui permet de reproduire une partie des dtails du high poly sur le low poly : le
normal mapping.
Figure 5.1 : Le high poly : 96 000 faces aprs les modifiers, qui dit mieux ?
Le principe du normal mapping est le suivant : une texture, la normal map, va stocker les variations de la surface entre le high et le low. Le matriau va ensuite reproduire ces diffrences
de surface une fois dans le jeu, en trichant sur lclairage. Le rsultat est saisissant et permet de
reprsenter des dtails sans utiliser de gomtrie supplmentaire dans le low poly.
[De gauche droite : high poly, low poly et rendu ; la normal map est visible en bas] (http ://zestedesavoir.com/med
d865-4d56-b087-7f8b73fff6dc.jpg)
Dans cet exercice, le lissage des faces est votre principale contrainte. Un objet rel na que rarement des artes vives, sauf si il sagit dun couteau ou dune pice mtallique frachement usine.
Arrondir les angles est donc la premire mission de votre high poly, et pas quun peu : si lobjet
rel a un arrondi de 5 millimtres de large, il faut au moins un centimtre darrondi sur le high
poly pour avoir le mme rsultat final. Cest une contrainte qui est lie la normal map : souvent,
la zone autour dune arte tient dans quelques pixels de cette texture, un lissage trs net sera tout
simplement invisible.
Il faut donc modliser en tenant compte de cette contrainte, en exagrant les formes que vous
13
5 Le high poly
souhaitez introduire dans la normal map. Les rivets de lexemple ont une forme sphrique, mais
au rendu ils nexistent que par une distorsion de lclairage et ont donc lair quasiment plats.
Il y a deux outils dans Blender pour contrler le lissage dun high poly :
loutil edge loop (||CTRL|| + ||R||) sert diviser des faces, on peut sen servir pour limiter la
propagation du lissage, comme illustr ci-dessous : on appelle a une control loop ;
loutil edge crease (dans le menu de la vue 3D, affich avec ||N||) sapplique des edges et dfinit
leur mode de lissage, de 0 1 : 0 pour ne pas influencer le lissage, 1 pour crer une arte vive.
Figure 5.2 : Les artes lisses : observez leurs edge crease (en violet) et les control loop (en vert)
Dans la mesure du possible, il faut soigner le lissage en connectant le maillage dune partie
lautre, sans discontinuit. Bien sr, la patience a ses limites et vous pouvez aussi recourir de la
gomtrie dite ottante, cest--dire qui nest pas relie au reste de lobjet, si :
soit la diffrence nest pas visible et cest donc inutile (les rivets ci-dessus) ;
soit il ne faut pas de lissage car vous reprsentez des pices spares (entre lcrou et la manette sur notre valve, par exemple).
[[question]] | Toutes ces heures de modlisation, cest juste pour faire une seule texture ?
Presque : on gnrera en fait une deuxime texture partir du high poly. Mais en effet, il ne va
servir qu gnrer des ressources et ne sera jamais import dans le jeu. Rassurez-vous, le temps
pass en modlisation nest pas perdu : une belle normal map transforme totalement votre low
poly.
14
Figure 6.1 : 3 000 triangles, pour cet objet, cest un poids raisonnable
Chacun a sa propre mthode pour le faire, la mienne est trs rapide, au dtriment peut-tre du
polycount. Voici la marche suivre :
dupliquez le high poly, supprimez le subsurface et ajoutez un modifier edge split avec un angle
bien choisi pour votre objet, typiquement 45 ;
supprimez toutes les control loop qui servent contrler le lissage : le low poly ne doit avoir des
artes que l o la gomtrie change ;
nhsitez pas supprimer des jointures entre diffrentes pices pour utiliser une gomtrie
flottante la place, comme illustr ci-dessous ;
noubliez pas de crer des seams dans des endroits peu visibles pour prparer lUV mapping.
Vous pouvez utiliser des modifiers pour acclrer le travail, notamment le mirror, mais vous devez
prendre bien soin de les appliquer avant de passer lUV mapping, lexception de ledge split qui
va nous accompagner jusqu lexportation.
15
Figure 6.2 : Exemple de passage une gomtrie flottante, sur un autre objet
LUV mapping est une tape pnible mais ncessaire, qui doit tre ralise avec minutie : si il y
a de larges zones vides sur cette UV map, cest autant despace perdu sur vos textures. Attention
cependant ne pas trop condenser non plus, en particulier, vous ne devez jamais avoir deux faces
superposes, mme si ce sont des pices rigourement identiques : la gnration des textures va
crer des artefacts trs visibles si vous vous y risquez.
Une fois lUV mapping termin, votre objet est prt pour tre export. Le format de rfrence est
FBX, il est support dans un plugin de Blender fourni par dfaut que vous devez activer dans les
prfrences de loutil. Au moment de lexportation, prenez garde slectionnez votre low poly et
cocher la case selected only, pour ne pas exporter galement le high poly, au risque de bloquer
Blender pendant plusieurs minutes !
16
17
Figure 7.1 : Le baking, tout juste termin : on voit que le high et le low se superposent
18
graphique, au pinceau sur toutes les artes dans une couleur plus claire afin de mettre en valeur
les angles ; | - jajoute des touches de couleur pour reprsenter soit du cuivre, soit de la peinture
sur lobjet ; | - enfin, jai dessin une tiquette sur la manette de la valve.
Un objet mtallique est relativement simple faire, a se corse si vous devez raliser un personnage, bien sr.
La roughness map, dernire de la liste, va exiger beaucoup moins de talent artistique. Elle reprsente ltat de surface de votre objet : le noir reprsente une surface plate comme un miroir, le
blanc reprsente du ciment ou du papier de verre. En toute logique, du mtal propre va avoir une
roughness trs faible, alors que du mtal ray va avoir une roughness suprieure. Cest tout !
En pratique, une roughness map de qualit va souvent tre obtenue partir de la base texture, en
augmentant le contraste et en dessinant les artes de faon trs visible.
[[question]] | Cest bon, cest fini ?
Pas tout fait : on ne sest pas encore occups de la metalness. On rappelle que ce paramtre
dfinit si le matriau se comporte comme un mtal :
0, lobjet est dit dilectrique (comprendre isolant), ce nest donc pas un mtal ;
1, lobjet est parfaitement mtallique ;
logiquement, une valeur de 0.75 par exemple serait adapte pour un mtal un peu sale.
Ce rglage va principalement jouer sur la couleur et lintensit des rflexions sur votre objet. A
vous de jongler avec ce paramtre pour raliser le matriau parfait, jai choisi dutiliser la valeur
1 pour cet objet.
19
N *2bi T`i
Vous disposez maintenant dun objet complet, prt tre import dans votre moteur de jeu favori.
Il reste donc cette dernire tape, pour laquelle je ne peux pas vous aider : chaque jeu est diffrent,
chaque technologie a ses propres mthodes. On sort du domaine de la mthode pour rentrer dans
des problmes dorganisation.
Dune faon gnrale, le principe est le mme partout. Il faut importer lobjet FBX, les textures au
format TGA ou PNG, crer un matriau partir de ces textures, et lassocier votre objet import.
21
9 Cest prt
22
Ry *QM+HmbBQM
Au terme de ce cours, vous avez en main les principales notions pour raliser des objets dans un
jeu vido.
Les fichiers utiliss ici comme exemples sont disponibles au tlchargement. La licence qui sy
applique est la mme que celle indique pour ce cours.
fichier source Blender
fichier source Photoshop
archive compresse des ressources au rendu
Merci de votre lecture !
23