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 :

Problème éclairage par vertex


Sujet :

OpenGL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 10
    Par défaut Problème éclairage par vertex
    j'ai un petit probleme en ce qui concerne l'eclairage par vertex voici un apercu d'un volume que j'obtient (en fichier joint -> 1.jpg)



    alors que la surface est deja lisse sans eclairage voici ce que j'obtient avec un fog (fichier joint -> 2.jpg)

    je signale que pour ce volume j'ai utilisé 1010956 triangles
    Je voudrai savoir est ce que je me suis trompé dans le calcul des normales ou est ce que c'est tout a fait normal que j'obtienne ce resultat en utilisant l'éclairage par vertex.
    Merci
    Images attachées Images attachées    

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

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

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Par défaut
    comment est ce que tu calcul tes normales ? car la ca resemble a des normales pas smoothé (donc a priori mal calculées)
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

  3. #3
    Membre habitué
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 10
    Par défaut
    Voila comment je procède :
    tr[i] représente le point i
    N est le vecteur normal
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    /* Je calcul la normal à la surface du triangle*/
    vec1[0] = tr[0].x - tr[1].x;
    vec1[1] = tr[0].y - tr[1].y;
    vec1[2] = tr[0].z - tr[1].z;
    vec2[0] = tr[1].x - tr[2].x;
    vec2[1] = tr[1].y - tr[2].y;
    vec2[2] = tr[1].z - tr[2].z;
    N.x = vec1[1] * vec2[2] - vec1[2] * vec2[1];
    N.y = vec1[2] * vec2[0] - vec1[0] * vec2[2];
    N.z = vec1[0] * vec2[1] - vec1[1] * vec2[0];
    si (N.z<0) {
    N.x=-N.x;
    N.y=-N.y;
    N.z=-N.z;
    }
    Ensuite pour connaitre la normal au point i, je fais la moyenne des veceurs normaux des triangles auxquelles le point i appartient.
    Voila
    Encore merci

  4. #4
    Membre émérite Avatar de MatRem
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 750
    Par défaut
    si (N.z<0)
    {
    N.x=-N.x;
    N.y=-N.y;
    N.z=-N.z;
    }
    Ça te sert à quoi ça?

  5. #5
    Membre habitué
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 10
    Par défaut
    il se trouve que chaque triangle possède au fait deux vecteur normal, je choisi toujours celui qui se dirige vers le point de vue de la scene. est-ce une erreur?

  6. #6
    Membre émérite Avatar de MatRem
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    750
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 750
    Par défaut
    Ton algorithme fonctionne dans le cas où ton point de vue est toujours dirigé selon -Z, et si jamais tu ne fait pas tourner ton maillage.

    Cependant la solution de calcul de normales qui fonctionne dans tout les cas, et celle d'avoir des triangles qui sont tous définis dans le même sens (en général sens inverse des aiguilles d'une montre, en regardant sa face avant) et d'effectuer le produit vectoriel (s1-s0) ^ (s2 - s0).

    1 ******** 0
    .. ******
    .. ****
    .. **
    .. *
    .. 2

  7. #7
    Membre habitué
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 10
    Par défaut
    Me revoilà, désolé pour le retard, j'ai du apporter quelques modifications à mon code
    donc voila ce que j'obtiens maintenant (en fichier joint -> res.jpg) avec une seul lumière positionnelle placé au point (1,0,1), Est ce que ça à l'air correcte maintenant???

Discussions similaires

  1. Problème administration par l'interface WEB
    Par Akriden dans le forum Tomcat et TomEE
    Réponses: 6
    Dernier message: 18/07/2006, 09h24
  2. Problème transmission par adresse
    Par pierrOPSG dans le forum C
    Réponses: 5
    Dernier message: 05/04/2006, 14h29
  3. problème détecté par dxdiag !
    Par praoune dans le forum Sécurité
    Réponses: 10
    Dernier message: 24/03/2006, 19h45
  4. Problème classement par date
    Par Triomen dans le forum Langage SQL
    Réponses: 12
    Dernier message: 06/09/2005, 14h09
  5. Problême tri par ardre croissant
    Par vince86000 dans le forum ASP
    Réponses: 2
    Dernier message: 28/04/2005, 13h10

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