De EncyclopAtys
Sommaire
Conception et préparation des textures environnementales
Tutoriel en cours de finalisation
Les textures environnementales sont celles qui sont utilisées dans le modeleur 3D (actuellement 3DSMax) sur les quadpatch qui serviront à représenter l'environnement (sol et reliefs naturels). Elles doivent être conçues selon un format très précis et ensuite préparées au sein de tileset (ensemble de tuiles d'un ensemble de textures similaires) elles-mêmes regroupées au sein d'une tilebank, qui permet de peindre l'environnement complet d'un type de continent.
Créer les images
Il faut créer des Tiles (tuiles) de 128x128 pixels exactement ou de 256x256, qui doivent impérativement respecter des contraintes de contenu : la bande de pixels en haut et en bas doivent être identiques au sein d'un même tileset, ainsi que la bande de droite et de gauche. Cela permet au système de surimposer ces deux bordures pour ne faire qu'un pixel au final dans le rendu.
Pour les textures de 256, il faut les envisager comme un assemblage de 4 tuiles de 128x128, il faut donc que la périphérie soit juxtaposable avec les tuiles de 128 du même tileset.
Les parties centrales devront quant à elles être fondues l'une sur l'autre, comme si c'était deux tuiles de 128x128, il faut donc éventuellement en tenir compte dans son motif (les deux lignes de pixels au centre se confondront en une seule).
Exemple : partons d'une image haut définition d'un sol : [http:www.cgtextures.com/texview.php?id=5611&PHPSESSID=k872lvlfkds965i1un8a43o4b1 Gravel0031_1_L.jpg] récupéré sur l'excellent site [http:www.cgtextures.com cgtextures.com].
Je la réduis de taille au quart, pour augmenter le piqué et le contenu de petites zones. Je fais une sélection de 128x128 pixels, Ctrl+C / Ctrl+V > Coller comme nouvelle image. J'ai désormais une image de 128x128 pixels.
Je vais déjà la rendre répétable pour qu'elle soit visuellement non choquante quand on la recopie bout à bout. Il existe des filtres mais je tiens à contrôler la chaîne de bout en bout, et à rendre cela plus explicite pour ce tutoriel.
Je fais Calque > Transformer > Décalage (Offset en anglais)
J'obtiens donc un décalage de mon image qui part de :
et on obtient :
On devine les jonctions dues au décalage vers les parties médianes de l'image, je corrige donc cela avec l'outil Tampon par exemple, ou en redessinant manuellement, à ma convenance et j'obtiens :
On peut alors éventuellement refaire un Décalage, pour retrouver l'image originale, mais désormais avec des transitions douces sur le pourtour.
Pour être certain que les bordures correspondent parfaitement, je sélectionne une bande de 1 pixel tout en haut et je la copie tout en bas. Je fais pareil avec les bandes tout à gauche et tout à droite. Puis je sélectionne une bande 1 pixel tout autour de l'image et je la copie/colle dans un nouveau calque que je nomme "bordure"
C'est cette bordure que je dois conserver pour chaque image. Je peux désormais faire d'autres sélections dans mon image de référence et les copier dans un calque sous cette bordure, leur appliquer les mêmes traitement qu'à l'image première et à chaque fois exporter le résultat dans un nouveau tga non compressé, en respectant les conventions de nommage pour les images d'un tileset : [NAME]-[128/256]-[ID]_[sp/su/au/wi].tga La partie [NAME] peut s'organiser en sous-parties à définir : par région, par surface de destination (sol/parois), par type de sol... Je sauvegarde mon fichier gimp avec le calque nommé comme le numéro de cette première tuile dans la série :
Je répète l'opération d'import de plusieurs sols et à chaque fois, je fais le décalage et je m'assure que la jonction avec le calque de bordure se fait de façon diluée. Je nomme chaque calque en fonction du numéro d'[ID] que le tga correspondant possède, de façon à pouvoir facilement retrouver/modifier ma source. Cela sera d'autant plus important lorsque je voudrai réaliser les tuiles correspondantes à une autre saison, en changeant les couleurs, ajoutant des détails ou autres. Il est bon de créer un minimum de 4 à 6 tuiles de 128x128 pour un tileset. Cela permet d'avoir un rendu varié. Pour plus de commodité, je range toutes ces premières tuiles dans un dossier de calque du nom et des caractéristiques de cette série :
Créer la Tilebank
Une Tilebank (bibliothèque de tuiles) est un ensemble (généralement lié à un écosystème) de Tilesets, groupe de tuiles (textures) présentant un type de surface. C'est avec cela que l'on peint sur les terrains.
Lancer le logiciel de création de TileBank. C'est le logiciel tile_edit_r.exe (Windows only) dans les [http:ryzomcore.atlassian.net/wiki/display/RC/Downloads+for+Windows|NelTools] à télécharger et installer.
Cliquer gauche sur le bouton à côté de "Absolute path"
Changer le chemin pour celui des tuiles de texture. Si vous partez d'une installation Ryzom Core, ce sera a priori :
W:\Database\landscape\_texture_tiles\
Créer le premier type de terrain
Cliquer sur Add land
Appeler ce terrain à votre convenance (un nom d'écosystème semble le plus pertinent), ashtarie dans notre exemple
et cliquer OK.
Cliquer sur Add tile set
Appeler ce terrain (voir les Conventions de nommage) selon son aspect, cela sera plus commode de se repérer, 'grass' dans notre exemple
cliquer OK.
Créer un second type de terrain
Cliquer sur 'Add tile set' pour avoir un second modèle de terrain pour cet exemple, vous devez en ajouter autant que vous en aurez besoin dans votre écosystème.
Appeler ce terrain (voir les Conventions de nommage) selon son aspect, cela sera plus commode de se repérer, 'moss' dans notre exemple et cliquer OK comme précédemment.
Attribuer les textures aux Tilesets
Sélectionner un Tileset ('grass' dans notre exemple) et faire Edit tileset
Une nouvelle fenêtre apparaît, qui va permettre d'ajouter les images à ce tileset. On remarque plusieurs zones :
- Texture : qui permet d'indiquer la nature de la texture, diffuse ou additive (alpha ne peut être choisi Size : qui influe sur la taille avec laquelle la texture sera utilisée dans l'éditeur ;
- Texte info : Qui permet d'afficher soit le numéro d'index soit le nom de chaque image en dessous dans la partie droite
- Tiles : qui indique de quel type de tuiles (tiles) il s'agit : leur taille pour les textures affichées ou s'il s'agit de texture de transition (des tuiles avec un alpha qui permettent des transitions entre tilesets) ou encore de Displace (qui altère visuellement la géométrie du sol pour le rendre moins uniforme).
Les textures Diffuse
On va commencer par ajouter des textures de type Diffuse, 128x128 : on sélectionne donc ces deux options dans Texture et dans Tiles
Clic-droit dans la zone vide à droite et sélectionner Add
Naviguer jusqu'à l'endroit où sont conservées les tuiles de cette série (en TGA non compressé), toutes les sélectionner et valider. Elles sont ajoutées. Refaire la même chose pour les textures de 256x256, également de type Diffuse : on sélectionne ces deux options, clic-droit et sélectionner Add puis ajout des fichiers.
Remarque : On peut ensuite ajouter des textures Additives, de la même façon mais je n'ai pas trouvé exactement à quel usage on destine ce genre de texture. J'en ai vu pour représenter les zones incandescentes à l'extrémité des branches de la Forêt Ardente de Ryzom, mais je ne sais pas exactement l'usage théorique.
Les textures de transition
Une fois ces textures enregistrées, on peut ajouter les textures de transition, qui permettront d'avoir des liaisons agréables à l'oeil entre les différents matériaux.
Sélectionner Texture > Diffuse et Tiles > Transition
Sélectionner chacune des textures dans la fenêtre de droite, clic-droit> Replace et choisir aléatoirement une autre texture dans la même série.
Sélectionner Texture > Alpha et Tiles > Transition
Faire clic-droit > Batch load et aller dans le répertoire 'Transitions' (si vous utilisez les données graphiques Ryzom Core) et choisir le 'alpha_noise_00.tga', cliquer ok. Une fenêtre demande si vous souhaitez utiliser la rotation des tiles alpha, accepter.
Les textures de displacement
On peut ensuite ajouter si on le souhaite des tuiles de Displacement, c'est facultatif (et il n'est pas certain que ce soit implémenté).
Sélectionner Tiles > Displace et remplir au moins 6 cases avec des textures en niveau de gris qui serviront à déformer le terrain.
Lier les tilesets à des effets de de contact
Enregistrer tout cela, fermer et revenir à la fenêtre 'Tile bank manager'
Sélectionner sa tileset et indiquer dans 'Surface data' le numéro de surface de cette texture. Ces numéros conditionnent le son émis et les systèmes de particules utilisés lorsqu'on marche sur ce tileset.
Par défaut dans RyzomCore, on sait que : 12 : gazon 21 : poussière
Utilisation dans 3DSMax
Puis sauvegarder la tilebank. Il n'y a plus qu'à l'utiliser pour texturer les terrains dans 3DSMax avec le plugin adapté.
Dans 3DSMax, une fois que le Quadpatch de 160x160m a été créé et est prêt à recevoir ses textures, il faut lui appliquer le Modificateur "NelConvert" puis "NelEdit" et enfin, 'Nel Painter'
Aller dans l'Onglet Outils, choisir "Nel Tile Bank" et choisir la tilebank qu'on souhaite.
Revenir au menu des modificateurs, Choisir la vue 'top' dans viewport et cliquer sur 'Paint'. Les commandes pour gérer l'application des textures sont les suivantes :