En regardant un matériau de très près, vous remarquerez que les textures utilisées dans le matériau peuvent se décomposer et devenir pixellisées. Afin d'optimiser les performances, les textures sont souvent mises à l'échelle à une résolution qui semble bonne à distance moyenne, mais qui peut ne pas résister à un examen minutieux.
Pour remédier à ce problème, vous pouvez utiliser ce que l'on appelle une texture de détail pour éviter qu'un Matériau ne paraisse pixellisé lorsqu'il est regardé de très près.
Texture des détails
La Texturation de détail vous permet de donner l'illusion d'un plus grand nombre de détails dans une texture en superposant une texture diffuse et normale hautement répétée aux textures diffuse et normale originales de l'objet. Cela donne l'illusion d'un plus grand nombre de détails à courte distance que ce qui est normalement possible.
Voici un exemple de texturation des détails en action.
Sur le côté gauche (étiqueté 1), le Matériau utilise une texture de détail pour ajouter des détails supplémentaires à haute fréquence à la surface. Du côté droit (étiqueté 2), le matériau n'utilise pas de texture de détail. Notez que l'image de gauche apparaît plus nette et plus détaillée que l'image de droite.
Répartition des nœuds de texturation détaillée
Si vous cherchez "texturation détaillée" dans la Palette ou le menu contextuel, vous trouverez une fonction de matériau Texturation détaillée. Bien que ce ne soit pas la seule façon d'appliquer des textures de détail aux Matériaux, c'est la plus rapide du point de vue du flux de travail, puisque toute la logique est contenue dans la fonction de matériau. Tout ce que vous devez fournir, ce sont des entrées de texture.
| Propriété | Description |
|---|---|
Scale (S) | Ceci définit l'échelle de la texture de détail. Plus les chiffres sont grands, plus le titrage est important. Plus les chiffres sont petits, moins le titrage est important. |
Diffuse (V3) | Ceci est l'entrée pour la texture diffuse. |
DetailDiffuse (T2d) | Il s'agit de l'entrée pour la texture de détail diffuse. Cette entrée ne peut accepter qu'un objet texture. |
DiffuseIntensity (S) | Contrôle l'intensité de la texture diffuse de détail. |
Normal (V3) | Ceci est l'entrée pour la texture de texture de normales. |
DetailNormal (T2D) | Il s'agit de l'entrée pour la texture de détail de texture de normales. Cette entrée ne peut accepter qu'un objet texture. |
NormalIntensity (S) | Ce paramètre contrôle l'intensité de la texture de détail de texture de normales. |
Convertir un échantillon de texture en objets de texture
Pour que la fonction de matériau de texturation de détail fonctionne correctement, vous devez convertir les textures que vous souhaitez utiliser comme Textures de détail à partir d'échantillons de texture ordinaires en Objets de texture. Pour ce faire, suivez les étapes suivantes.
Trouvez l'échantillon de texture que vous voulez utiliser comme texture de détail.
Faites un clic droit sur le nœud de l'échantillon de texture et sélectionnez Convertir en objet de texture dans le menu contextuel.
L'échantillon de texture est converti en un objet de texture.
Comment utiliser la texturation détaillée dans votre matériau ?
Il existe deux façons de configurer un matériau pour qu'il utilise la Texturation détaillée, et toutes deux sont décrites ci-dessous. La principale différence entre les deux méthodes consiste à utiliser la fonction de matériau de texturation détaillée prédéfinie ou à créer manuellement la logique de texturation détaillée dans le graphique de matériau. Aucune des deux options n'est préférable à l'autre, car elles produisent les mêmes résultats au bout du compte. La méthode que vous choisissez d'utiliser dépend des besoins du matériau et du projet spécifiques.
Tout le contenu utilisé dans les sections suivantes est disponible dans le Contenu de démarrage de l'Unreal Engine. Bien que les techniques présentées ici fonctionnent avec n'importe quelle texture, si vous voulez suivre le mouvement, assurez-vous que votre projet comprend le Contenu de démarrage.
Créer un nouveau matériau à utiliser pour les tests. Faites un clic droit dans le navigateur de contenu et choisissez Matériau dans la section Créer une ressource de base du menu contextuel. Donnez au Matériau un nom descriptif comme DetailTexturing.
Utilisation de la fonction de matériau de texturation détaillée
Ouvrir le matériau en double-cliquant sur la ressource dans le navigateur de contenu. L'Éditeur de matériaux s'ouvre.
Trouvez les quatre textures suivantes dans le Contenu de démarrage. Faites-les glisser du Navigateur de contenu vers votre Graphique de matériaux.
T_Brick_Clay_Old_D
T_Brick_Clay_Old_N
T_Ground_Gravel_D
T_Ground_Moss_N
Une fois terminé, votre graphique de matériau devrait ressembler à ceci :
Faites un clic droit dans le graphique de matériau et cherchez "Detail Texturing" dans le menu contextuel. Cliquez sur DetailTexturing dans la catégorie Divers pour ajouter la fonction de matériau à votre graphique.
Une fonction de matériau DetailTexturing est créée dans le graphique de matériau.
Dans cet exemple, les textures T_GroundGravel_D et T_Ground_Moss_N seront utilisées comme textures de détail. Afin de relier les textures de détail à la fonction de matériau, elles doivent être converties en objets de texture. Faites un clic droit sur T_GroundGravel_D et T_Ground_Moss_N et convertissez-les en objets de texture.
Connectez tous les nœuds comme indiqué ci-dessous. Les deux textures de briques doivent être connectées aux entrées Diffuse et Normal, et les deux objets de texture doivent être connectés aux broches DetailDiffuse et DetailNormal. Passez la sortie Diffuse dans la couleur de base et la sortie Normale dans l'entrée Normale du Nœud de matériau principal.
Des valeurs supplémentaires sont nécessaires pour contrôler l'échelle et l'intensité des textures. Vous pouvez utiliser une expression de matériau Constante ou un Paramètre scalaire pour ces entrées. Cet exemple utilise trois Paramètres scalaires nommés Échelle, Intensité diffuse et Intensité normale. La valeur par défaut de ces trois nœuds est fixée à 1.
Connectez les paramètres scalaires à leurs entrées correspondantes. Une fois terminé, votre Graphique de matériaux devrait ressembler à ceci.
En ajustant les valeurs des paramètres scalaires, vous pouvez modifier l'aspect des textures détaillées. Voici un exemple de ce qui se passe lorsque vous définissez l'échelle sur une valeur de 1, puis de 5, et enfin de 10. La texture détaillée s'étend plus souvent sur la maille, ce qui signifie que la texture elle-même apparaît plus petite ou plus fine.
Configuration manuelle de la texture de détail
Si, pour une raison quelconque, vous ne pouvez pas utiliser la fonction de matériau Texturation détaillée, vous pouvez créer cette fonctionnalité dans le graphique de matériau en utilisant les nœuds d'expression de matériau et les instructions ci-dessous.
Dupliquez le premier matériau dans le Navigateur de contenu en cliquant avec le bouton droit de la souris sur la vignette et en choisissant Dupliquer dans le menu contextuel. Renommez le nouveau Matériau DetailTexturing_02 et double-cliquez dessus pour l'ouvrir dans l'Éditeur de matériau.
Supprimez tout sauf les quatre textures. Vous devez également reconvertir les deux objets de texture en échantillons de texture. Faites un clic droit sur chaque nœud d'objet de texture et choisissez Convertir en échantillon de texture dans le menu contextuel.
Les nœuds d'expression de matériau suivants sont nécessaires pour créer manuellement la texturation détaillée. Vous pouvez trouver chacun des éléments suivants en les recherchant dans la Palette ou en utilisant la barre de recherche du menu contextuel du clic droit.
Coordonnée de texture x 1
Broche x 1
Paramètre scalaire x 2
Ajouter x 2
Multiplier x 3
Une fois terminé, le graphique de matériaux devrait ressembler à ceci.
Après avoir ajouté tous les nœuds à votre graphique, commencez à les connecter comme indiqué. L'image ci-dessous montre la configuration correcte pour la partie Couleur de base du graphique. Une fois terminé, le graphique de matériaux devrait ressembler à ceci.
Cliquez sur l'image pour l'agrandir..
La logique créée dans la section Couleur de base pour contrôler l'échelle de la texture peut être réutilisée avec les textures de normales. Connectez les nœuds comme indiqué ci-dessous.
Cliquez sur l'image pour l'agrandir..
La Couleur de base et la texture de normales étant maintenant reliées entre elles, le matériau est prêt à être compilé, enregistré et utilisé.
Cliquez sur l'image pour l'agrandir..
Conseil et astuces de texturation détaillée
La section suivante présente quelques conseils et astuces sur les différentes façons d'utiliser la texturation détaillée dans vos matériaux.
Texturation détaillée basée sur la distance
Lorsque vous traitez de grandes surfaces, telles que des terrains, vous pouvez remarquer que, même si vos textures s'enchaînent de manière transparente, il existe une répétition notable qui affaiblit l'apparence de la texture, notamment lorsqu'elle est vue de loin.
Pour résoudre ce problème, vous pouvez modifier le matériau de détail créé précédemment pour lui permettre d'afficher une texture lorsque la caméra est proche et une autre texture lorsque la caméra est éloignée. Ce procédé est souvent appelé "fusion de textures basée sur la distance". Vous pouvez le faire en suivant les instructions ci-dessous.
Tout d'abord, dupliquez le matériau DetailTexturing_02 et renommez-le DistanceFade. Ouvrez le matériau.
Vous pouvez supprimer la plupart des connexions de nœuds du matériau d'origine, mais ne supprimez pas les quatre textures. Vous devez également conserver la section intitulée Contrôles d'échelle ci-dessous. Recherchez et ajoutez les expressions de Matériau suivantes à votre graphique.
World_Position x 1
Camera_Position_WR x 1
Distance x 1
Diviser x 1
Puissance x 1
Broche x 1
Constante x 2
Une fois terminé, le graphique de matériaux devrait ressembler à ceci.
Changez les valeurs des deux expressions de Matériau de Constante en 512 et 4, puis connectez les nœuds dans la configuration indiquée ci-dessous. La distance à laquelle la fusion de textures se produit est contrôlée par la première Constante qui est insérée dans l'expression de matériau Diviser (fixée à 512 dans l'image d'exemple). Le graphique de matériau présenté ci-dessous fournit toute la logique nécessaire pour fusionner les textures en fonction de la distance.
Vous pouvez maintenant connecter la logique de fondu de la distance au reste du graphique. Tout d'abord, ajoutez deux nœuds Interpolation linéaire (Lerp) au graphique. L'entrée Alpha sur les nœuds Lerp va gérer la transition entre les deux textures. Terminez de relier le matériau comme indiqué ci-dessous.
Pour avoir un aperçu de l'effet, maintenez le bouton droit de la souris enfoncé dans le hublot d'aperçu du Matériau et déplacez la souris vers le haut et le bas pour effectuer un zoom avant et arrière. Lorsque la caméra se trouve à 512 unités de la sphère, le Matériau passe de la brique au gravier. Si vous ne voyez pas cela se produire, vous pouvez ajuster la valeur de la Constante branchée sur le nœud Diviser. En réduisant la valeur de 512 à quelque chose de plus petit, la transition se fera plus rapidement.
Conclusion
La texturation détaillée est un outil très puissant qui permet d'améliorer l'apparence des Matériaux en complétant les textures de base par des textures détaillées hautement répétées. Gardez à l'esprit que la texturation détaillée ne peut aider à cacher la pixellisation que jusqu'à un certain point, et permettre à la caméra du joueur de zoomer dans les objets à un degré déraisonnable peut annuler les avantages de la texturation détaillée. Rappelez-vous également que l'ajout de textures détaillées peut ajouter deux ou plusieurs recherches de textures supplémentaires à votre matériau, ce qui peut poser des problèmes de performance ou de mémoire, en particulier sur les plateformes mobiles.