Réaliser une texture "sans couture"... et sans symétries!

Les documents, recettes et petits trucs qui sont utiles à tout fan de MSTS!

Modérateur : Modérateurs

Avatar du membre
BB25187
Administrateur
Messages : 15020
Enregistré le : 09 mai 2004 1:07
Localisation : Grenoble
Contact :

Réaliser une texture "sans couture"... et sans symétries!

Messagepar BB25187 » 28 janv. 2011 21:13

Hello,

Comme complément à la livraison des fichiers d'environnement, je vous livre à présent la méthode que je me suis dégotée pour réaliser les textures de ciel.

Ces textures sont en effet particulières. Elles doivent être "sans couture" ("seamless" est le terme d'usage en anglais). Cela veut dire que leur utilisation comme élément de base d'un motif répétitif (un peu comme les carreaux d'un carrelage) doit se faire sans rupture visuelle. Autrement dit, le côté droit de l'image doit se raccorder parfaitement avec le côté gauche, et le haut doit se raccorder parfaitement avec le bas!

Dans un précédent fil Nicober vous avait présenté une première méthode. Celle-ci ne me donnant pas satisfaction (j'y reviendrai), j'ai recherché sur le net un autre procédé, que l'on peut ensuite adapter à la réalisation des textures de ciel pour les fichiers d'environnement de MSTS.

Je vais essayer d'expliquer les grandes lignes de la méthode, sachant qu'à la base, il vous faut un éditeur d'image raisonnablement performant, type "TheGimp", "PaintShopPro" ou "PhotoshopElements".

A/ Nous supposerons que l'on souhaite réaliser un ciel orageux ou pré-orageux.
Pour commencer, il vous faut une photographie correspondant à peu près à l'ambiance recherchée. En voici une, prise en Alsace par une lourde journée de fin de printemps.
Image

B/ De cette photo, il faut ensuite extraire la zone qui vous intéresse avec l'outil de sélection usuel.
Image

C/ Voilà! Nous disposons d'une bonne base de travail!
Image

D/ Cela étant fait, on ramène l'ensemble à une forme carrée par redimensionnement, ceci afin de cadrer avec les contraintes des textures de MSTS.
Image

E/ Un petit mot d'abord sur la méthode la plus triviale pour obtenir une texture sans couture. Elle consiste à
- Copier l'image une première fois, et à placer cette copie à côté de l'image initiale.
- A effectuer une opération de miroir horizontal sur cette copie. De cette façon, on a la garantie que les côtés des deux images se raccordent parfaitement.
- A copier ensuite cet ensemble (image originale+copie miroir), et placer cette copie juste en dessous de l'ensemble initial.
- Selon le même principe que précédemment, à effectuer une opération de miroir vertical, de manière que les bord de la copie raccordent parfaitement ceux de l'original.
C'est super! Ca va vite et ça n'est pas très dur à faire. Seul hic, l'image résultante est bourrée de symétries qui sont très peu naturelles et très perceptibles à l'oeil même une fois dans le jeu! Donc ça ne va pas!
Image

F/ Essayons autre chose. En fait, on veut raccorder des bords qui, sur l'image dont on dispose, sont par définition à l'opposé les uns des autres! Cette disposition complique tout traitement, et rend la manipulation assez peu intuitive! On va donc faire en sorte de "ramener les bords au centre"! Pour cela, on va utiliser la fonction de translation de l'éditeur, avec l'option "re-bouclage" activée. L'image est ainsi translatée en largeur et en hauteur. Ce qui dépasse à droite est ramené à gauche. Ce qui dépasse en haut est ramené en bas. Par construction, les bords de cette nouvelle image se raccordent parfaitement. Par contre on note des ruptures horizontales et verticales au centre de l'image.
Image

G/ L'exercice va donc consister à présent à "gommer" ces ruptures! Pour cela, on va d'abord sélectionner une bande verticale au centre de l'image, en utilisant par exemple le "lasso polygonal" avec un contour progressif assez large. Cette bande va d'abord être copiée sur un nouveau calque...
Image

H/ Sur ce calque, on va ensuite appliquer deux changements:
- D'une part, on va effectuer une opération de miroir horizontal sur cette bande.
- D'autre part, l'opacité de ce calque va être ramenée à 50%.
Image

I/ De cette façon, on "efface" la rupture verticale en appliquant une symétrie locale.
Image

J/ On effectue ensuite la même opération autour de la rupture horizontale (avec cette fois un miroir vertical!). Le résultat est une image assez naturelle, sans les symétries globales de la première méthode. On perçoit cependant encore quelques symétries locales. Nous y reviendrons...
Image

K/ A titre de vérification, juxtaposons quatre de ces images. On obtient bien un ensemble sans rupture visuelle. Il est toutefois souhaitable d'atténuer les petites symétries locales résiduelles, pour rendre l'ensemble encore plus naturel à l'oeil une fois dans le jeu.
Image

L/ Nous allons repartir de l'image de l'étape J, en essayant de "casser" les petites symétries. Pour ce faire, nous allons choisir une image assez proche, qui va nous fournir quelques motifs nuageux supplémentaires et différents. Dans cette image, nous allons sélectionner une zone intéressante, en utilisant le lasso polygonal. Il est souhaitable que le contour soit progressif et assez découpé.
Image

M/ Cette zone va être copiée dans l'image de l'étape L, avec une opacité plus ou moins forte, et en adaptant également sa dimension et son placement. Il faut veiller à ne pas modifier les bords de l"image, qui doivent se raccorder droite/gauche et haut/bas!
Image

N/ Voilà: on a masqué une partie des motifs symétriques.
Image

O/ On peut répéter les opérations L-M-N autant de fois que nécessaire. On pourra également travailler la colorimétrie ou les contrastes, ajouter un léger bruit, introduire quelques déformations locales, ... afin de parfaire le travail.
Image

P/ On vérifie à nouveau ce que donne la juxtaposition... Et voilà une texture prête pour un nouvel environnement!
Image

A+
"Er ist ein Unmensch, ein Tyrann!" - Tamino - Erster Akt - Die Zauberflöte.
____________________________________________________________

Image

Retourner vers « Les incontournables »