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
Partager