-void drawPyramids(float d, glm::vec3 lightPos) {
- glUseProgram(gradientProgId);
- glBindVertexArray(pyramidVao);
- setProjectionAndViewUniforms(gradientProgId);
-
- GLuint lightPosLoc = glGetUniformLocation(gradientProgId, "lightPos");
- glUniform3fv(lightPosLoc, 1, glm::value_ptr(lightPos));
-
- GLuint viewPosLoc = glGetUniformLocation(gradientProgId, "viewPos");
- glUniform3fv(viewPosLoc, 1, glm::value_ptr(camPos));
-
- GLuint modelId = glGetUniformLocation(gradientProgId, "model");
-
- for (int i = 0; i < 10; i++) {
-
- glm::mat4 model = glm::mat4(1.f);
-
- model = glm::translate(model, glm::vec3(sin(i * 30) * 10, 0, i * 2 - 10));
-
- if (doRotate) {
- model = glm::rotate(model, d * glm::radians(30.f), glm::vec3(0.f, 1.f, 0.f));
- model = glm::rotate(model, d * glm::radians(20.f), glm::vec3(1.f, 0.f, 0.f));
- }
-
- if (doScale)
- model = glm::scale(model, glm::vec3(1.f, 0.7f + 0.7f * (1 + sin(d + (i + 3))), 1.f));
-
- if (doTranslate)
- model = glm::translate(model, glm::vec3(sin(d + (i + 1)), cos(d + (i + -3)), sin(d + (i + 4))));
-
-
- glUniformMatrix4fv(modelId, 1, GL_FALSE, glm::value_ptr(model));
-
- glDrawArrays(GL_TRIANGLES, 0, 12);
- }
-
+std::vector<Light> lights = {
+ { glm::vec3(5, 2, -5), glm::vec3(1) },
+ { glm::vec3(0, 2, -5), glm::vec3(1) },
+ { glm::vec3(-5, 2, -5), glm::vec3(1) },