IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

OpenGL Discussion :

Calculs de normals par sommets.


Sujet :

OpenGL

  1. #1
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Points : 164
    Points
    164
    Par défaut Calculs de normals par sommets.
    Bonjour bonjour.
    ( Je sais, ca fait pas mal de post de moi ces jours-ci ...)

    Mais je me retrouve face a toujours de nouveaux problème (haa que du bonheur ^^). J'essaie de faire de l'éclairage per-vertex et non plus par face.

    Seul problème, je doit maintenant calcule des normals de fcons bien plus "chiante". Y-a-til une manière élégante de faire cela? Dois-je commencer a définir des classes intermédiaire pour éviter le bordel ? (genre classe vertex, classe tirangle ect ... )

    Car rien que pour un cube ca a l'air bien "bourrin" si je le fait a la main vraiment a l'arrache la ou j'ai le code de dessein de mon cube ...

    Merci davance

  2. #2
    Expert confirmé
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 535
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 535
    Points : 5 217
    Points
    5 217
    Par défaut
    je devine que tu dessines tes objets 3D à grand renforts de glBegin glEnd codés en dur, non ?

    je te conseille fortement de t'orienter vers le chargement d'objets 3D créés à l'aide de modeleur, ça te simplifierait la vie puisque les modeleurs te permettront de calculer tes normales de la meilleure façon qu'il soit

    pour en revenir à ta question, il n'y a pas vraiment de manière élégante de le faire, si tu programmes en C++ tu peux encapsuler tes vertex / triangles si ça peux te simplifier les choses

    la première chose à faire est de calculer la normale de chaque face
    ensuite, pour chaque sommet :
    - faire la somme des normales de chaque face dont le sommet fait partie
    - normaliser le vecteur résultant pour obtenir la normale du sommet

    rien de très compliqué si ton code est bien organisé

  3. #3
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Points : 5 323
    Points
    5 323
    Par défaut
    Citation Envoyé par shenron666 Voir le message
    la première chose à faire est de calculer la normale de chaque face
    ensuite, pour chaque sommet :
    - faire la somme des normales de chaque face dont le sommet fait partie
    - normaliser le vecteur résultant pour obtenir la normale du sommet
    c'est effectivement l'algo de base pour calculer les normales par vertex, c'est simple à mettre en oeuvre et ca marche bien... sauf pour les cubes et toute forme géometrique ayant de fort angles entre les faces. dans ce cas la, on ne souhaite plus avoir des normales lissé, et du coup, cet algo ne fonctionne plus.

    donc bref, la solution la plus simple reste de charger un format de modèle qui contient les normales

  4. #4
    Expert confirmé
    Avatar de shenron666
    Homme Profil pro
    avancé
    Inscrit en
    Avril 2005
    Messages
    2 535
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : avancé

    Informations forums :
    Inscription : Avril 2005
    Messages : 2 535
    Points : 5 217
    Points
    5 217
    Par défaut
    cet algo marche aussi pour les cubes
    la condition à remplir pour cela est que les sommets ne doivent pas être communs à plusieurs faces

Discussions similaires

  1. Réponses: 5
    Dernier message: 29/12/2005, 10h31
  2. Réponses: 4
    Dernier message: 28/09/2005, 09h19
  3. Calcul de normal par vertice
    Par ed_ dans le forum OpenGL
    Réponses: 6
    Dernier message: 27/08/2005, 10h15
  4. Problème dans le calcul des normales moyennes,
    Par MaxPayne dans le forum OpenGL
    Réponses: 1
    Dernier message: 12/04/2005, 17h50
  5. problème de calcul des normales par sommet
    Par captainSeb dans le forum OpenGL
    Réponses: 2
    Dernier message: 21/01/2005, 13h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo