Mini-Tutorial:

Lissage sous TSM


Auteur du totorial: BB25187, http://BB25187.eu, 11 juin 2011

But

L'objectif de ce petit tutorial est de décrire les différentes subtilités et manipulations liées aux lissages sous TSM. Cette première version est limitée au problème de la reconstitution des lissage sur un objet qui a été préalablement scindé.

L'objet du délit...

Nous allons considérer un cylindre simple, ouvert à ses extrémités, comportant une unique section, et 16 points par section. Ce cylindre fait 1 mètre de long et 20 centimètre de rayon. En temps normal, un tel cyclindre, si on lui applique le lissage usuel de TSM, présente une surface lisse. 
Img1

Pour différentes raisons, dont des contraintes de texturage par exemple, il peut être nécessaire de scinder une telle forme. Si la forme était lissée avant d'être scindée, les lissages sont alors interrompus au niveau de la coupure. Ainsi, si le cylindre précédent est coupé en deux, alors on se retrouve avec l'illusion d'une arête vive au niveau de la coupure. Regrouper les deux parties, et réappliquer à l'ensemble un rendu lissé n'y changerait rien.
C'est qu'en vérité, ces deux demi-cylindres ne sont pas du tout équivalents au cylindre d'origine:
Cette différence dans le nombre de sommets est fondamentale pour comprendre pourquoi les lissages ne sont pas reconstitués lorsqu'on regroupe des parties qui ont été préalablement scindées. En effet, avant la scission, deux polygones mitoyens partageaient certains sommets. En revanche après la scission, les polygones situés de part et d'autre de la coupure ne peuvent plus partager les mêmes sommets, qui se trouvent dupliqués dans chacun des demi-cylindres.

Or, les lissages ne peuvent être propagés entre deux polygones qu'au niveau où ils partagent les mêmes sommets! La seule solution pour reconstituer les lissages en pareil cas passe donc par la possibilité de re-fusionner les points au niveau de la coupure!

Img2

Première étape: regrouper les deux parties

Pour pouvoir fusionner des sommets, il faut que ceux-ci soient dans la même partie. Nous allons donc commencer par joindre les deux deux-demi-cylindres.Par contre, il faut prendre une petite précaution avant de procéder à ce regroupement: nous allons éloigner les deux morceaux. On applique donc une translation de 10 centimètres vers le bas au demi-cylindre inférieur. On s'assure d'être bien en mode "partie".

Img3

On se retrouve donc avec deux demi-cylindre désormais éloignés l'un de l'autre. Nous verrons l'intérêt de cette manipulation un peu plus tard.

Img4

Après avoir sélectionné les deux parties, il est alors facile de les joindre avec la fonction de jointure de parties de TSM.

Img5

Les deux demi-cylindre sont maintenant intégrés dans la même partie, toujours éloignés l'un de l'autre;

Img6

Nous allons maintenant rétablir le lissage au niveau de la coupure. Pour cela, nous allons donc vouloir fusionner les points concernés. Grace à l'éloignement des deux demi-cylindres, nous verrons mieux l'effet de notre travail, et nous pourrons mieux contrôler ce que nous faisons.

Seconde étape: encore une petite précaution

Par contre, il faut encore prendre une petite précaution avant de pouvoir opérer: sous TSM, les manipulations se font surtout dans les trois vues haute, face, côté. Dans ces vues, certains sommets ne sont pas visibles ou se confondent. Ici par exemple, on voit que sur la vue de côté, en bas à droite, les points des deux extrémités des demi-cylindres ce confondent. Cela peut rendre certaines manipulations impossibles ou conduire à des résultats inattendus. On passe en mode "point".

Img7

Nous allons faire en sorte de pouvoir distinguer ces points en translatant une des extrémités d'un mètre en hauteur. La fonction de translation est très simple à appliquer une fois que les points choisis ont été sélectionnés.

Img8

Voilà qui est fait. Les points que nous voyons sur la vue en bas à droite ne sont plus confondus les uns avec les autres.

Img9

Nous allons désormais pouvoir procéder à la fusion des points proprement dite.

Troisième étape: rétablir le lissage en fusionnant les points

Tout d'abord, nous allons sélectionner une des paires de points à fusionner. Les points de cette paire sont naturellement situés de part et d'autre de la coupure. Nous travaillons dans la vue de côté, en bas à droite.

Img10

Nous avons sélectionné les points. Mais attention: il ne faut pas encore procéder à la fusion. En effet, sur l'image, nous voyons que les points sélectonnés apparaissent en jaune. Nous voyons en outre un point figuré en blanc. Ce point blanc est le point actif courant. Si nous appliquions la fusion maintenant, les trois points (les deux jaunes et le blanc) seraient fusionnés, et le point résultant prendrait la place du point actif courant... donc du point blanc. Or, ça n'est pas ce que nous désirons faire: seuls les deux points en jaune doivent être fusionnés!

Img11

Pour obtenir l'effet désiré, il faut rendre un des deux points à fusionner actif. Pour cela, on clique simplement dessus, ou on appuie sur la touche "n" jusqu'à ce que l'un des deux points apparaisse en vert. De préférence, on rendra actif le point qui appartient au demi-cylindre qui n'a pas été translaté vers le bas. Ca n'est pas obligatoire, mais ça aidera à procéder selon le même mode opératoire pour toutes les fusions nécessaires.

Img12

Les deux points peuvent être fusionnés, soit avec la touche de raccourci "j", soit avec la fonction du menu correspondante.

Img13

Voilà: le point jaune a disparu, et a bien été fusionné avec le point actif vert. Attention: les deux points sont bien fusionnés et non pas seulement confondus. Si l'on comptait le nombre total de points maintenant, nous en trouverions 35 et non plus 36.

Img14

On applique la même procédure à la paire de points située de l'autre côté de cette extrémité.

Img15

Puis on passe aux deux paires de l'autre extrémité, qui a été translatée en hauteur. Il peut être nécessaire de recentrer la vue.

Img16

Les quatre paires de points à fusionner sont désormais traitées, ramenant le nombre de sommets à 32, comme dans le cylindre d'origine.

Img17

Quatrème étape: remise en place des éléments translatés par translations inverses

Pour travailler plus facilement, nous avions appliqué des transtations pour d'abord éloigner les deux demi-cylindre, puis pour réhausser une des deux extrémités et éviter de confondre les sommets. Il faut donc appliquer les translations inverses aux éléments concernés pour redonner au cylindre sa fome d'origine!

Img18

Résultat

Voici le résultat: la coupure n'apparait plus. L'aspect, est strictement le même que celui du cylindre avant scission, de même que le nombre de polygones et de sommets.

Img19

Remarque

Le cas présenté est assez trivial. Il existe des cas plus complexes, notamment lorsqu'un même sommet doit supporter des polygones dont certains seulement doivent être lissés, et d'autre non. Cela pourra faire l'objet d'une suite. Il faut aussi relever que si la fusion de points est utile pour réappliquer un lissage, la séparation de parties est très utile pour couper les effets de lissage là où ils ne doivent pas s'appliquer!

La maitrise des lissage est essentielle pour qu'un modèle "prenne correctement la lumière" dans le jeu, et pour améliorer la précision visuelle et le rendu des volumes.
Sur l'image ci-dessous, on peut voir deux versions du superbe attelage de la TQ de notre ami Jimidi, qu'il m'a gentiment confié afin de le monter sur la locomotive 169-002 de la DB. A droite, l'objet d'origine est massivement lissé. A gauche, la même 3D a été retravaillée pour permettre une application mieux contrôlée des lissages.

Attel

Par ailleurs, la fusion ou la séparation de points est primordiale non seulement pour la maitrise des lissage, mais aussi pour l'optimisaiton des modèles. Lorsqu'on scinde des parties, on crée sans forcément s'en rendre compte des points en surnombre. La fusion, si elle est compatible avec les besoisn du lissage, est un moyen d'économiser des sommets et de faciliter la digestion d'un modèle par MSTS!