|
Les bases des
polygones
Ce tutorial va vous montrer comment optimiser sans "supprimer les
faces invisibles, car ça, ce sont des optimisations barbares, a la
portée du premier venu.
Lorsqu'on regarde si un model est bien optimisé, on ne regarde pas
le nombre de polygones, mais le nombre de faces (ou polygones a 3
arrêtes). Une face, est un ensemble de 3 vertices (pas plus pas
moins ) reliés par 3 arrêtes, qui forment une surface. Un polygone,
est un ensemble de faces qui sont dans le même plan et qui sont les
uns a cotés des autres, autrement dit c'est une face avec plus que 4
arrêtes. mais attention, Les moteurs ne comptent pas les polygones,
mais les faces, s'il fait qu'un quadrilatère vaut 2 faces, un
hexagone en vaudrait 4 s'il était optimisé correctement, mais 3DSMax
a la fâcheuse tendance a rajouter une vertice au milieu ce qui
augmente le nombre de faces a 6 (voir image ci dessous ). en
général, on peut dire que les bouts de cylindres ont autant de faces
que d'arrêtes.
(J'utilise ici les désignations de l'éditeur 3DSMax, dans la
discussion courante on inverse en général les 2, je ne sais pas
lequel est correct, mais j'ai préféré utiliser la désignation du
programme pour ne pas s'embrouiller.)
Pour voir le nombre de polygones d'un model, il suffit d'aller dans
fichier, puis propriétés fichier, ensuite contenu et là on peut voir
le nombre de faces, c'est a dire le bon nombre.
voici quelques exemples de découpages de polygones dans différentes
formes.

1) : une face (ou
polygone a 3 arrêtes, ceux que l'on compte pour l'optimisation)
2) : le découpage classique d'un polygone
3) : un autre polygone et son découpage
4) : un découpage d'un polygone a 6 cotés, quand on le fait
manuellement. il possède 4 faces.
5) : Le découpage selon 3DSMax du capuchon des cylindres (ici un
cylindre a 6 cotés, il y a 6 faces )
6) : le découpage dans un "cube", il y a 6 polys, mais 12 faces.
7 ) : le découpage dans un cylindre a 6 cotés, il y a 8 polys, mais
24 faces ( le nombre de cotés * 4 pour un cylindre dans MAX)
Commençons
l'optimisation
INTRO :
L'optimisation consiste a réduire le nombre de polygones, on peut y
arriver en simplifiant l'aspect de l'objet, en supprimant les faces
qu'on ne voit pas (les faces avant d'une arme par exemple) ou alors,
comme ici en supprimant les faces inutiles, c'est a dire c'elle
qu'on pourrait enlever en agrandissant une autre face existante.
Cette optimisation ne modifie PAS l'aspect de l'objet, il n'aura pas
l'air plus "carré" il sera exactement comme le précédent mais avec
moins de faces.
EN PRATIQUE
Nous voulons faire un "L" beaucoup d'entre vous ferons une boite,
l'extruderont, puis l'extruderont encore, comme en (1). résultat :
14 polygones, ce qui fait 28 faces, Maintenant, quelqu'un qui
voudrait un peu optimiser, le ferait de la façon 2 : résultat : 8
polys, ce qui fait 16 faces, soit 57% des faces... eh oui, vous
appliquez ça a tout le modèle, il aura +-60% des polys qu'aurait le
même model fait selon la première façon (la mauvaise) !

Vous avez fait un
super model mais c'est tellement mal fait que ça devient du high
poly ? Vous pouvez aussi optimiser vos models après, rien de plus
simple. Vous avez certainement sur votre model 2 polygones, alignés
et sur le même plan, qui pourraient en faire qu'un...
(exemple, prenez 2 boites de CD, mettez les l'une a coté de l'autre,
vous avez 2 faces, vous pourriez très bien avoir le même aspect avec
une boite de CD 2x plus grande, et vous n'auriez qu'une face, on va
appliquer les même principe au models. )
Regardons ce shema 1, une sorte de robinet a été modélisé (c'est
beau hein )

On voit par exemple au
dessus, qu'il y a 3 polygones, sur la face en biais aussi, sur les
faces latérales, il y a 5 polygones, ils sont inutiles, ils sont sur
la même surface, ils pourraient très bien êtres "mergés" c'est a
dire que comme les boites de CD, au lieu d'en avoir 3, on en aurait
une plus grande.
Voici ce que donne le même robinet, que j'ai un peu optimisé :

La diminution de
polygone est très nette, on voit que le dessus ne fait plus qu'un
seul poly, la face en biais en fait 2 (3 faces car il y a un poly et
une face ), mais c'est inévitable car c'est en fait Ce n'est pas un
rectangle, mais un pentagone, un poly a 5 arrêtes ( 5 vertices -> 5
arrêtes, -> 3 faces)
Il faut bien comprendre que dans la 3D, peut importe l'aspect d'un
polygone pour déterminer ça complexité, c'est son nombre de vertices
qui le détermine. Un carré qui a 6 vertices, c'est un hexagone, il y
a des vertices alignées, mais comme les arrêtes se font entre les
vertices, eh ben ça fait : 6 vertices -> 6 arrêtes.
les cotés ont été aussi fortement optimisés... Comment ? comme ça :

J'ai déplacé toutes
les vertices et je les ai mergés avec les vertices des coins qui eux
sont indispensables.
En règle générale, seul les polys qui sont a des coins, sont
indispensables, par exemple, les 4 vertices d'un carré, les vertices
du poly qui a servi a une extrusion...
Optimisation d'une
crosse
J'ai optimisé cette
crosse, selon la même méthode, et la encore la diminution de polys
est importante, en plus le travail de Texturing est plus facile
après, car il ne reste que les vertices de coins qui eux sont très
faciles a placer sur les textures (ils se trouvent dans les coins)
et comme ils sont toujours bien placés, Il n'y a pas de risques de
distorsion de texture... alors que les vertices qui ne sont pas dans
des coins, qui se trouvent sur des grandes arrêtes, des " vertices
inutiles", on ne sait pas bien ou les placer sur la texture (pas de
repères précis, vu qu'il n'y a pas de coins) et donc, la texture est
toute distordue... encore un avantage de l'optimisation.


Travailler avec 2
objets plutôt qu'un...
en effet, parfois il vaut mieux ne pas extruder stupidement et faire
un nouvel objet, voici un cas :

Ici, on a deux objets
et 22 faces.
si je réalisait la même chose avec un seul objet, j'en ai 28.:

Vous vous dites
sûrement, pourquoi chier pour 6 malheureux polys ? parce que si on
faisait la même chose avec des cylindres, on économiserait bcp, bcp,
bcp plus.
Si vous faites le calcul, vous voyez que dans cet exemple on a
ajouté 6 polys, ce qui fait 3 quadrilatères. or, c'est bizarre, je
n'ai normalement ajouté qu'un quadrilatère, visiblement, vu que
lorsque j'ai coupé le polygone de contact entre les 2 en 3 pour
pouvoir extruder l'autre rectangle, j'ai ajouté 2 faces, mais l'une
correspond a la face qui existait avant, je devrais donc n'avoir
ajouté que 2 faces (un poly.) En fait si on regarde attentivement
l'arrête en bleu pétant, on voit 4 vertices dessus. or une face
c'est quoi ? un assemblage de 3 vertices, ici, j'ai ajouté sur cette
arrête les vertices 2 et 3, ils forment donc avec les vertices 1 et
2 un quadrilatère, donc 2 polys, totalement inutiles puisqu'ils
n'existent que théoriquement étant donné qu'on ne les voit pas, ils
sont pourtant calculés... supprimer ce quadrilatère ? Pourquoi pas,
mais oubliez le smoothing group alors..., le même Phénomène se
répète en dessous, la aussi un quadrilatère a été ajouté. En tout 3
quadrilatères auront donc été ajoutés.
Cet exemple est surtout utile pour les détails, tels que boutons,
molettes, vis, Les parties séparables lors d'animations (canon,
culasse, gâchette, etc...)
il faut toujours garder a l'esprit que un vertice en trop, c'est
minimum un poly en trop. si vous avez un rectangle, et qu'il a 6
vertices, c'est qu'il y en a 2 de trop, et la il faut vous arranger
pour les enlever...
voici quelques exemples d'optimisations, le premier souligne le fait
d'utiliser 2 objets plutôt qu'un dans certains cas, comme celui ci :



Cette image montre
bien les erreurs que font la plupart des gens, ils laissent des
faces totalement inutiles a des endroits stratégiques tels que celui
ci, car les formes courbes utilisent un nombre impressionnant de
faces
Comment je l'ai optimisé ? j'ai déplacé les vertices du milieu vers
les cotés, et je les ai mergés avec celles du coté, j'ai fait de
même avec la face du dessous, qui comportait 4 polys la ou 1
suffisait...
ensuite, sur le devant, vous remarquerez qu'il n'y a plus de vertice
dans l'axe du cylindre , j'ai effacé la face, et je l'ai recréée
moi-même avec l'outil créer polygone (utilisez le dans l'inverse des
aiguilles d'une montre pour créer un poly face a vous, c'est plus
pratique.)
La suppression de polys.
Regardez dans votre modèle, il y a sans doute des faces totalement
inutiles elles aussi car elles sont a l'intérieur du model, on ne
les voit que si on est dedans. Bref, elles sont inutiles, Les
rechercher est très important, Si vous les laissez, il va falloir
les texturer, l'ordi va les calculer mais pour ne rien montrer,
effacez les.
Le même principe peut être appliqués au v_models, en effet, les
polys qui facent vers l'avant ne seront jamais vus, sauf en cas
d'anim vraiment spéciale.
Je ne pense pas qu'il faille beaucoup d'explication pour apprendre a
quelqu'un a supprimer des faces qu'on ne voit pas, mais sachez que
ça ne résout pas les problèmes d'optimisation en général. N'oubliez
pas de bien regarder que les anims n'en patissent pas.
L'importance des cylindres
Les cylindres mangent un maximum de polygones (leur nombre de faces
*4 par segment) en réduisant le nombre de cotés, vous diminuez
fortement le nombre de polygones, c'est pas inutile, c'est
important, vous pouvez gagner un tas de polys en enlevant des
segments inutiles et en baissant le nombre de faces. quelques
exemples de nombres raisonnables : l HL : le canon d'un flingue, qui
n'est pas très grand, et tout a l'avant. 6 si vous ciblez le normal,
8 si le canon est particulièrement visible (rare )
La lunette d'un snipe : 8 a 10 ( 10 vraiment au grand max)
Q3 (augmentez tout de 2)
Conclusion
Concluons : les avantages sont :
ça rame moins
c'est plus propre
ça se skin plus facilement
aucune qualité n'est perdue.
si on le fait dès le début ça prend pas plus de temps.
|