Réponse courte
Les cartes normales et les normales sont deux choses différentes: les normales sont une propriété géométrique de tout maillage / surface, son utilisation n'est pas exclusive pour les calculs d'ombrage et d'éclairage, mais a en fait de nombreuses autres utilisations, par exemple en physique. Les cartes normales sont des textures qui codent des vecteurs normaux alternatifs utilisés en infographie pour simuler des bosses.
Longue réponse
Normales en géométrie une normale est un vecteur ou une ligne perpendiculaire à un objet donné (par exemple plan normal, sommet normal). Les normales dans les graphiques sont généralement utilisées pour les calculs de lumière, tels que le calcul de la réflexion diffuse à travers une surface en prenant le produit scalaire entre la direction de la lumière et les normales de surface. Les normales sont généralement calculées en fonction des propriétés géométriques du maillage (faces / sommets), en prenant le produit croisé de deux arêtes non parallèles situées sur le même plan.
Dans OpenGL, les normales sont spécifiées par sommet (d'où le nom d'attributs de sommet) même si elles peuvent être calculées uniquement pour chaque face dans ce cas, vous devez spécifier la même normale pour chaque sommet d'une face. Les normales peuvent être interpolées par OpenGL sur chaque sommet d'une face (triangle) afin que vous puissiez calculer la lumière réfléchie par pixel et non par sommet, donnant ainsi un résultat plus précis .
Correspondance normale : d'autre part, est une technique en infographie qui code les normales dans une carte de texture, de sorte que chaque normale est codée par texel. Il est généralement utilisé pour simuler l'éclairage des bosses et des bosses (par exemple, cartographie des bosses, cartographie de parallaxe).
Étant donné que les normales sont calculées en fonction des propriétés géométriques du maillage / de la surface, les cartes normales vous offrent des normales alternatives qui peuvent simuler les bosses pour ajouter des détails à la surface sans ajouter plus de polygones.
Les cartes normales sont généralement générées à l'aide d'un modèle 3D beaucoup plus détaillé, puis en calculant les normales sur la base de ce modèle et en les encodant dans une carte normale.
Pourquoi avons-nous besoin des deux?
Eh bien, ne parlant que de rendu, les normales et les cartes normales sont généralement utilisées ensemble pour obtenir l'effet d'éclairage final, un bon exemple peut être un shader de relief, où vous avez besoin de la carte normale pour obtenir l'effet d'éclairage de relief, et vous aurez toujours besoin du géométrique normale pour calculer ce qu'on appelle l' espace tangent . L'espace tangent est généralement utilisé pour permettre la réutilisation des cartes normales.
Gardez à l'esprit qu'une normale est considérée comme un attribut géométrique de la surface et a beaucoup plus d'utilisations que les seuls calculs de lumière. Les cartes normales, d'autre part, sont généralement utilisées pour les effets superficiels.
Étendre la réponse pour expliquer pourquoi les espaces tangents sont importants:
Réponse courte: les
espaces tangents sont utilisés pour rendre les cartes normales indépendantes de la géométrie sous-jacente.
[EDIT] Ajout d'une image pour représenter la carte normale dans l'espace tangent et la carte normale dans l'espace mondial.
Réponse longue:
L'image ci-dessous montre le plan UV et la normale qui définit l'espace tangent, lors de la génération d'une carte normale, nous saurons déjà que l'espace utilisé aura toujours le pointage Normal dans la direction Z (c'est pourquoi les cartes normales semblent bleuâtres) , cela nous aidera à ignorer la courbure de surface **,.
L'espace tangent nous donne l'avantage que notre encodage normal de cartes n'est pas lié à des normales de maillage spécifiques. Supposons que nous encodons notre carte normale dans l'espace du monde ou de l'objet, alors chaque normale que nous encodons aura une direction basée sur la façon dont les normales de maillage d'origine varient dans l'espace du monde, sans oublier que votre carte normale sera affectée par les transformations du modèle.
Dans les deux images ci-dessus, il est assez clair que l'espace des tangentes crée des cartes normales (à droite), indépendantes de la géométrie sous-jacente car toutes les normales sont encodées dans presque la même direction avec une petite variation pour simuler l'effet des bosses.
** la courbure de surface est définie par la quantité à laquelle un objet géométrique s'écarte d'être plat ou droit dans le cas d'une ligne, mais cela est défini de différentes manières selon le contexte.