   Normal of vectors in indexed vector list
  I have an indexed list of vectors, each vector has a normal for the lighting, but I''m at a loss as to how to calculate the normal of the 3D vectors, I''m no maths buff and I''m pretty sure the fact that the vectors are indexed will cause problems.  Can anyone enlighten me as to how its done? 
  Do you mean "vertex" instead of "vector"? ;  Yeah, vertex, sorry.  Been reading too many tutorials today, confusing my terminology. ;  1) Start by computing the normal for each polygon/face/triangle (i.e. the vector perpendicular to the face/plane and pointing in the outward direction).2) With indexed vertices, some polygons share vertices that other polygons use.3) The vertex normal is the *average* of the polygon normals for all the polygons that use that vertex.4) Consider the following mesh, 1-5 are vertices, A-C are polygons:   1-----4  / \ B / / A \ /2-----3  \ C /  \ /   5  1_norm = (A_norm + B_norm) / 22_norm = (A_norm + C_norm) / 23_norm = (A_norm + B_norm + C_norm) / 34_norm = B_norm5_norm = C_norm --Simon O''Connorex  -Creative AsylumProgrammer &Microsoft MVP;  Are you sure thats right?I tried that and it didnt work, I suppose I must''ve calculated it wrong(..?). ;  It''s worked ok for me for the past 14 or so years I''ve been doing 3D Make sure the result is normalised too or the lighting will end up lighter or darker than it should.Can you elaborate on "didn''t work"? and exactly what you''re doing. A screenshot maybe? ;  OK.  I''m drawing a cube and my vertices and indices are as follows:m_Vertices[0].positionVector = D3DXVECTOR3(-1.0f,-1.0f,-1.0f);m_Vertices[1].positionVector = D3DXVECTOR3(-1.0f, 1.0f,-1.0f);m_Vertices[2].positionVector = D3DXVECTOR3( 1.0f, 1.0f,-1.0f);m_Vertices[3].positionVector = D3DXVECTOR3( 1.0f,-1.0f,-1.0f);m_Vertices[4].positionVector = D3DXVECTOR3(-1.0f,-1.0f, 1.0f);m_Vertices[5].positionVector = D3DXVECTOR3( 1.0f,-1.0f, 1.0f);m_Vertices[6].positionVector = D3DXVECTOR3( 1.0f, 1.0f, 1.0f);m_Vertices[7].positionVector = D3DXVECTOR3(-1.0f, 1.0f, 1.0f);short iList [] = {0,1,2,2,3,0, 4,5,6,6,7,4, 0,3,5,5,4,0, 3,2,6,6,5,3, 2,1,7,7,6,2, 1,0,4,4,7,1};Could someone maybe give me the normals of the first couple of vertices to start me off?  I cant seem to get the whole average thing right.;quote:Original post by S1CA  1_norm = (A_norm + B_norm) / 22_norm = (A_norm + C_norm) / 23_norm = (A_norm + B_norm + C_norm) / 34_norm = B_norm5_norm = C_normSince we''re going to normalize the resulting normals anyway, isn''t the division by 2 useless? (It''s scaling by 0.5, and normalization cancels that)   Peace,Muhammad Haggag 