Maison > développement back-end > C++ > le corps du texte

Comment obtenir une cartographie de relief fluide en lissant les normales de l'espace tangent ?

Susan Sarandon
Libérer: 2024-10-28 05:59:30
original
513 Les gens l'ont consulté

How to Achieve Smooth Bump Mapping by Smoothing Tangent Space Normals?

Comment éliminer l'apparence à facettes dans le Bump Mapping avec des normales d'espace tangentes lisses

Dans les efforts visant à incorporer le Bump Mapping, les utilisateurs peuvent rencontrer des apparences à facettes dans leurs modèles. Cela se produit en raison du calcul des valeurs tangentes, binormales et normales par face, sans tenir compte des normales fournies dans le fichier modèle.

Pour résoudre ce problème, envisagez plutôt de calculer ces valeurs par sommet. Une approche consiste à utiliser les normales fournies avec le modèle et à les lisser pour éliminer l'apparence facettée. Voici comment :

  1. Créer un espace pour les valeurs par sommet :

    double N[3]; //normal
    int cnt;
    Copier après la connexion
  2. Initialiser par sommet :

    N={0.0,0.0,0.0}
    cnt=0;
    Copier après la connexion
  3. Calculer la normale par visage :

    Calculez la normale pour chaque visage. Assurez-vous que la normale est normalisée à une longueur de 1,0. Ajoutez cette normale à tous les sommets utilisés dans la face et incrémentez le cnt pour chacun de ces sommets.

  4. Normaliser par sommet :

    N/=cnt; // N = average normal from all vertex - neighbour faces
    Copier après la connexion

    Méfiez-vous du fait que cnt soit 0 pour les sommets inutilisés (en évitant la division par zéro). >Après avoir normalisé les valeurs par sommet dans N, calculez les vecteurs tangents (T) et binormaux (B) pour la matrice TBN à l'aide des méthodes existantes.

  5. Sortie fluide :

    Grâce à cette approche, chaque sommet contient désormais une normale lissée. Cela garantit que l'image générée apparaîtra lisse.

  6. En suivant ces étapes, les utilisateurs peuvent éliminer efficacement l'apparence des facettes dans leurs modèles mappés en relief et obtenir des normales d'espace tangentes lisses.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!