Dans un article précédent je vous présentais les arbres adaptatifs qui permettent l’amélioration du rendu visuel et de la fluidité d’affichage de la végétation dans un modèle InfraWorks 360.
Les textures adaptatives concourent elles aussi à obtenir un modèle plus réaliste et plus fluide. La webcast du 1er mars 2017 (accessible ici), traitait de ce sujet spécifique.
Bien sûr InfraWorks 360 peut être utilisé avec ses capacités par défaut et les textures adaptatives proposées dans la bibliothèque de styles. Mais il est important de comprendre leur fonctionnement dès que l’on souhaite personnaliser le rendu d’un modèle. Je vous propose donc un point sur ce thème inspiré de cette webcast.
Qu’est ce qu’une texture adaptative ?
Une texture adaptative (multiscale texture) permet d’appliquer un matériaux qui offre un rendu différent selon le niveau de zoom. Plus le matériau est vu de près, plus le niveau de détail est élevé. La transition entre les différents rendus est progressive et quasi imperceptible.
Le principe de fonctionnement
Dans le répertoire C:\ProgramData\Autodesk\InfraWorks 360\Resources\LocalLibrary\Shared_Assets\shared_textures\multiscale, se trouvent des images au format .jpg et des fichiers au format .mstex avec des noms communs.
Par exemple pour la texture du sol forestier (ForestGround), il existe 6 fichiers :
ForestGround.jpg :
Cette image est utilisée à la fois pour définir le matériau et pour la vignette dans la bibliothèque. Elle doit avoir le même nom que le fichier .mstex (cf. ci-dessous).
ForestGround.mstex :
Ce fichier permet d’associer la distance Objet / Caméra (en mètre) à une image qui sera utilisée pour générer la texture. Par exemple, de 0 à 4 m, c’est l’image ForestGround_1x1.jpg qui est utilisée. UVMatrix est un paramètre graphique qui précise comment et à quelle échelle est utilisée l’image.
ForestGround_1x1.jpg :
ForestGround_4x4.jpg
ForestGround_16x16.jpg
ForestGround_64x64.jpg
Remarque : les images de définition de la texture doivent toutes avoir la même taille, 512 x 512 ou 1024 x 1024.
Edition / Création d’une texture adaptative
Il est conseillé de faire une copie des fichiers .jpg et .mstex les plus proches de ce qui est souhaité, d’appliquer les modifications (noms des fichiers, paramètres du fichier .mstex) puis de créer un nouveau matériau dans la palette des styles.
Pour créer un nouveau matériau :
- Cliquer sur le signe “plus” vert en bas de la palette des styles, onglet “Matériau”. Si besoin créer un répertoire spécifique.
- Dans la palette “Définir nouveau matériau”, sélectionner le type “texture”, pointer vers l’image de définition qui porte le nom générique et qui sera associée à la vignette. Définir la largeur / hauteur des images qui seront utilisées pour générer la texture dans le modèle.
- Valider par OK
Il est ainsi possible de créer un nouveau matériau à partir de nouvelles images ou d’adapter le rendu d’un matériau existant.
En cas de modification, il faut actualiser par un glisser / déposer. Il peut être nécessaire de redémarrer InfraWorks 360.
Cas de motifs géométriques et conservation des dimensions
Ce cas de figure permet de mieux comprendre comment fonctionne la notion d’échelle. Des textures adaptatives existent également pour les ouvrages d’art. Regardons de plus près la texture “MSE Block” qui représente un emboîtement de blocs préfabriqués béton.
La texture est définie comme ci-dessous :
Un bloc tel que représenté sur cette image doit faire 1,0 m quel que soit le niveau de zoom.
Les images de définition sont stockées au chemin suivant : C:\ProgramData\Autodesk\InfraWorks 360\Resources\LocalLibrary\Shared_Assets\shared_textures\bridges\MSE Block
Le fichier “MSE Block.mstex” est paramétré ainsi :
Pour le niveau de zoom le plus élevé qui fait appel à l’image “MSE Block.jpg”, l’échelle spécifiée est de 1. Donc l’image dans la texture s’appliquera selon la taille spécifiée dans la palette de configuration du matériau, soit 2,0 m. Dans cette image il y a deux blocs en largeur / hauteur. Un bloc mesurera donc 1,0 m.
Pour le niveau de zoom qui fait appel à l’image “MSE Block2.jpg”, l’échelle spécifiée est de 0,5. Cette image s’appliquera selon une taille deux fois plus grande que la taille spécifiée dans la palette de configuration du matériau, soit 4,0 m. Dans cette image, il y a 4 blocks en largeur / hauteur. Un bloc mesurera donc aussi 1,0 m.
Idem pour les deux autres niveau de zoom.
Cette précision dans la gestion des échelles n’est pas nécessaire pour un matériau diffus comme le gazon. Dans ce cas il faut avant tout s’attacher à l’efficacité du rendu selon le niveau de zoom.
Echange de textures adaptatives
L’export / import de bibliothèque au format .json permet d’échanger les textures adaptatives. Comme pour tous les autres styles, il est recommandé de créer des catalogues spécifiques (répertoires) pour bien distinguer les styles par défaut des styles personnalisés et les différents thèmes.
Les images
A la base d’un nouvelle texture adaptative il y a bien sûr des images du matériau souhaité et surtout l’image du matériau au zoom le plus fort. Les autres images peuvent être créées par assemblage (x4, x16, x64, etc.) et réduction à une taille en pixels toujours identique. Un outil avancé de traitement d’images facilitera bien sûr ces manipulations mais Paint, fourni dans les accessoires de Windows, offre ces fonctions basiques.
Vous trouverez ici une astuce pour la gestion de ces images et faire en sorte que les assemblages ne se voient pas.