Je n'ai pas le temps en ce moment (vous comprendrez bientôt pourquoi ^^) de faire le tutorial tout de suite, il y a beaucoup à dire sur l'optimalité des UV2, que nous pratiquons à nadeo depuis le passage de TMN à TMNF.
Mais je vais essayer de survoler les points importants (si vous pouviez partager ça avec nos amis anglophones à l'occasion je vous serai très reconnaissant ^^):
1- le texel ratio doit être constant entre toutes les faces : si un polygone carré de 1x1m (le dessus d'une caisse) est sensé utiliser une zone de 2x2 pixels de lightmap (je donne ce chiffre en exemple, le moteur adapte la taille utilisée dans la lightmap en fonction de la taille de l'objet et de la place disponible); dans ce même objet, un polygone de 8x8m (le plateau en béton sur lequel est posée la caisse) devra donc occuper une zone de 16x16 pixels, et le petit polygone du dessus de la poutre métallique qui tient le panneau "DANGER" qui fait 5x5cm devra utiliser 0.1x0.1 pixel.
Dans cet exemple le texel ratio de référence est de 2 texels par mètre.
Si vous voulez augmenter la définition de la lightmap sur un petit polygone, et que vous lui donnez des UV2 plus gros que ce qu'il devrait avoir, alors le rapport "surface en 3D de l'objet" / "surface de lightmap utilisée" va changer.
Admettons que votre objet ait une surface de 1m² en 3D, et que dans la lightmap, en ayant grossit (X2 par exemple) certains polygones on obtienne une surface de 2m², on aura l'impression d'avoir doublé le texel ratio...
MAIS au moment d'assembler tous les objets avec les blocs le moteur réorganise les UV2 de tout le monde, et les mets tous au même ratio. Donc les UV de votre objet seront divisés par 2 pour être en accord avec le texel ratio de vos voisins : les petites faces avec beaucoup d'UV auront un peu plus de lightmap que les autres faces équivalentes dans les blocs voisins; mais du coup les autres faces , "réglo" de cet objet en auront moins...
Ce n'est pas interdit d'avoir un texel ratio variable, avec de l'expérience on peut transférer du texel ratio à l'intérieur même d'un objet : une grande portion de sol, toute plate avec peu de détails alentours aura en général une lumière assez simple, et on pourra lui faire des UV plus petits, et grossir un peu les UV des rambardes de sécurité à côté, pleines d'ombres et de petites faces. Mais c'est risqué et très difficile à bien faire.
2- espacer suffisamment les éléments d'UV pour éviter que la lightmap d'un polygone bave sur le voisin, on a fait pas mal de travail pour limiter cet effet indésirable, mais ça arrive toujours, surtout quand les maps sont très grosses le texel ratio moyen de canyon est de 1m (1 pixel de lightmap = 1m dans le monde) : A08 qui fait 3200c a un texel ration de 0.75 texel/m avec une lightmap de 2048x2048.
c'est le problème de Canyon : un gros environment = une lightmap moins précise.
Elite - TheCastle dans Storm fait presque 9000c mais les blocs font 8x8m et non pas 64x64m, et du coup le texel ratio est de 3.5 texel/m.
Note : si un petit polygone est plus petit qu'un pixel de lightmap) il écrira sa lumière sur tout le pixel, SAUF si un polygone voisin est plus gros et écrit en partie sur le même pixel (ça arrive souvent). Dans ce cas, le gros polygone est maître et définit la couleur de la lumière, le petit polygone utilisera la lumière du gros...tanpis.
3 - l'ensemble des UV2 doit remplir le maximum d'une surface carrée ou rectangulaire (le carré est plus facile à assembler par le moteur que les rectangles très anisotropes (très étirés); si vos polygones d'UV2 forment un ensemble en forme de L, la place occupée sera quand même un rectangle, et le trou vide du L sera perdu.
4 - rapprocher les éléments d'UV qui sont sensé recevoir une lumière semblable (suite à la remarque en fin de 2).
les faces qui regardent le ciel seront souvent claires, celles qui regardent le sol seront souvent sombres, idem avec intérieur-extérieur. Comme ça si certains polygones n'arrivent pas à écrire leur lumière et se font écraser par les voisins, il vaut mieux se faire écraser par un voisin pas trop différent ça limite les dégâts. C'est surtout valable pour les objets complexes qui génèrent des lightmaps contrastées.
5 - rapprocher les éléments d'UV proches en 3D, les 4 faces verticales d'un pilier de métal par exemple doivent être posées côte à côte comme si on dépliait un carton, la lumière a plus de chance d'être continue de cette manière que si on étale ces faces aux 4 coins de la lightmap. (mais ça dépend des cas, des fois il vaut mieux appliquer la règle 4)
6 - collez les polygones qui forment des surfaces douces (falaises) ensemble (fusionner/weld les vertices d'UV) , et séparez les polygônes qui ont des angles durs (murs de bâtiments).
pour info : nous avons certains matériaux qui sont prévus pour avoir un texel ratio assez faible et doivent avoir des UV2 plus petits, ce sont les fonds marins, qu'on ne voit quasiment jamais, et à priori utilisés rarement dans les objets :p
... j'avais dit que je serai bref

