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