Quels sont les avantages des normales dans l'espace tangent par rapport aux normales dans l'espace objet pour le calcul du bump mapping?
Quels sont les avantages des normales dans l'espace tangent par rapport aux normales dans l'espace objet pour le calcul du bump mapping?
Réponses:
Tout, vraiment.
Le seul avantage des normales de l'espace objet est la simplicité. Ils sont plus faciles à utiliser.
Les normales de l'espace tangent nécessitent une base de l'espace tangent, mais offrent:
La possibilité d'utiliser la même texture pour différentes surfaces. Les cartes normales d'espace objet ne peuvent être utilisées que sur la surface pour laquelle elles ont été créées. En régularisant les normales dans l'espace tangent, vous gagnez la liberté d'utiliser la même texture de relief pour différentes surfaces. Tant que la surface a une base d'espace tangent, vous obtiendrez des résultats raisonnables.
La possibilité de modifier le mapping de texture, avec une animation UV par exemple. Étant donné que les cartes normales de l'espace objet stockent des normales dans l'espace objet, vous ne pouvez pas simplement ajouter 0,5 à toutes les coordonnées de texture et vous attendre à obtenir des normales appropriées de la texture. Vous pouvez le faire avec le bump mapping dans l'espace tangent.
Représentation de composants plus petits. Les cartes normales d'espace objet doivent avoir 3 composants; vous ne pouvez pas en déposer un et le reconstituer dans le shader. Les normales de l'espace tangent auront toujours une composante Z positive, vous ne pouvez donc stocker que le XY de la normale. Vous pouvez donc soit obtenir une plus grande précision en utilisant un formatGL_RG16_SNORM
ou (32 bits par texel), soit utiliser la compression en utilisant un format d'image compressé RG ( , 8 bits par texel). Vous pouvez essayer d'utiliser S3TC sur une carte normale de l'espace objet, mais bonne chance avec ce que vous récupérez.GL_RG16F
GL_COMPRESSED_SIGNED_RG_RGTC1
Le maximum absolu que vous obtenez avec les cartes normales de l'espace objet est moins de temps de calcul (ne pas avoir à transformer la direction de la lumière en espace tangent, ou alternativement, transformer la normale de l'espace tangent en espace modèle). Mais ce n'est pas un gros problème, surtout de nos jours avec des moteurs de rendu différés.
Une réponse partielle, à ajouter à la réponse de Nicol.
Beaucoup d'avantages. Selon un article que j'ai trouvé (qui est également lié dans les commentaires), il y a encore quelques légers inconvénients. Cependant, avec des artistes habitués à faire face à ces problèmes, ou des objets qui sont en quelque sorte moins sujets à ces défis, cet inconvénient peut ne pas être très impactant.
Extrait d' un article sur la cartographie normale de l'espace tangent :
Bien qu'une bonne implémentation puisse limiter les problèmes, l'idée fondamentale d'une cartographie normale a ses défauts. Déballer des modèles complexes et placer des coutures dans des zones moins exposées peut être délicat pour les artistes. Les images suivantes montrent des cartes normales d'espace objet (à gauche) et des cartes normales d'espace tangent (à droite). Ici, les cartes normales d'espace objet posent beaucoup moins de problèmes car le filtrage bilinéaire adoucit les bords et les surfaces planes ont simplement une normale et sont donc parfaitement plates. Les coutures sur le côté gauche sont beaucoup moins visibles car l'ombrage est indépendant de la disposition UV et des distorsions triangulaires.
Cartes normales de l'espace objet:
Cartes normales de l'espace tangent: