Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- m_planes[0] = vector<glm::vec4>(m_size * m_size);
- m_planes[1] = vector<glm::vec4>(m_size * m_size);
- for (unsigned i = 0; i < m_size; i++)
- {
- for (unsigned j = 0; j < m_size; j++)
- {
- unsigned int index = i * (m_size + 1) + j;
- glm::vec3 triangle1[] =
- {
- vertices[index],
- vertices[index + (m_size + 1)],
- vertices[index + 1]
- };
- glm::vec3 triangle2[] =
- {
- vertices[index + (m_size + 1) + 1],
- vertices[index + 1],
- vertices[index + (m_size + 1)]
- };
- glm::vec3 triangleNormal1 = glm::normalize(glm::cross(triangle1[1] - triangle1[0], triangle1[2] - triangle1[0]));
- glm::vec3 triangleNormal2 = glm::normalize(glm::cross(triangle2[1] - triangle2[0], triangle2[2] - triangle2[0]));
- m_planes[0][i * m_size + j] = glm::vec4(triangleNormal1, triangleNormal1.x * triangle1[2].x + triangleNormal1.y * triangle1[2].y + triangleNormal1.z * triangle1[2].z);
- m_planes[1][i * m_size + j] = glm::vec4(triangleNormal2, triangleNormal2.x * triangle1[2].x + triangleNormal2.y * triangle1[2].y + triangleNormal2.z * triangle1[2].z);
- }
- }
- vector<glm::vec3> normals = vector<glm::vec3>(Size);
- for (unsigned i = 0; i < m_size + 1; i++)
- {
- for (unsigned j = 0; j < m_size + 1; j++)
- {
- glm::vec3 normal = glm::vec3(0.0f);
- if (j != 0 && i != 0)
- normal += glm::vec3(m_planes[1][(i - 1) * m_size + (j - 1)]);
- if (i != 0 && j != m_size)
- normal += glm::vec3(m_planes[0][(i - 1) * m_size + j]) + glm::vec3(m_planes[1][(i - 1) * m_size + j]);
- if (i != m_size && j != m_size)
- normal += glm::vec3(m_planes[0][i * m_size + j]);
- if (i != m_size && j != 0)
- normal += glm::vec3(m_planes[0][i * m_size + (j - 1)]) + glm::vec3(m_planes[1][i * m_size + (j - 1)]);
- normal = glm::normalize(normal);
- normals[i * (m_size + 1) + j] = normal;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement