Advertisement
Guest User

Untitled

a guest
Dec 9th, 2016
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.62 KB | None | 0 0
  1. void Object::calcNormals()
  2. {
  3.     for (unsigned int i = 0; i < Indices.size(); i += 3) {
  4.         unsigned int Index0 = Indices[i];
  5.         unsigned int Index1 = Indices[i + 1];
  6.         unsigned int Index2 = Indices[i + 2];
  7.         glm::vec3 v1 = Vertices[Index1].Pos - Vertices[Index0].Pos;
  8.         glm::vec3 v2 = Vertices[Index2].Pos - Vertices[Index0].Pos;
  9.         glm::vec3 Normal = glm::normalize(glm::cross(v2, v1));
  10.  
  11.         Vertices[Index0].Normal += Normal;
  12.         Vertices[Index1].Normal += Normal;
  13.         Vertices[Index2].Normal += Normal;
  14.     }
  15.  
  16.     for (unsigned int i = 0; i < Vertices.size(); i++) {
  17.         Vertices[i].Normal = glm::normalize(Vertices[i].Normal);
  18.     }
  19. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement