https://main--cc--adobecom.hlx.page/cc-shared/fragments/merch/products/substance3d/sticky-banner/default

Comprendre le processus de normal mapping

En modélisation 3D, les surfaces sont représentées par des polygones. Des calculs d’éclairage sont réalisés en fonction de la géométrie de ces polygones, de la même manière qu’un ou une artiste userait de techniques d’ombrage pour reproduire l’aspect tridimensionnel. Cette approche fonctionne parfaitement, mais le fort pourcentage de calculs induits limite néanmoins le niveau de détail possible. Le normal mapping offre une solution légère intéressante en modifiant la façon dont la lumière interagit avec une surface, sans altérer la géométrie sous-jacente.

Les normal maps stockent les informations concernant une surface sous la forme d’une image de texture. En codant la normale à la surface dans une texture, elles peuvent simuler l’aspect des détails en surface, comme les bosses, rayures, plis, etc. sans accroître la complexité de la géométrie en dessous.

Le calcul des normal maps s’effectue pendant la phase de rendu, à partir de la normale à la surface modifiée qui en découle. Puisque le pourcentage de calculs est moindre, il est possible de parvenir à un niveau de détail élevé, même en temps réel, ce qui explique pourquoi cette technique est prisée des équipes de développement de jeux vidéo.

Le normal mapping aujourd’hui

Dans l’ensemble, le normal mapping est une technique offrant de nombreuses possibilités, que les artistes et designers 3D ont tout intérêt à utiliser pour accélérer et améliorer leurs workflows.

Le normal mapping est employé non seulement dans des scénarios où les contraintes matérielles sont extrêmement importantes, comme les jeux vidéo qui imposent le rendu des scènes en temps réel pour la gameuse ou le gamer, mais aussi dans les films d’animation en images de synthèse, la visualisation architecturale et le design de produits.

Cette technique n’ayant aucune incidence sur la colorisation d’un objet, elle est généralement utilisée dans les cas où la surface de ce dernier n’est pas parfaitement plane ou lisse. Autant dire que chaque modèle 3D ou presque pourrait s’appuyer sur une normal map pour valider son réalisme (cuir usé, veine ondulée du bois, peau, tissu, etc.).

Plusieurs applications et outils indispensables sont couramment utilisés pour le normal mapping. En voici quelques-uns :

1. Applications de modélisation 3D  : des outils tels que Blender, Maya, Zbrush et {{substance-3d-modeler}} servent à créer les modèles qui seront utilisés pour le normal mapping. Plusieurs solutions applicatives intéressantes proposent leurs propres approches de la modélisation et de la sculpture.

2. Applications de texturing  : des applications comme {{substance-3d-painter}} ou même Adobe Photoshop peuvent être employées pour créer et modifier des texture maps, y compris des normal maps.

3. Générateurs de normal maps  : les applications dédiées facilitent la création de normal maps à partir d’une géométrie haute résolution ou d’informations sur les textures. Des outils comme xNormal, CrazyBump ou Substance 3D Designer permettent de générer des normal maps à partir de divers éléments.

4. Moteurs de jeu  : des moteurs de jeu tels que Unreal Engine et Unity intègrent la prise en charge du normal mapping. Ces moteurs proposent les outils et fonctionnalités de rendu nécessaires pour mettre à profit les normal maps. Ils se révèlent tout aussi excellents dans la production de rendus que dans la création d’expériences de jeu.

5. Langages de programmation de shaders  : la maîtrise de leurs langages de programmation, comme HLSL (High-Level Shading Language) ou GLSL (OpenGL Shading Language), peut être utile pour créer des shaders sur mesure tirant avantage du normal mapping. Ces langages permettent aux équipes de développement de définir dans quelle mesure l’éclairage interagit avec les normal maps et autres texture maps pour créer de spectaculaires effets spéciaux.

Cette liste n’est sans doute pas exhaustive, mais elle constitue un excellent point de départ pour permettre aux équipes de création d’appréhender les principes de base du normal mapping et leur mise en œuvre dans des environnements de rendu en temps réel.

Normal mapping process to create 3D textures
Images de Playground Games
Normal mapping software generated leafs for 3D design

En quoi les normal maps diffèrent-elles des bump maps ?

Les normal maps et les bump maps sont des techniques analogues utilisées pour ajouter des détails à la surface de modèles 3D. Elles se distinguent par leur manière de représenter et de manipuler les normales à la surface. Voici tout ce que vous devez savoir sur leurs différences.
Bump mapping
Parfois appelées height maps ou displacement maps, les bump maps stockent des informations relatives aux hauteurs qui correspondent aux variations d’une surface. Elles recourent à des images en niveaux de gris dont les valeurs claires ou foncées représentent les parties hautes ou basses de la surface. Les bump maps modifient la géométrie d’un modèle lors de la phase de rendu en perturbant la normale à sa surface à partir de ces valeurs de niveaux de gris. Par conséquent, si cette technique donne l’illusion d’aspérités en surface dès lors que la lumière interagit avec le modèle au cours du rendu, les bump maps ne stockent absolument aucune des normales à la surface, uniquement des informations de hauteur.
Normal mapping

Les normal maps stockent des informations explicites concernant les normales à la surface dans des images RVB : à chaque canal de couleur sont associées les composantes X, Y et Z du vecteur correspondant pour chaque élément de texture. Comprenant nettement plus d’informations sur l’orientation d’une surface, les normal maps n’ont aucune incidence sur la géométrie du modèle en lui-même, mais modifient la manière dont la lumière interagit avec lui.

Par rapport aux bump maps, les normal maps donnent les résultats les plus précis, restituant des détails en surface au-delà des seules variations de hauteur.

Avantages et inconvénients du normal mapping

En résumé, le normal mapping présente plusieurs avantages et quelques inconvénients éventuels. En voici quelques-uns à prendre en compte :
Avantages du normal mapping

1. Détails en surface réalistes  : le normal mapping permet d’ajouter quantité de détails en surface sans accroître la complexité géométrique.

2. Économie de calculs  : le normal mapping est une technique peu gourmande en calculs, surtout si on la compare au nombre croissant de polygones dont sont composés les modèles pour restituer des détails en surface.

3. Réduction de la quantité de mémoire requise  : les normal maps stockant les informations dans un format de texture, la mémoire utilisée est moindre par rapport au stockage de données géométriques.

4. Réutilisabilité  : les normal maps s’appliquent aisément à différents modèles, ce qui permet aux artistes et aux équipes de développement de les réutiliser avec de multiples assets, d’où des gains de temps et d’efforts profitables, au final, au format des produits.

5. Effets d’éclairage interactifs  : le normal mapping améliore l’interaction de la lumière avec un modèle ; il se prête à des effets d’éclairage 3D dynamique tels que des lumières spéculaires, des variations d’ombrage et des reflets plus précis.

Inconvénients du normal mapping

1. Transformation géométrique restreinte  : les normal maps agissent uniquement sur l’aspect des détails en surface et sont sans effet sur la géométrie. L’illusion qu’elles créent se révèle souvent efficace, même si d’autres techniques sont parfois nécessaires dès lors que la géométrie doit être modifiée.

2. Création et modification  : la création de normal maps de qualité représente parfois un véritable défi et nécessite des connaissances et des applications spécialisées. Leur modification peut être difficile en raison de la nature complexe des données.

3. Insuffisances de l’espace de texture  : les normal maps ont besoin de plus d’espace de texture, car elles sont généralement stockées sous forme d’images RVB. L’utilisation de mémoire globale peut s’en trouver affectée et une optimisation peut s’avérer nécessaire dans certains cas.

4. Insuffisances de l’espace tangent  : en règle générale, les normal maps sont définies dans l’espace tangent, ce qui signifie qu’elles dépendent de l’orientation d’un modèle et de ses coordonnées UV. De ce fait, l’application d’une même normal map à des modèles aux dispositions ou orientations UV différentes peut parfois occasionner des artefacts visuels.

Malgré quelques imperfections, les normal maps représentent la technique la plus efficace pour améliorer la qualité visuelle et le réalisme des modèles 3D en temps réel. Le normal mapping offre un solide équilibre entre performances et fidélité visuelle, ce qui en fait un outil inestimable pour le texturing 3D et le rendu.

Dans quels cas utiliser le normal mapping ?

Si l’utilisation du normal mapping est toujours souhaitable, il arrive néanmoins qu’un ou une artiste veuille faire abstraction des normal maps et sculpter des détails directement dans la géométrie d’un modèle. Rien de plus facile : il lui suffit d’utiliser une application de sculpture 3D telle que Substance 3D Modeler. En revanche, si un rendu en temps réel se révèle indispensable, des normal maps sont nécessaires pour conserver le petit nombre de polygones dans une scène tout en optimisant la fidélité visuelle.

Familiarisez-vous avec le normal mapping.

Gardez à l’esprit que, comme pour tous les aspects de la 3D, la pratique est essentielle à la maîtrise des techniques de normal mapping. N’hésitez pas à tester différentes applications. Associez des normal maps à vos propres modèles, puis observez les effets et leur comportement. En un clin d’œil, vous apprendrez à obtenir des résultats spectaculaires tout en ménageant la mémoire vive de votre ordinateur et en gagnant même du temps lors de la création.

Foire aux questions (FAQ)

QU’EST-CE QU’UNE NORMAL MAP EN DESIGN DE JEUX VIDÉO ?

Une normal map est un type de texture map stockant des informations concernant les normales à la surface dans une image RVB. Elle permet de revoir la manière dont la lumière interagit avec la surface d’un modèle sans modifier la géométrie de ce dernier. Le normal mapping est particulièrement utile dans le design de jeux 3D, étant donné qu’un rendu en temps réel est indispensable aux jeux vidéo et que les normal maps sont nettement plus efficaces que la modélisation pour restituer les moindres détails de la surface d’un modèle.

COMBIEN DE CANAUX UNE NORMAL MAP COMPORTE-T-ELLE ?

Les normal maps sont créées au moyen d’une image RVB (rouge, vert et bleu) : à chaque canal de couleur est associée la direction des normales correspondantes en surface, selon les axes X, Y et Z, pour chaque élément de texture de la map en question. En d’autres termes, une normal map comporte trois canaux, définis individuellement par des valeurs positives ou négatives.

  • Le canal rouge (R) correspond à la composante X du vecteur normal à la surface.
  • Le canal vert (V) correspond à la composante Y du vecteur normal à la surface.
  • Le canal bleu (B) correspond à la composante Z du vecteur normal à la surface.

Ensemble, ces trois canaux fournissent, pour chaque élément de texture, des données d’orientation explicites qui sont utilisées au cours du rendu pour améliorer les effets d’éclairage et d’ombrage sur le modèle 3D.

D’OÙ VIENT L’APPELLATION « NORMAL MAP » ?

En infographie, la « normale » désigne un vecteur perpendiculaire (ou « normal ») à une surface en un point spécifique. Les « normal maps » sont appelées ainsi car elles stockent des informations sur les normales à la surface d’un modèle 3D.

L’application d’une normal map durant le rendu modifie les normales à la surface du modèle 3D en fonction des informations stockées dans la map, aboutissant à des effets d’éclairage et d’ombrage qui donnent l’illusion de quantité de détails en surface.

https://main--cc--adobecom.hlx.page/cc-shared/fragments/products/substance3d/bottom-blade-cta-s3d-collection