void Model::averageNormals(const std::vector& polyNet, const std::vector& vertices, std::vector& normals) { normals.resize(vertices.size()); for (int i = 0; i < polyNet.size(); i++) { Vertice temp1; Vertice temp2; Vertice result; temp1 = vertices[polyNet[i].index[0]] - vertices[polyNet[i].index[1]]; temp2 = vertices[polyNet[i].index[0]] - vertices[polyNet[i].index[2]]; //Wenn man es andersrum macht zeigen die normalen in die falsche richtung //damn - depends on the file result = temp2 * temp1; result.normalize(); //add the normal of the polygon to the polygon of the vertex and normalize it normals[polyNet[i].index[0]] = normals[polyNet[i].index[0]] + result; normals[polyNet[i].index[0]].normalize(); normals[polyNet[i].index[1]] = normals[polyNet[i].index[1]] + result; normals[polyNet[i].index[1]].normalize(); normals[polyNet[i].index[2]] = normals[polyNet[i].index[2]] + result; normals[polyNet[i].index[2]].normalize(); // move (result.coord, polyNet[i].normal); } }