Il existe deux types de cartes normales couramment utilisées dans le développement de jeux. La façon dont vous pensez qu'ils devraient fonctionner est la même qu'un type (cartes normales de l'espace modèle), mais la plupart des jeux utilisent un autre type (cartes normales de l'espace tangent), raison pour laquelle vous associez des textures généralement bleues à des cartes normales.
Avec les mappages de normales dans l'espace modèle , chaque canal code la valeur précise de la normale en utilisant le même système de coordonnées que les sommets du modèle avec lequel il est utilisé. Cela signifie que différentes parties de la carte normale auront des teintes différentes, mais que les pixels proches les uns des autres auront généralement des couleurs similaires. Un exemple de carte normale d’espace modèle apparaît ci-dessus ( source ).
Les cartes normales à espace tangent sont généralement bleu clair. Ce type de carte définit les normales dans un espace de coordonnées unique à la position de chaque pixel sur la surface du maillage. Il utilise la normale au sommet (interpolée) comme axe Z et deux autres vecteurs orthogonaux, appelés tangente et bitangente, comme axes X et Y. Pour l'essentiel, vous pouvez considérer les normales de la carte comme un "décalage" par rapport à la normale pour ce pixel calculé en interpolant les normales au sommet. Les vecteurs tangent et bitangent sont également interpolés à partir de données de sommet et déterminent quelle direction sur le maillage correspond à "haut" et "à gauche" dans la carte normale. L'image fournie dans la question fournit un excellent exemple de ce à quoi ressemble une carte normale normale dans un espace tangent. Je ne donnerai donc pas d'autre exemple ici.
Les composants d’un corps normal (sans jeu de mots) vont de [-1, 1]
. Mais les composants d'une couleur dans une image vont de [0, 1]
(ou [0, 255]
habituellement, ils sont normalisés [0, 1]
). Les normales sont donc mises à l’échelle et décalées de telle sorte que la normale (0, 0, 1)
devienne la couleur (0.5, 0.5, 1)
. C'est la couleur bleu clair que vous voyez dans les cartes normales, et elle n'indique aucun écart par rapport à la normale au sommet interpolée lors de l'utilisation de normales à l'espace tangent.
La raison pour laquelle les normales d’espace tangent sont préférées aux normales d’espace est due au fait qu’elles sont plus faciles à créer et peuvent être utilisées pour plusieurs maillages. De plus, s’ils sont utilisés avec un maillage animé, les normales d’espace tangent sont toujours utilisées, car les normales changent constamment.