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 de calcul des normales par sommet


Sujet :

OpenGL

  1. #1
    Futur Membre du Club
    Inscrit en
    Janvier 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 9
    Points : 7
    Points
    7
    Par défaut problème de calcul des normales par sommet
    Salut !
    En plus d'avoir des valeurs fausses, mes normales par sommet sont les mêmes trois par trois !
    Je ne comprend pas trop ce qui ne va pas, pouvez vous m'aider ?
    voici l'erreur et le code :
    par vertex -0.000114751 -0.000293551 0.000751944
    par vertex -0.000114751 -0.000293551 0.000751944
    par vertex -0.000114751 -0.000293551 0.000751944
    par vertex -0.000104311 -0.000317802 0.000824538
    par vertex -0.000104311 -0.000317802 0.000824538
    par vertex -0.000104311 -0.000317802 0.000824538
    par vertex -3.83101e-005 -0.000358282 0.000720613
    par vertex -3.83101e-005 -0.000358282 0.000720613
    par vertex -3.83101e-005 -0.000358282 0.000720613
    par vertex -3.83033e-005 -0.000358281 0.000720613
    par vertex -3.83033e-005 -0.000358281 0.000720613
    par vertex -3.83033e-005 -0.000358281 0.000720613


    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    for (polyCounter = 0 ; polyCounter< myObjects[counterObj].nbVertices ; polyCounter++)
    	{
    		myObjects[counterObj].perVertexNormals[polyCounter].x=0 ;
    		myObjects[counterObj].perVertexNormals[polyCounter].y=0 ;
    		myObjects[counterObj].perVertexNormals[polyCounter].z=0 ;
    	}
     
    	int nIndice = 0 ;
    	int counter ;
    	do
    	{
    		for(counter=0 ; counter < myObjects[counterObj].nbPoly ; counter++)
    		{
    			for(i=0 ; i<3 ; i++)
    			{
    				if(myObjects[counterObj].myIndices[counter][i]==nIndice)
    				{
    					normalIndice = (counter*3)+i ;/*permet de trouver le sommet en partant d'un tableau à 2 dimensions vers un tableau a une dimension*/
     
    myObjects[counterObj].perVertexNormals[normalIndice].x += myObjects[counterObj].perFaceNormals[counter].x ;
     
    myObjects[counterObj].perVertexNormals[normalIndice].y += myObjects[counterObj].perFaceNormals[counter].y ;
     
    myObjects[counterObj].perVertexNormals[normalIndice].z += myObjects[counterObj].perFaceNormals[counter].z ;
    					//cout<<"counter "<<dec<<counter<<endl ;
    				}
    			}
     
    		} 
    		nIndice++ ;
    	}
    	while(nIndice != (myObjects[counterObj].nbVertices-1)) ;
    	//normaliser

  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 : 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
    et si tu regarde bien les valeurs, tes normales ne sont même pas normalisée...
    * 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
    Futur Membre du Club
    Inscrit en
    Janvier 2005
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    oui je sais (j'avais mis en commentaire en bas "normaliser"pour y penser)mais ce qui m'inquiète le plus c'est pourquoi ai-je trois fois les même ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Calculs de normals par sommets.
    Par Clad3 dans le forum OpenGL
    Réponses: 3
    Dernier message: 07/11/2007, 11h23
  2. calcul des statistiques par dbms_stat
    Par learn dans le forum Oracle
    Réponses: 5
    Dernier message: 27/02/2006, 21h16
  3. Réponses: 5
    Dernier message: 29/12/2005, 10h31
  4. Calcul de normal par vertice
    Par ed_ dans le forum OpenGL
    Réponses: 6
    Dernier message: 27/08/2005, 10h15
  5. Problème dans le calcul des normales moyennes,
    Par MaxPayne dans le forum OpenGL
    Réponses: 1
    Dernier message: 12/04/2005, 17h50

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