mirror of
https://github.com/JoeyDeVries/LearnOpenGL.git
synced 2026-01-30 20:13:22 +08:00
Rename all occurences of 'Lamp' in Lighting chapter to 'LightCube' (VAO and Shaders).
This commit is contained in:
@@ -78,7 +78,7 @@ int main()
|
|||||||
// build and compile our shader zprogram
|
// build and compile our shader zprogram
|
||||||
// ------------------------------------
|
// ------------------------------------
|
||||||
Shader lightingShader("1.colors.vs", "1.colors.fs");
|
Shader lightingShader("1.colors.vs", "1.colors.fs");
|
||||||
Shader lampShader("1.lamp.vs", "1.lamp.fs");
|
Shader lightCubeShader("1.light_cube.vs", "1.light_cube.fs");
|
||||||
|
|
||||||
// set up vertex data (and buffer(s)) and configure vertex attributes
|
// set up vertex data (and buffer(s)) and configure vertex attributes
|
||||||
// ------------------------------------------------------------------
|
// ------------------------------------------------------------------
|
||||||
@@ -140,9 +140,9 @@ int main()
|
|||||||
glEnableVertexAttribArray(0);
|
glEnableVertexAttribArray(0);
|
||||||
|
|
||||||
// second, configure the light's VAO (VBO stays the same; the vertices are the same for the light object which is also a 3D cube)
|
// second, configure the light's VAO (VBO stays the same; the vertices are the same for the light object which is also a 3D cube)
|
||||||
unsigned int lightVAO;
|
unsigned int lightCubeVAO;
|
||||||
glGenVertexArrays(1, &lightVAO);
|
glGenVertexArrays(1, &lightCubeVAO);
|
||||||
glBindVertexArray(lightVAO);
|
glBindVertexArray(lightCubeVAO);
|
||||||
|
|
||||||
// we only need to bind to the VBO (to link it with glVertexAttribPointer), no need to fill it; the VBO's data already contains all we need (it's already bound, but we do it again for educational purposes)
|
// we only need to bind to the VBO (to link it with glVertexAttribPointer), no need to fill it; the VBO's data already contains all we need (it's already bound, but we do it again for educational purposes)
|
||||||
glBindBuffer(GL_ARRAY_BUFFER, VBO);
|
glBindBuffer(GL_ARRAY_BUFFER, VBO);
|
||||||
@@ -191,15 +191,15 @@ int main()
|
|||||||
|
|
||||||
|
|
||||||
// also draw the lamp object
|
// also draw the lamp object
|
||||||
lampShader.use();
|
lightCubeShader.use();
|
||||||
lampShader.setMat4("projection", projection);
|
lightCubeShader.setMat4("projection", projection);
|
||||||
lampShader.setMat4("view", view);
|
lightCubeShader.setMat4("view", view);
|
||||||
model = glm::mat4(1.0f);
|
model = glm::mat4(1.0f);
|
||||||
model = glm::translate(model, lightPos);
|
model = glm::translate(model, lightPos);
|
||||||
model = glm::scale(model, glm::vec3(0.2f)); // a smaller cube
|
model = glm::scale(model, glm::vec3(0.2f)); // a smaller cube
|
||||||
lampShader.setMat4("model", model);
|
lightCubeShader.setMat4("model", model);
|
||||||
|
|
||||||
glBindVertexArray(lightVAO);
|
glBindVertexArray(lightCubeVAO);
|
||||||
glDrawArrays(GL_TRIANGLES, 0, 36);
|
glDrawArrays(GL_TRIANGLES, 0, 36);
|
||||||
|
|
||||||
|
|
||||||
@@ -212,7 +212,7 @@ int main()
|
|||||||
// optional: de-allocate all resources once they've outlived their purpose:
|
// optional: de-allocate all resources once they've outlived their purpose:
|
||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
glDeleteVertexArrays(1, &cubeVAO);
|
glDeleteVertexArrays(1, &cubeVAO);
|
||||||
glDeleteVertexArrays(1, &lightVAO);
|
glDeleteVertexArrays(1, &lightCubeVAO);
|
||||||
glDeleteBuffers(1, &VBO);
|
glDeleteBuffers(1, &VBO);
|
||||||
|
|
||||||
// glfw: terminate, clearing all previously allocated GLFW resources.
|
// glfw: terminate, clearing all previously allocated GLFW resources.
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ int main()
|
|||||||
// build and compile our shader zprogram
|
// build and compile our shader zprogram
|
||||||
// ------------------------------------
|
// ------------------------------------
|
||||||
Shader lightingShader("2.1.basic_lighting.vs", "2.1.basic_lighting.fs");
|
Shader lightingShader("2.1.basic_lighting.vs", "2.1.basic_lighting.fs");
|
||||||
Shader lampShader("2.1.lamp.vs", "2.1.lamp.fs");
|
Shader lightCubeShader("2.1.light_cube.vs", "2.1.light_cube.fs");
|
||||||
|
|
||||||
// set up vertex data (and buffer(s)) and configure vertex attributes
|
// set up vertex data (and buffer(s)) and configure vertex attributes
|
||||||
// ------------------------------------------------------------------
|
// ------------------------------------------------------------------
|
||||||
@@ -144,9 +144,9 @@ int main()
|
|||||||
|
|
||||||
|
|
||||||
// second, configure the light's VAO (VBO stays the same; the vertices are the same for the light object which is also a 3D cube)
|
// second, configure the light's VAO (VBO stays the same; the vertices are the same for the light object which is also a 3D cube)
|
||||||
unsigned int lightVAO;
|
unsigned int lightCubeVAO;
|
||||||
glGenVertexArrays(1, &lightVAO);
|
glGenVertexArrays(1, &lightCubeVAO);
|
||||||
glBindVertexArray(lightVAO);
|
glBindVertexArray(lightCubeVAO);
|
||||||
|
|
||||||
glBindBuffer(GL_ARRAY_BUFFER, VBO);
|
glBindBuffer(GL_ARRAY_BUFFER, VBO);
|
||||||
// note that we update the lamp's position attribute's stride to reflect the updated buffer data
|
// note that we update the lamp's position attribute's stride to reflect the updated buffer data
|
||||||
@@ -195,15 +195,15 @@ int main()
|
|||||||
|
|
||||||
|
|
||||||
// also draw the lamp object
|
// also draw the lamp object
|
||||||
lampShader.use();
|
lightCubeShader.use();
|
||||||
lampShader.setMat4("projection", projection);
|
lightCubeShader.setMat4("projection", projection);
|
||||||
lampShader.setMat4("view", view);
|
lightCubeShader.setMat4("view", view);
|
||||||
model = glm::mat4(1.0f);
|
model = glm::mat4(1.0f);
|
||||||
model = glm::translate(model, lightPos);
|
model = glm::translate(model, lightPos);
|
||||||
model = glm::scale(model, glm::vec3(0.2f)); // a smaller cube
|
model = glm::scale(model, glm::vec3(0.2f)); // a smaller cube
|
||||||
lampShader.setMat4("model", model);
|
lightCubeShader.setMat4("model", model);
|
||||||
|
|
||||||
glBindVertexArray(lightVAO);
|
glBindVertexArray(lightCubeVAO);
|
||||||
glDrawArrays(GL_TRIANGLES, 0, 36);
|
glDrawArrays(GL_TRIANGLES, 0, 36);
|
||||||
|
|
||||||
|
|
||||||
@@ -216,7 +216,7 @@ int main()
|
|||||||
// optional: de-allocate all resources once they've outlived their purpose:
|
// optional: de-allocate all resources once they've outlived their purpose:
|
||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
glDeleteVertexArrays(1, &cubeVAO);
|
glDeleteVertexArrays(1, &cubeVAO);
|
||||||
glDeleteVertexArrays(1, &lightVAO);
|
glDeleteVertexArrays(1, &lightCubeVAO);
|
||||||
glDeleteBuffers(1, &VBO);
|
glDeleteBuffers(1, &VBO);
|
||||||
|
|
||||||
// glfw: terminate, clearing all previously allocated GLFW resources.
|
// glfw: terminate, clearing all previously allocated GLFW resources.
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ int main()
|
|||||||
// build and compile our shader zprogram
|
// build and compile our shader zprogram
|
||||||
// ------------------------------------
|
// ------------------------------------
|
||||||
Shader lightingShader("2.2.basic_lighting.vs", "2.2.basic_lighting.fs");
|
Shader lightingShader("2.2.basic_lighting.vs", "2.2.basic_lighting.fs");
|
||||||
Shader lampShader("2.2.lamp.vs", "2.2.lamp.fs");
|
Shader lightCubeShader("2.2.light_cube.vs", "2.2.light_cube.fs");
|
||||||
|
|
||||||
// set up vertex data (and buffer(s)) and configure vertex attributes
|
// set up vertex data (and buffer(s)) and configure vertex attributes
|
||||||
// ------------------------------------------------------------------
|
// ------------------------------------------------------------------
|
||||||
@@ -144,9 +144,9 @@ int main()
|
|||||||
|
|
||||||
|
|
||||||
// second, configure the light's VAO (VBO stays the same; the vertices are the same for the light object which is also a 3D cube)
|
// second, configure the light's VAO (VBO stays the same; the vertices are the same for the light object which is also a 3D cube)
|
||||||
unsigned int lightVAO;
|
unsigned int lightCubeVAO;
|
||||||
glGenVertexArrays(1, &lightVAO);
|
glGenVertexArrays(1, &lightCubeVAO);
|
||||||
glBindVertexArray(lightVAO);
|
glBindVertexArray(lightCubeVAO);
|
||||||
|
|
||||||
glBindBuffer(GL_ARRAY_BUFFER, VBO);
|
glBindBuffer(GL_ARRAY_BUFFER, VBO);
|
||||||
// note that we update the lamp's position attribute's stride to reflect the updated buffer data
|
// note that we update the lamp's position attribute's stride to reflect the updated buffer data
|
||||||
@@ -196,15 +196,15 @@ int main()
|
|||||||
|
|
||||||
|
|
||||||
// also draw the lamp object
|
// also draw the lamp object
|
||||||
lampShader.use();
|
lightCubeShader.use();
|
||||||
lampShader.setMat4("projection", projection);
|
lightCubeShader.setMat4("projection", projection);
|
||||||
lampShader.setMat4("view", view);
|
lightCubeShader.setMat4("view", view);
|
||||||
model = glm::mat4(1.0f);
|
model = glm::mat4(1.0f);
|
||||||
model = glm::translate(model, lightPos);
|
model = glm::translate(model, lightPos);
|
||||||
model = glm::scale(model, glm::vec3(0.2f)); // a smaller cube
|
model = glm::scale(model, glm::vec3(0.2f)); // a smaller cube
|
||||||
lampShader.setMat4("model", model);
|
lightCubeShader.setMat4("model", model);
|
||||||
|
|
||||||
glBindVertexArray(lightVAO);
|
glBindVertexArray(lightCubeVAO);
|
||||||
glDrawArrays(GL_TRIANGLES, 0, 36);
|
glDrawArrays(GL_TRIANGLES, 0, 36);
|
||||||
|
|
||||||
|
|
||||||
@@ -217,7 +217,7 @@ int main()
|
|||||||
// optional: de-allocate all resources once they've outlived their purpose:
|
// optional: de-allocate all resources once they've outlived their purpose:
|
||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
glDeleteVertexArrays(1, &cubeVAO);
|
glDeleteVertexArrays(1, &cubeVAO);
|
||||||
glDeleteVertexArrays(1, &lightVAO);
|
glDeleteVertexArrays(1, &lightCubeVAO);
|
||||||
glDeleteBuffers(1, &VBO);
|
glDeleteBuffers(1, &VBO);
|
||||||
|
|
||||||
// glfw: terminate, clearing all previously allocated GLFW resources.
|
// glfw: terminate, clearing all previously allocated GLFW resources.
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ int main()
|
|||||||
// build and compile our shader zprogram
|
// build and compile our shader zprogram
|
||||||
// ------------------------------------
|
// ------------------------------------
|
||||||
Shader lightingShader("3.1.materials.vs", "3.1.materials.fs");
|
Shader lightingShader("3.1.materials.vs", "3.1.materials.fs");
|
||||||
Shader lampShader("3.1.lamp.vs", "3.1.lamp.fs");
|
Shader lightCubeShader("3.1.light_cube.vs", "3.1.light_cube.fs");
|
||||||
|
|
||||||
// set up vertex data (and buffer(s)) and configure vertex attributes
|
// set up vertex data (and buffer(s)) and configure vertex attributes
|
||||||
// ------------------------------------------------------------------
|
// ------------------------------------------------------------------
|
||||||
@@ -144,9 +144,9 @@ int main()
|
|||||||
|
|
||||||
|
|
||||||
// second, configure the light's VAO (VBO stays the same; the vertices are the same for the light object which is also a 3D cube)
|
// second, configure the light's VAO (VBO stays the same; the vertices are the same for the light object which is also a 3D cube)
|
||||||
unsigned int lightVAO;
|
unsigned int lightCubeVAO;
|
||||||
glGenVertexArrays(1, &lightVAO);
|
glGenVertexArrays(1, &lightCubeVAO);
|
||||||
glBindVertexArray(lightVAO);
|
glBindVertexArray(lightCubeVAO);
|
||||||
|
|
||||||
glBindBuffer(GL_ARRAY_BUFFER, VBO);
|
glBindBuffer(GL_ARRAY_BUFFER, VBO);
|
||||||
// note that we update the lamp's position attribute's stride to reflect the updated buffer data
|
// note that we update the lamp's position attribute's stride to reflect the updated buffer data
|
||||||
@@ -211,15 +211,15 @@ int main()
|
|||||||
|
|
||||||
|
|
||||||
// also draw the lamp object
|
// also draw the lamp object
|
||||||
lampShader.use();
|
lightCubeShader.use();
|
||||||
lampShader.setMat4("projection", projection);
|
lightCubeShader.setMat4("projection", projection);
|
||||||
lampShader.setMat4("view", view);
|
lightCubeShader.setMat4("view", view);
|
||||||
model = glm::mat4(1.0f);
|
model = glm::mat4(1.0f);
|
||||||
model = glm::translate(model, lightPos);
|
model = glm::translate(model, lightPos);
|
||||||
model = glm::scale(model, glm::vec3(0.2f)); // a smaller cube
|
model = glm::scale(model, glm::vec3(0.2f)); // a smaller cube
|
||||||
lampShader.setMat4("model", model);
|
lightCubeShader.setMat4("model", model);
|
||||||
|
|
||||||
glBindVertexArray(lightVAO);
|
glBindVertexArray(lightCubeVAO);
|
||||||
glDrawArrays(GL_TRIANGLES, 0, 36);
|
glDrawArrays(GL_TRIANGLES, 0, 36);
|
||||||
|
|
||||||
|
|
||||||
@@ -232,7 +232,7 @@ int main()
|
|||||||
// optional: de-allocate all resources once they've outlived their purpose:
|
// optional: de-allocate all resources once they've outlived their purpose:
|
||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
glDeleteVertexArrays(1, &cubeVAO);
|
glDeleteVertexArrays(1, &cubeVAO);
|
||||||
glDeleteVertexArrays(1, &lightVAO);
|
glDeleteVertexArrays(1, &lightCubeVAO);
|
||||||
glDeleteBuffers(1, &VBO);
|
glDeleteBuffers(1, &VBO);
|
||||||
|
|
||||||
// glfw: terminate, clearing all previously allocated GLFW resources.
|
// glfw: terminate, clearing all previously allocated GLFW resources.
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ int main()
|
|||||||
// build and compile our shader zprogram
|
// build and compile our shader zprogram
|
||||||
// ------------------------------------
|
// ------------------------------------
|
||||||
Shader lightingShader("3.2.materials.vs", "3.2.materials.fs");
|
Shader lightingShader("3.2.materials.vs", "3.2.materials.fs");
|
||||||
Shader lampShader("3.2.lamp.vs", "3.2.lamp.fs");
|
Shader lightCubeShader("3.2.light_cube.vs", "3.2.light_cube.fs");
|
||||||
|
|
||||||
// set up vertex data (and buffer(s)) and configure vertex attributes
|
// set up vertex data (and buffer(s)) and configure vertex attributes
|
||||||
// ------------------------------------------------------------------
|
// ------------------------------------------------------------------
|
||||||
@@ -144,9 +144,9 @@ int main()
|
|||||||
|
|
||||||
|
|
||||||
// second, configure the light's VAO (VBO stays the same; the vertices are the same for the light object which is also a 3D cube)
|
// second, configure the light's VAO (VBO stays the same; the vertices are the same for the light object which is also a 3D cube)
|
||||||
unsigned int lightVAO;
|
unsigned int lightCubeVAO;
|
||||||
glGenVertexArrays(1, &lightVAO);
|
glGenVertexArrays(1, &lightCubeVAO);
|
||||||
glBindVertexArray(lightVAO);
|
glBindVertexArray(lightCubeVAO);
|
||||||
|
|
||||||
glBindBuffer(GL_ARRAY_BUFFER, VBO);
|
glBindBuffer(GL_ARRAY_BUFFER, VBO);
|
||||||
// note that we update the lamp's position attribute's stride to reflect the updated buffer data
|
// note that we update the lamp's position attribute's stride to reflect the updated buffer data
|
||||||
@@ -205,15 +205,15 @@ int main()
|
|||||||
|
|
||||||
|
|
||||||
// also draw the lamp object
|
// also draw the lamp object
|
||||||
lampShader.use();
|
lightCubeShader.use();
|
||||||
lampShader.setMat4("projection", projection);
|
lightCubeShader.setMat4("projection", projection);
|
||||||
lampShader.setMat4("view", view);
|
lightCubeShader.setMat4("view", view);
|
||||||
model = glm::mat4(1.0f);
|
model = glm::mat4(1.0f);
|
||||||
model = glm::translate(model, lightPos);
|
model = glm::translate(model, lightPos);
|
||||||
model = glm::scale(model, glm::vec3(0.2f)); // a smaller cube
|
model = glm::scale(model, glm::vec3(0.2f)); // a smaller cube
|
||||||
lampShader.setMat4("model", model);
|
lightCubeShader.setMat4("model", model);
|
||||||
|
|
||||||
glBindVertexArray(lightVAO);
|
glBindVertexArray(lightCubeVAO);
|
||||||
glDrawArrays(GL_TRIANGLES, 0, 36);
|
glDrawArrays(GL_TRIANGLES, 0, 36);
|
||||||
|
|
||||||
|
|
||||||
@@ -226,7 +226,7 @@ int main()
|
|||||||
// optional: de-allocate all resources once they've outlived their purpose:
|
// optional: de-allocate all resources once they've outlived their purpose:
|
||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
glDeleteVertexArrays(1, &cubeVAO);
|
glDeleteVertexArrays(1, &cubeVAO);
|
||||||
glDeleteVertexArrays(1, &lightVAO);
|
glDeleteVertexArrays(1, &lightCubeVAO);
|
||||||
glDeleteBuffers(1, &VBO);
|
glDeleteBuffers(1, &VBO);
|
||||||
|
|
||||||
// glfw: terminate, clearing all previously allocated GLFW resources.
|
// glfw: terminate, clearing all previously allocated GLFW resources.
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ int main()
|
|||||||
// build and compile our shader zprogram
|
// build and compile our shader zprogram
|
||||||
// ------------------------------------
|
// ------------------------------------
|
||||||
Shader lightingShader("4.1.lighting_maps.vs", "4.1.lighting_maps.fs");
|
Shader lightingShader("4.1.lighting_maps.vs", "4.1.lighting_maps.fs");
|
||||||
Shader lampShader("4.1.lamp.vs", "4.1.lamp.fs");
|
Shader lightCubeShader("4.1.light_cube.vs", "4.1.light_cube.fs");
|
||||||
|
|
||||||
// set up vertex data (and buffer(s)) and configure vertex attributes
|
// set up vertex data (and buffer(s)) and configure vertex attributes
|
||||||
// ------------------------------------------------------------------
|
// ------------------------------------------------------------------
|
||||||
@@ -145,9 +145,9 @@ int main()
|
|||||||
glEnableVertexAttribArray(2);
|
glEnableVertexAttribArray(2);
|
||||||
|
|
||||||
// second, configure the light's VAO (VBO stays the same; the vertices are the same for the light object which is also a 3D cube)
|
// second, configure the light's VAO (VBO stays the same; the vertices are the same for the light object which is also a 3D cube)
|
||||||
unsigned int lightVAO;
|
unsigned int lightCubeVAO;
|
||||||
glGenVertexArrays(1, &lightVAO);
|
glGenVertexArrays(1, &lightCubeVAO);
|
||||||
glBindVertexArray(lightVAO);
|
glBindVertexArray(lightCubeVAO);
|
||||||
|
|
||||||
glBindBuffer(GL_ARRAY_BUFFER, VBO);
|
glBindBuffer(GL_ARRAY_BUFFER, VBO);
|
||||||
// note that we update the lamp's position attribute's stride to reflect the updated buffer data
|
// note that we update the lamp's position attribute's stride to reflect the updated buffer data
|
||||||
@@ -217,15 +217,15 @@ int main()
|
|||||||
|
|
||||||
|
|
||||||
// also draw the lamp object
|
// also draw the lamp object
|
||||||
lampShader.use();
|
lightCubeShader.use();
|
||||||
lampShader.setMat4("projection", projection);
|
lightCubeShader.setMat4("projection", projection);
|
||||||
lampShader.setMat4("view", view);
|
lightCubeShader.setMat4("view", view);
|
||||||
model = glm::mat4(1.0f);
|
model = glm::mat4(1.0f);
|
||||||
model = glm::translate(model, lightPos);
|
model = glm::translate(model, lightPos);
|
||||||
model = glm::scale(model, glm::vec3(0.2f)); // a smaller cube
|
model = glm::scale(model, glm::vec3(0.2f)); // a smaller cube
|
||||||
lampShader.setMat4("model", model);
|
lightCubeShader.setMat4("model", model);
|
||||||
|
|
||||||
glBindVertexArray(lightVAO);
|
glBindVertexArray(lightCubeVAO);
|
||||||
glDrawArrays(GL_TRIANGLES, 0, 36);
|
glDrawArrays(GL_TRIANGLES, 0, 36);
|
||||||
|
|
||||||
|
|
||||||
@@ -238,7 +238,7 @@ int main()
|
|||||||
// optional: de-allocate all resources once they've outlived their purpose:
|
// optional: de-allocate all resources once they've outlived their purpose:
|
||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
glDeleteVertexArrays(1, &cubeVAO);
|
glDeleteVertexArrays(1, &cubeVAO);
|
||||||
glDeleteVertexArrays(1, &lightVAO);
|
glDeleteVertexArrays(1, &lightCubeVAO);
|
||||||
glDeleteBuffers(1, &VBO);
|
glDeleteBuffers(1, &VBO);
|
||||||
|
|
||||||
// glfw: terminate, clearing all previously allocated GLFW resources.
|
// glfw: terminate, clearing all previously allocated GLFW resources.
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ int main()
|
|||||||
// build and compile our shader zprogram
|
// build and compile our shader zprogram
|
||||||
// ------------------------------------
|
// ------------------------------------
|
||||||
Shader lightingShader("4.2.lighting_maps.vs", "4.2.lighting_maps.fs");
|
Shader lightingShader("4.2.lighting_maps.vs", "4.2.lighting_maps.fs");
|
||||||
Shader lampShader("4.2.lamp.vs", "4.2.lamp.fs");
|
Shader lightCubeShader("4.2.light_cube.vs", "4.2.light_cube.fs");
|
||||||
|
|
||||||
// set up vertex data (and buffer(s)) and configure vertex attributes
|
// set up vertex data (and buffer(s)) and configure vertex attributes
|
||||||
// ------------------------------------------------------------------
|
// ------------------------------------------------------------------
|
||||||
@@ -145,9 +145,9 @@ int main()
|
|||||||
glEnableVertexAttribArray(2);
|
glEnableVertexAttribArray(2);
|
||||||
|
|
||||||
// second, configure the light's VAO (VBO stays the same; the vertices are the same for the light object which is also a 3D cube)
|
// second, configure the light's VAO (VBO stays the same; the vertices are the same for the light object which is also a 3D cube)
|
||||||
unsigned int lightVAO;
|
unsigned int lightCubeVAO;
|
||||||
glGenVertexArrays(1, &lightVAO);
|
glGenVertexArrays(1, &lightCubeVAO);
|
||||||
glBindVertexArray(lightVAO);
|
glBindVertexArray(lightCubeVAO);
|
||||||
|
|
||||||
glBindBuffer(GL_ARRAY_BUFFER, VBO);
|
glBindBuffer(GL_ARRAY_BUFFER, VBO);
|
||||||
// note that we update the lamp's position attribute's stride to reflect the updated buffer data
|
// note that we update the lamp's position attribute's stride to reflect the updated buffer data
|
||||||
@@ -221,15 +221,15 @@ int main()
|
|||||||
|
|
||||||
|
|
||||||
// also draw the lamp object
|
// also draw the lamp object
|
||||||
lampShader.use();
|
lightCubeShader.use();
|
||||||
lampShader.setMat4("projection", projection);
|
lightCubeShader.setMat4("projection", projection);
|
||||||
lampShader.setMat4("view", view);
|
lightCubeShader.setMat4("view", view);
|
||||||
model = glm::mat4(1.0f);
|
model = glm::mat4(1.0f);
|
||||||
model = glm::translate(model, lightPos);
|
model = glm::translate(model, lightPos);
|
||||||
model = glm::scale(model, glm::vec3(0.2f)); // a smaller cube
|
model = glm::scale(model, glm::vec3(0.2f)); // a smaller cube
|
||||||
lampShader.setMat4("model", model);
|
lightCubeShader.setMat4("model", model);
|
||||||
|
|
||||||
glBindVertexArray(lightVAO);
|
glBindVertexArray(lightCubeVAO);
|
||||||
glDrawArrays(GL_TRIANGLES, 0, 36);
|
glDrawArrays(GL_TRIANGLES, 0, 36);
|
||||||
|
|
||||||
|
|
||||||
@@ -242,7 +242,7 @@ int main()
|
|||||||
// optional: de-allocate all resources once they've outlived their purpose:
|
// optional: de-allocate all resources once they've outlived their purpose:
|
||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
glDeleteVertexArrays(1, &cubeVAO);
|
glDeleteVertexArrays(1, &cubeVAO);
|
||||||
glDeleteVertexArrays(1, &lightVAO);
|
glDeleteVertexArrays(1, &lightCubeVAO);
|
||||||
glDeleteBuffers(1, &VBO);
|
glDeleteBuffers(1, &VBO);
|
||||||
|
|
||||||
// glfw: terminate, clearing all previously allocated GLFW resources.
|
// glfw: terminate, clearing all previously allocated GLFW resources.
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ int main()
|
|||||||
// build and compile our shader zprogram
|
// build and compile our shader zprogram
|
||||||
// ------------------------------------
|
// ------------------------------------
|
||||||
Shader lightingShader("4.4.lighting_maps.vs", "4.4.lighting_maps.fs");
|
Shader lightingShader("4.4.lighting_maps.vs", "4.4.lighting_maps.fs");
|
||||||
Shader lampShader("4.4.lamp.vs", "4.4.lamp.fs");
|
Shader lightCubeShader("4.4.light_cube.vs", "4.4.light_cube.fs");
|
||||||
|
|
||||||
// set up vertex data (and buffer(s)) and configure vertex attributes
|
// set up vertex data (and buffer(s)) and configure vertex attributes
|
||||||
// ------------------------------------------------------------------
|
// ------------------------------------------------------------------
|
||||||
@@ -145,9 +145,9 @@ int main()
|
|||||||
glEnableVertexAttribArray(2);
|
glEnableVertexAttribArray(2);
|
||||||
|
|
||||||
// second, configure the light's VAO (VBO stays the same; the vertices are the same for the light object which is also a 3D cube)
|
// second, configure the light's VAO (VBO stays the same; the vertices are the same for the light object which is also a 3D cube)
|
||||||
unsigned int lightVAO;
|
unsigned int lightCubeVAO;
|
||||||
glGenVertexArrays(1, &lightVAO);
|
glGenVertexArrays(1, &lightCubeVAO);
|
||||||
glBindVertexArray(lightVAO);
|
glBindVertexArray(lightCubeVAO);
|
||||||
|
|
||||||
glBindBuffer(GL_ARRAY_BUFFER, VBO);
|
glBindBuffer(GL_ARRAY_BUFFER, VBO);
|
||||||
// note that we update the lamp's position attribute's stride to reflect the updated buffer data
|
// note that we update the lamp's position attribute's stride to reflect the updated buffer data
|
||||||
@@ -226,15 +226,15 @@ int main()
|
|||||||
|
|
||||||
|
|
||||||
// also draw the lamp object
|
// also draw the lamp object
|
||||||
lampShader.use();
|
lightCubeShader.use();
|
||||||
lampShader.setMat4("projection", projection);
|
lightCubeShader.setMat4("projection", projection);
|
||||||
lampShader.setMat4("view", view);
|
lightCubeShader.setMat4("view", view);
|
||||||
model = glm::mat4(1.0f);
|
model = glm::mat4(1.0f);
|
||||||
model = glm::translate(model, lightPos);
|
model = glm::translate(model, lightPos);
|
||||||
model = glm::scale(model, glm::vec3(0.2f)); // a smaller cube
|
model = glm::scale(model, glm::vec3(0.2f)); // a smaller cube
|
||||||
lampShader.setMat4("model", model);
|
lightCubeShader.setMat4("model", model);
|
||||||
|
|
||||||
glBindVertexArray(lightVAO);
|
glBindVertexArray(lightCubeVAO);
|
||||||
glDrawArrays(GL_TRIANGLES, 0, 36);
|
glDrawArrays(GL_TRIANGLES, 0, 36);
|
||||||
|
|
||||||
|
|
||||||
@@ -247,7 +247,7 @@ int main()
|
|||||||
// optional: de-allocate all resources once they've outlived their purpose:
|
// optional: de-allocate all resources once they've outlived their purpose:
|
||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
glDeleteVertexArrays(1, &cubeVAO);
|
glDeleteVertexArrays(1, &cubeVAO);
|
||||||
glDeleteVertexArrays(1, &lightVAO);
|
glDeleteVertexArrays(1, &lightCubeVAO);
|
||||||
glDeleteBuffers(1, &VBO);
|
glDeleteBuffers(1, &VBO);
|
||||||
|
|
||||||
// glfw: terminate, clearing all previously allocated GLFW resources.
|
// glfw: terminate, clearing all previously allocated GLFW resources.
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ int main()
|
|||||||
// build and compile shaders
|
// build and compile shaders
|
||||||
// -------------------------
|
// -------------------------
|
||||||
Shader lightingShader("5.1.light_casters.vs", "5.1.light_casters.fs");
|
Shader lightingShader("5.1.light_casters.vs", "5.1.light_casters.fs");
|
||||||
Shader lampShader("5.1.lamp.vs", "5.1.lamp.fs");
|
Shader lightCubeShader("5.1.light_cube.vs", "5.1.light_cube.fs");
|
||||||
|
|
||||||
// set up vertex data (and buffer(s)) and configure vertex attributes
|
// set up vertex data (and buffer(s)) and configure vertex attributes
|
||||||
// ------------------------------------------------------------------
|
// ------------------------------------------------------------------
|
||||||
@@ -155,9 +155,9 @@ int main()
|
|||||||
glEnableVertexAttribArray(2);
|
glEnableVertexAttribArray(2);
|
||||||
|
|
||||||
// second, configure the light's VAO (VBO stays the same; the vertices are the same for the light object which is also a 3D cube)
|
// second, configure the light's VAO (VBO stays the same; the vertices are the same for the light object which is also a 3D cube)
|
||||||
unsigned int lightVAO;
|
unsigned int lightCubeVAO;
|
||||||
glGenVertexArrays(1, &lightVAO);
|
glGenVertexArrays(1, &lightCubeVAO);
|
||||||
glBindVertexArray(lightVAO);
|
glBindVertexArray(lightCubeVAO);
|
||||||
|
|
||||||
glBindBuffer(GL_ARRAY_BUFFER, VBO);
|
glBindBuffer(GL_ARRAY_BUFFER, VBO);
|
||||||
// note that we update the lamp's position attribute's stride to reflect the updated buffer data
|
// note that we update the lamp's position attribute's stride to reflect the updated buffer data
|
||||||
@@ -245,15 +245,15 @@ int main()
|
|||||||
|
|
||||||
|
|
||||||
// a lamp object is weird when we only have a directional light, don't render the light object
|
// a lamp object is weird when we only have a directional light, don't render the light object
|
||||||
// lampShader.use();
|
// lightCubeShader.use();
|
||||||
// lampShader.setMat4("projection", projection);
|
// lightCubeShader.setMat4("projection", projection);
|
||||||
// lampShader.setMat4("view", view);
|
// lightCubeShader.setMat4("view", view);
|
||||||
// model = glm::mat4(1.0f);
|
// model = glm::mat4(1.0f);
|
||||||
// model = glm::translate(model, lightPos);
|
// model = glm::translate(model, lightPos);
|
||||||
// model = glm::scale(model, glm::vec3(0.2f)); // a smaller cube
|
// model = glm::scale(model, glm::vec3(0.2f)); // a smaller cube
|
||||||
// lampShader.setMat4("model", model);
|
// lightCubeShader.setMat4("model", model);
|
||||||
|
|
||||||
// glBindVertexArray(lightVAO);
|
// glBindVertexArray(lightCubeVAO);
|
||||||
// glDrawArrays(GL_TRIANGLES, 0, 36);
|
// glDrawArrays(GL_TRIANGLES, 0, 36);
|
||||||
|
|
||||||
|
|
||||||
@@ -266,7 +266,7 @@ int main()
|
|||||||
// optional: de-allocate all resources once they've outlived their purpose:
|
// optional: de-allocate all resources once they've outlived their purpose:
|
||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
glDeleteVertexArrays(1, &cubeVAO);
|
glDeleteVertexArrays(1, &cubeVAO);
|
||||||
glDeleteVertexArrays(1, &lightVAO);
|
glDeleteVertexArrays(1, &lightCubeVAO);
|
||||||
glDeleteBuffers(1, &VBO);
|
glDeleteBuffers(1, &VBO);
|
||||||
|
|
||||||
// glfw: terminate, clearing all previously allocated GLFW resources.
|
// glfw: terminate, clearing all previously allocated GLFW resources.
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ int main()
|
|||||||
// build and compile our shader zprogram
|
// build and compile our shader zprogram
|
||||||
// ------------------------------------
|
// ------------------------------------
|
||||||
Shader lightingShader("5.2.light_casters.vs", "5.2.light_casters.fs");
|
Shader lightingShader("5.2.light_casters.vs", "5.2.light_casters.fs");
|
||||||
Shader lampShader("5.2.lamp.vs", "5.2.lamp.fs");
|
Shader lightCubeShader("5.2.light_cube.vs", "5.2.light_cube.fs");
|
||||||
|
|
||||||
// set up vertex data (and buffer(s)) and configure vertex attributes
|
// set up vertex data (and buffer(s)) and configure vertex attributes
|
||||||
// ------------------------------------------------------------------
|
// ------------------------------------------------------------------
|
||||||
@@ -158,9 +158,9 @@ int main()
|
|||||||
glEnableVertexAttribArray(2);
|
glEnableVertexAttribArray(2);
|
||||||
|
|
||||||
// second, configure the light's VAO (VBO stays the same; the vertices are the same for the light object which is also a 3D cube)
|
// second, configure the light's VAO (VBO stays the same; the vertices are the same for the light object which is also a 3D cube)
|
||||||
unsigned int lightVAO;
|
unsigned int lightCubeVAO;
|
||||||
glGenVertexArrays(1, &lightVAO);
|
glGenVertexArrays(1, &lightCubeVAO);
|
||||||
glBindVertexArray(lightVAO);
|
glBindVertexArray(lightCubeVAO);
|
||||||
|
|
||||||
glBindBuffer(GL_ARRAY_BUFFER, VBO);
|
glBindBuffer(GL_ARRAY_BUFFER, VBO);
|
||||||
// note that we update the lamp's position attribute's stride to reflect the updated buffer data
|
// note that we update the lamp's position attribute's stride to reflect the updated buffer data
|
||||||
@@ -247,15 +247,15 @@ int main()
|
|||||||
|
|
||||||
|
|
||||||
// also draw the lamp object
|
// also draw the lamp object
|
||||||
lampShader.use();
|
lightCubeShader.use();
|
||||||
lampShader.setMat4("projection", projection);
|
lightCubeShader.setMat4("projection", projection);
|
||||||
lampShader.setMat4("view", view);
|
lightCubeShader.setMat4("view", view);
|
||||||
model = glm::mat4(1.0f);
|
model = glm::mat4(1.0f);
|
||||||
model = glm::translate(model, lightPos);
|
model = glm::translate(model, lightPos);
|
||||||
model = glm::scale(model, glm::vec3(0.2f)); // a smaller cube
|
model = glm::scale(model, glm::vec3(0.2f)); // a smaller cube
|
||||||
lampShader.setMat4("model", model);
|
lightCubeShader.setMat4("model", model);
|
||||||
|
|
||||||
glBindVertexArray(lightVAO);
|
glBindVertexArray(lightCubeVAO);
|
||||||
glDrawArrays(GL_TRIANGLES, 0, 36);
|
glDrawArrays(GL_TRIANGLES, 0, 36);
|
||||||
|
|
||||||
|
|
||||||
@@ -268,7 +268,7 @@ int main()
|
|||||||
// optional: de-allocate all resources once they've outlived their purpose:
|
// optional: de-allocate all resources once they've outlived their purpose:
|
||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
glDeleteVertexArrays(1, &cubeVAO);
|
glDeleteVertexArrays(1, &cubeVAO);
|
||||||
glDeleteVertexArrays(1, &lightVAO);
|
glDeleteVertexArrays(1, &lightCubeVAO);
|
||||||
glDeleteBuffers(1, &VBO);
|
glDeleteBuffers(1, &VBO);
|
||||||
|
|
||||||
// glfw: terminate, clearing all previously allocated GLFW resources.
|
// glfw: terminate, clearing all previously allocated GLFW resources.
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ int main()
|
|||||||
// build and compile our shader zprogram
|
// build and compile our shader zprogram
|
||||||
// ------------------------------------
|
// ------------------------------------
|
||||||
Shader lightingShader("5.3.light_casters.vs", "5.3.light_casters.fs");
|
Shader lightingShader("5.3.light_casters.vs", "5.3.light_casters.fs");
|
||||||
Shader lampShader("5.3.lamp.vs", "5.3.lamp.fs");
|
Shader lightCubeShader("5.3.light_cube.vs", "5.3.light_cube.fs");
|
||||||
|
|
||||||
// set up vertex data (and buffer(s)) and configure vertex attributes
|
// set up vertex data (and buffer(s)) and configure vertex attributes
|
||||||
// ------------------------------------------------------------------
|
// ------------------------------------------------------------------
|
||||||
@@ -155,9 +155,9 @@ int main()
|
|||||||
glEnableVertexAttribArray(2);
|
glEnableVertexAttribArray(2);
|
||||||
|
|
||||||
// second, configure the light's VAO (VBO stays the same; the vertices are the same for the light object which is also a 3D cube)
|
// second, configure the light's VAO (VBO stays the same; the vertices are the same for the light object which is also a 3D cube)
|
||||||
unsigned int lightVAO;
|
unsigned int lightCubeVAO;
|
||||||
glGenVertexArrays(1, &lightVAO);
|
glGenVertexArrays(1, &lightCubeVAO);
|
||||||
glBindVertexArray(lightVAO);
|
glBindVertexArray(lightCubeVAO);
|
||||||
|
|
||||||
glBindBuffer(GL_ARRAY_BUFFER, VBO);
|
glBindBuffer(GL_ARRAY_BUFFER, VBO);
|
||||||
// note that we update the lamp's position attribute's stride to reflect the updated buffer data
|
// note that we update the lamp's position attribute's stride to reflect the updated buffer data
|
||||||
@@ -248,15 +248,15 @@ int main()
|
|||||||
|
|
||||||
|
|
||||||
// again, a lamp object is weird when we only have a spot light, don't render the light object
|
// again, a lamp object is weird when we only have a spot light, don't render the light object
|
||||||
// lampShader.use();
|
// lightCubeShader.use();
|
||||||
// lampShader.setMat4("projection", projection);
|
// lightCubeShader.setMat4("projection", projection);
|
||||||
// lampShader.setMat4("view", view);
|
// lightCubeShader.setMat4("view", view);
|
||||||
// model = glm::mat4(1.0f);
|
// model = glm::mat4(1.0f);
|
||||||
// model = glm::translate(model, lightPos);
|
// model = glm::translate(model, lightPos);
|
||||||
// model = glm::scale(model, glm::vec3(0.2f)); // a smaller cube
|
// model = glm::scale(model, glm::vec3(0.2f)); // a smaller cube
|
||||||
// lampShader.setMat4("model", model);
|
// lightCubeShader.setMat4("model", model);
|
||||||
|
|
||||||
// glBindVertexArray(lightVAO);
|
// glBindVertexArray(lightCubeVAO);
|
||||||
// glDrawArrays(GL_TRIANGLES, 0, 36);
|
// glDrawArrays(GL_TRIANGLES, 0, 36);
|
||||||
|
|
||||||
|
|
||||||
@@ -269,7 +269,7 @@ int main()
|
|||||||
// optional: de-allocate all resources once they've outlived their purpose:
|
// optional: de-allocate all resources once they've outlived their purpose:
|
||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
glDeleteVertexArrays(1, &cubeVAO);
|
glDeleteVertexArrays(1, &cubeVAO);
|
||||||
glDeleteVertexArrays(1, &lightVAO);
|
glDeleteVertexArrays(1, &lightCubeVAO);
|
||||||
glDeleteBuffers(1, &VBO);
|
glDeleteBuffers(1, &VBO);
|
||||||
|
|
||||||
// glfw: terminate, clearing all previously allocated GLFW resources.
|
// glfw: terminate, clearing all previously allocated GLFW resources.
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ int main()
|
|||||||
// build and compile our shader zprogram
|
// build and compile our shader zprogram
|
||||||
// ------------------------------------
|
// ------------------------------------
|
||||||
Shader lightingShader("5.4.light_casters.vs", "5.4.light_casters.fs");
|
Shader lightingShader("5.4.light_casters.vs", "5.4.light_casters.fs");
|
||||||
Shader lampShader("5.4.lamp.vs", "5.4.lamp.fs");
|
Shader lightCubeShader("5.4.light_cube.vs", "5.4.light_cube.fs");
|
||||||
|
|
||||||
// set up vertex data (and buffer(s)) and configure vertex attributes
|
// set up vertex data (and buffer(s)) and configure vertex attributes
|
||||||
// ------------------------------------------------------------------
|
// ------------------------------------------------------------------
|
||||||
@@ -155,9 +155,9 @@ int main()
|
|||||||
glEnableVertexAttribArray(2);
|
glEnableVertexAttribArray(2);
|
||||||
|
|
||||||
// second, configure the light's VAO (VBO stays the same; the vertices are the same for the light object which is also a 3D cube)
|
// second, configure the light's VAO (VBO stays the same; the vertices are the same for the light object which is also a 3D cube)
|
||||||
unsigned int lightVAO;
|
unsigned int lightCubeVAO;
|
||||||
glGenVertexArrays(1, &lightVAO);
|
glGenVertexArrays(1, &lightCubeVAO);
|
||||||
glBindVertexArray(lightVAO);
|
glBindVertexArray(lightCubeVAO);
|
||||||
|
|
||||||
glBindBuffer(GL_ARRAY_BUFFER, VBO);
|
glBindBuffer(GL_ARRAY_BUFFER, VBO);
|
||||||
// note that we update the lamp's position attribute's stride to reflect the updated buffer data
|
// note that we update the lamp's position attribute's stride to reflect the updated buffer data
|
||||||
@@ -248,15 +248,15 @@ int main()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// again, a lamp object is weird when we only have a spot light, don't render the light object
|
// again, a lamp object is weird when we only have a spot light, don't render the light object
|
||||||
// lampShader.use();
|
// lightCubeShader.use();
|
||||||
// lampShader.setMat4("projection", projection);
|
// lightCubeShader.setMat4("projection", projection);
|
||||||
// lampShader.setMat4("view", view);
|
// lightCubeShader.setMat4("view", view);
|
||||||
// model = glm::mat4(1.0f);
|
// model = glm::mat4(1.0f);
|
||||||
// model = glm::translate(model, lightPos);
|
// model = glm::translate(model, lightPos);
|
||||||
// model = glm::scale(model, glm::vec3(0.2f)); // a smaller cube
|
// model = glm::scale(model, glm::vec3(0.2f)); // a smaller cube
|
||||||
// lampShader.setMat4("model", model);
|
// lightCubeShader.setMat4("model", model);
|
||||||
|
|
||||||
// glBindVertexArray(lightVAO);
|
// glBindVertexArray(lightCubeVAO);
|
||||||
// glDrawArrays(GL_TRIANGLES, 0, 36);
|
// glDrawArrays(GL_TRIANGLES, 0, 36);
|
||||||
|
|
||||||
|
|
||||||
@@ -269,7 +269,7 @@ int main()
|
|||||||
// optional: de-allocate all resources once they've outlived their purpose:
|
// optional: de-allocate all resources once they've outlived their purpose:
|
||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
glDeleteVertexArrays(1, &cubeVAO);
|
glDeleteVertexArrays(1, &cubeVAO);
|
||||||
glDeleteVertexArrays(1, &lightVAO);
|
glDeleteVertexArrays(1, &lightCubeVAO);
|
||||||
glDeleteBuffers(1, &VBO);
|
glDeleteBuffers(1, &VBO);
|
||||||
|
|
||||||
// glfw: terminate, clearing all previously allocated GLFW resources.
|
// glfw: terminate, clearing all previously allocated GLFW resources.
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ int main()
|
|||||||
// build and compile our shader zprogram
|
// build and compile our shader zprogram
|
||||||
// ------------------------------------
|
// ------------------------------------
|
||||||
Shader lightingShader("6.multiple_lights.vs", "6.multiple_lights.fs");
|
Shader lightingShader("6.multiple_lights.vs", "6.multiple_lights.fs");
|
||||||
Shader lampShader("6.lamp.vs", "6.lamp.fs");
|
Shader lightCubeShader("6.light_cube.vs", "6.light_cube.fs");
|
||||||
|
|
||||||
// set up vertex data (and buffer(s)) and configure vertex attributes
|
// set up vertex data (and buffer(s)) and configure vertex attributes
|
||||||
// ------------------------------------------------------------------
|
// ------------------------------------------------------------------
|
||||||
@@ -165,9 +165,9 @@ int main()
|
|||||||
glEnableVertexAttribArray(2);
|
glEnableVertexAttribArray(2);
|
||||||
|
|
||||||
// second, configure the light's VAO (VBO stays the same; the vertices are the same for the light object which is also a 3D cube)
|
// second, configure the light's VAO (VBO stays the same; the vertices are the same for the light object which is also a 3D cube)
|
||||||
unsigned int lightVAO;
|
unsigned int lightCubeVAO;
|
||||||
glGenVertexArrays(1, &lightVAO);
|
glGenVertexArrays(1, &lightCubeVAO);
|
||||||
glBindVertexArray(lightVAO);
|
glBindVertexArray(lightCubeVAO);
|
||||||
|
|
||||||
glBindBuffer(GL_ARRAY_BUFFER, VBO);
|
glBindBuffer(GL_ARRAY_BUFFER, VBO);
|
||||||
// note that we update the lamp's position attribute's stride to reflect the updated buffer data
|
// note that we update the lamp's position attribute's stride to reflect the updated buffer data
|
||||||
@@ -297,18 +297,18 @@ int main()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// also draw the lamp object(s)
|
// also draw the lamp object(s)
|
||||||
lampShader.use();
|
lightCubeShader.use();
|
||||||
lampShader.setMat4("projection", projection);
|
lightCubeShader.setMat4("projection", projection);
|
||||||
lampShader.setMat4("view", view);
|
lightCubeShader.setMat4("view", view);
|
||||||
|
|
||||||
// we now draw as many light bulbs as we have point lights.
|
// we now draw as many light bulbs as we have point lights.
|
||||||
glBindVertexArray(lightVAO);
|
glBindVertexArray(lightCubeVAO);
|
||||||
for (unsigned int i = 0; i < 4; i++)
|
for (unsigned int i = 0; i < 4; i++)
|
||||||
{
|
{
|
||||||
model = glm::mat4(1.0f);
|
model = glm::mat4(1.0f);
|
||||||
model = glm::translate(model, pointLightPositions[i]);
|
model = glm::translate(model, pointLightPositions[i]);
|
||||||
model = glm::scale(model, glm::vec3(0.2f)); // Make it a smaller cube
|
model = glm::scale(model, glm::vec3(0.2f)); // Make it a smaller cube
|
||||||
lampShader.setMat4("model", model);
|
lightCubeShader.setMat4("model", model);
|
||||||
glDrawArrays(GL_TRIANGLES, 0, 36);
|
glDrawArrays(GL_TRIANGLES, 0, 36);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -322,7 +322,7 @@ int main()
|
|||||||
// optional: de-allocate all resources once they've outlived their purpose:
|
// optional: de-allocate all resources once they've outlived their purpose:
|
||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
glDeleteVertexArrays(1, &cubeVAO);
|
glDeleteVertexArrays(1, &cubeVAO);
|
||||||
glDeleteVertexArrays(1, &lightVAO);
|
glDeleteVertexArrays(1, &lightCubeVAO);
|
||||||
glDeleteBuffers(1, &VBO);
|
glDeleteBuffers(1, &VBO);
|
||||||
|
|
||||||
// glfw: terminate, clearing all previously allocated GLFW resources.
|
// glfw: terminate, clearing all previously allocated GLFW resources.
|
||||||
|
|||||||
Reference in New Issue
Block a user