Tous les articles
Tutoriels · 7 min read

Vertex painting pour le blending de matériaux : transitions terrain et mesh sans couture

Comment le vertex painting mélange les matériaux pour tuer les coutures visibles : l'astuce du height-blend qui bat l'alpha linéaire, peindre la boue dans l'herbe et la mousse sur la roche, les considérations de performance, et où il s'insère à côté des décalques et des textures en tiling.

Aerial view of a forested river valley crossed by a steel bridge and a road

Les coutures franches où un matériau rencontre un autre (l'herbe heurtant la roche, la boue rencontrant la pierre) sont l'un des plus grands indices d'un environnement amateur. Le vertex painting mélange les matériaux directement sur un mesh pour effacer ces coutures, et un « height blend » rend la transition naturelle au lieu d'un fondu. Cet article explique comment fonctionne le vertex blending, l'astuce du height-blend qui sépare les bonnes transitions des boueuses, où le peindre, ce qu'il coûte au runtime, et comment il s'accorde avec les décalques et les textures en tiling.

Un delta de rivière où l'eau, le limon et la végétation se fondent l'un dans l'autre La nature n'a pas de bords francs. Là où l'eau rencontre le limon rencontre l'herbe, la transition est irrégulière et imbriquée : exactement ce que le vertex blending recrée pour que tes matériaux cessent de se rencontrer en lignes droites et évidentes.

Le problème : les coutures trahissent tout

Les surfaces réelles transitionnent irrégulièrement : l'herbe s'insinue dans le gravier, la boue s'accumule dans les creux, la mousse grimpe le côté ombragé de la roche. Une ligne droite franche entre deux matériaux se lit comme fausse instantanément, aussi bonne que soit chaque texture.

Tu peux avoir deux textures photoréalistes et quand même obtenir un environnement qui a l'air faux, parce que la transition entre elles est là où vit la crédibilité. Dans le monde réel, les matériaux s'interpénètrent : la terre s'infiltre dans les fissures, l'herbe s'amincit en sentier, la neige s'amasse sur les corniches. Une surface de jeu qui passe de l'herbe à la roche le long d'une arête de polygone nette hurle « faite de tuiles ». Le vertex painting est l'outil primaire pour dissoudre ces arêtes, laissant les matériaux baver l'un dans l'autre comme ils le font dehors.

Comment fonctionne le vertex blending

Chaque vertex stocke des données couleur/alpha ; un matériau de blend les lit pour mélanger deux textures ou plus par pixel sur la surface. Peins les données de vertex in-engine et les matériaux transitionnent partout où tu as peint, sans UVs ni géométrie supplémentaires.

Chaque vertex d'un mesh peut porter un peu de données supplémentaires : des couleurs de vertex, habituellement quatre canaux. Un matériau de blend interprète ces données comme un masque : où un canal est fort, montre le matériau A ; où il est faible, montre le matériau B ; et interpole entre. Parce que tu peins les données de vertex directement sur le modèle dans l'éditeur, tu contrôles la transition à la main, exactement où tu veux : de la boue le long de la base d'un mur, de l'usure sur les coins d'un sol, de la mousse sur un côté d'un rocher. Ça ne coûte aucun set d'UV supplémentaire et aucune géométrie ajoutée (au-delà d'avoir assez de vertices pour y peindre du détail), c'est pourquoi c'est la technique de blending de trait pour le terrain et les grands meshes.

L'astuce du height-blend

Ne blende pas linéairement sur l'alpha : blende en utilisant une height map pour que le matériau supérieur remplisse d'abord les fissures et les creux. Le blending linéaire donne un fondu doux et boueux ; le height blending donne une transition nette, naturelle, imbriquée.

C'est la mise à niveau la plus importante de ton matériau de blend, et c'est ce qui sépare une transition professionnelle d'une baveuse. Un blend naïf fond linéairement entre deux textures le long du masque, produisant un chevauchement doux et fantomatique qui ressemble à un dégradé Photoshop. Un height blend utilise plutôt l'information de hauteur/displacement des matériaux pour décider de la transition : le matériau entrant se dépose d'abord dans les zones basses (les lignes de mortier, les fissures, les bosselures) avant de couvrir les points hauts, exactement comme de la vraie terre, du sable ou de la neige qui s'accumule. Le résultat est une frontière nette, irrégulière, crédible au lieu d'un fondu flou. Si tes blends ont l'air boueux, ajouter une transition basée sur la hauteur est presque toujours la solution.

La lisière d'une forêt rencontrant un terrain découvert, la végétation s'amincissant Une lisière de forêt est un blend à l'état sauvage : la limite des arbres ne s'arrête pas à une ligne, elle se disperse et s'amincit. Le vertex blending basé sur la hauteur recrée cette transition déchiquetée et imbriquée au lieu d'une bordure propre.

Où le peindre

Peins les transitions où les surfaces interagissent naturellement : la base des murs (terre/humidité), les coins et arêtes des sols (usure), les côtés ombragés de la roche (mousse), les creux (boue/flaques), et partout où deux couches de terrain se rencontrent.

Le vertex blending paie le plus aux endroits où l'œil vérifie le réalisme : points de contact et zones d'usure. Quelques endroits à haute valeur à toujours considérer : terre et humidité rampant sur la base des murs ; éraflures et matériau exposé sur les coins des sols et des marches où les pieds atterrissent ; mousse et lichen sur les faces nord/ombragées des roches ; boue et eau stagnante dans les points les plus bas ; et les coutures entre les couches de terrain sur un paysage. Ce sont les mêmes endroits qu'un conteur habille, parce que c'est là qu'un lieu montre son histoire. Peins-les et un kit propre, d'aspect neuf, se lit soudain comme patiné et réel.

Performance et limites

Les matériaux de blend coûtent plus par pixel (ils échantillonnent plusieurs sets de textures), donc utilise-les là où les transitions comptent, pas partout. Le détail de vertex est limité par la densité du mesh : tu ne peux peindre qu'aussi fin que tes vertices le permettent.

Le blending n'est pas gratuit : un matériau de blend à deux ou trois couches échantillonne plusieurs textures par pixel, il est donc plus cher qu'un matériau unique. C'est bien sur le terrain héros et les surfaces que la caméra étudie, mais appliquer en couverture un blend à quatre couches à chaque mesh gaspille le GPU. L'autre limite est la résolution : le vertex painting ne peut être aussi détaillé que le mesh est dense, donc un mur low-poly ne peut porter une fine transition peinte : c'est là que les décalques entrent pour ajouter du détail à plus petite échelle par-dessus. Utilise le bon outil à chaque échelle : vertex blend pour la transition large, décalques pour le détail local net.

Où il s'insère avec les autres outils

Le vertex blend gère la transition de matériau à échelle moyenne ; les textures en tiling fournissent le détail de base à bas coût ; les décalques ajoutent des features locales nettes (fissures, taches, fuites) trop fines pour être peintes par vertex. Ils s'empilent.

Aucun de ces outils ne rivalise : ils se superposent. Les textures en tiling te donnent du détail haute fréquence abordable sur de grandes surfaces. Le vertex blending mélange ces matériaux en tiling pour qu'ils ne se rencontrent pas en lignes franches. Les décalques se posent ensuite par-dessus pour les détails spécifiques et nets que la résolution de vertex ne peut atteindre : une fissure, une brûlure, une tache d'eau sur une couture. Une surface d'environnement mature est habituellement les trois à la fois. Faire entrer un blending de matériaux crédible dans un jeu (et le faire baker vers des matériaux d'engine standard pour qu'il ne coûte rien d'inattendu au runtime) est exactement le genre de travail de surface que Numivo est conçu pour rendre routinier, pour que les coutures disparaissent sans un shader sur mesure pour chaque rencontre de deux matériaux.

Chiffres de terrain à voler

  • La mise à niveau qui répare les blends boueux : height blend, pas alpha linéaire
  • Plafond de détail du vertex-paint = densité de vertices du mesh : mesh plus dense, peinture plus fine
  • Zones de peinture à plus haute valeur : bases de murs, arêtes de sols, roche ombragée, creux
  • Le coût du matériau de blend croît avec les couches échantillonnées : réserve les blends à nombreuses couches aux surfaces héros
  • Le stack complet : base en tiling → vertex blend → décalques pour le détail local

Mini-FAQ

Vertex painting vs une splat/weight map pour le terrain ? Même idée, stockage différent : le terrain utilise souvent des layer weight maps (un masque de texture) au lieu des couleurs de vertex, ce qui découple le détail de la densité du mesh. Les meshes utilisent les couleurs de vertex ; les grands terrains utilisent souvent des layer maps. Le principe du height-blend s'applique aux deux.

Pourquoi mon blend a-t-il l'air doux et boueux ? Tu blendes presque certainement linéairement sur l'alpha. Passe à un blend piloté par hauteur/displacement pour que la transition se dépose d'abord dans les zones basses, et la douceur devient une arête nette et naturelle.

Combien de couches de blend est-ce trop ? Deux sont bon marché et couvrent la plupart des transitions ; trois sont courantes pour le terrain ; quatre et plus deviennent chers et durs à créer. Si tu en as besoin de plus, demande-toi si des décalques ou un second matériau serviraient mieux.

Ai-je besoin d'un shader personnalisé pour ça ? La logique de blend est assez standard pour que la plupart des engines et toolsets la fournissent, et le baking vers des matériaux d'engine simples garde le coût runtime prévisible. Tu as rarement besoin de code de shader sur mesure : tu as besoin du setup de height-blend et d'un endroit sensé où peindre.

Les coutures sont là où les environnements crédibles se gagnent ou se perdent. Peins tes transitions là où les surfaces interagissent vraiment, blende par hauteur au lieu d'un fondu plat, et empile tiling et décalques autour, et tes matériaux se rencontreront comme ils le font dans le monde : irrégulièrement, de façon imbriquée, et sans une seule ligne droite révélatrice.