From 383d5d3f626fa0be8b554b5caef6aeb428d3c6a0 Mon Sep 17 00:00:00 2001 From: Peder Bergebakken Sundt Date: Thu, 28 Mar 2019 09:36:37 +0100 Subject: [PATCH] Further separate the render logic and the scene logic With some cleanup --- src/program.cpp | 8 ++++++-- src/renderlogic.cpp | 17 ++++------------- src/scene.cpp | 1 - 3 files changed, 10 insertions(+), 16 deletions(-) diff --git a/src/program.cpp b/src/program.cpp index ba81315..223d884 100644 --- a/src/program.cpp +++ b/src/program.cpp @@ -32,7 +32,9 @@ void runProgram(GLFWwindow* window, CommandLineOptions options) glClearColor(0.3f, 0.5f, 0.8f, 1.0f); initRenderer(window, options); - + init_scene(options); + getTimeDeltaSeconds(); + // Rendering Loop while (!glfwWindowShouldClose(window)) { @@ -41,7 +43,9 @@ void runProgram(GLFWwindow* window, CommandLineOptions options) int w, h; glfwGetWindowSize(window, &w, &h); - + + step_scene(getTimeDeltaSeconds()); + updateFrame(window, w, h); renderFrame(window, w, h); diff --git a/src/renderlogic.cpp b/src/renderlogic.cpp index 71c2317..9480f41 100644 --- a/src/renderlogic.cpp +++ b/src/renderlogic.cpp @@ -3,7 +3,6 @@ #include #include #include -#include #include #include #include @@ -13,7 +12,6 @@ #include #include #include -#include using glm::vec3; using glm::vec4; @@ -51,11 +49,6 @@ void initRenderer(GLFWwindow* window, CommandLineOptions options) { } glfwSetCursorPosCallback(window, mouse_callback); - - init_scene(options); - - // init - getTimeDeltaSeconds(); } // traverses and updates matricies @@ -81,11 +74,7 @@ void updateNodeTransformations(SceneNode* node, mat4 transformationThusFar, mat4 // step void updateFrame(GLFWwindow* window, int windowWidth, int windowHeight) { - double timeDelta = getTimeDeltaSeconds(); float aspect = float(windowWidth) / float(windowHeight); - - // main action: - step_scene(timeDelta); // calculate camera mat4 projection = glm::perspective( @@ -185,7 +174,9 @@ void renderNode(SceneNode* node, Gloom::Shader* parent_shader, vectorvertexArrayObjectID != -1) { // load uniforms - um4fv(MVP); um4fv(MV); um4fv(MVnormal); + um4fv(MVP); + um4fv(MV); + um4fv(MVnormal); u2fv (uvOffset); u3fv (diffuse_color); u3fv (emissive_color); @@ -263,7 +254,7 @@ void renderFrame(GLFWwindow* window, int windowWidth, int windowHeight) { //glDisable(GL_DEPTH_TEST); for (NodeDistShader a : transparent_nodes) renderNode(a.node, a.s, nullptr, false); - std::cout << transparent_nodes.size() << std::endl; + //std::cout << transparent_nodes.size() << std::endl; glDepthMask(GL_TRUE); // read write //glEnable(GL_DEPTH_TEST); diff --git a/src/scene.cpp b/src/scene.cpp index 6a46ae6..271d306 100644 --- a/src/scene.cpp +++ b/src/scene.cpp @@ -53,7 +53,6 @@ PNGImage t_cobble_normal = loadPNGFile("../res/textures/cobble_normal.png"); PNGImage t_plain_diff = loadPNGFile("../res/textures/plain_diff.png"); PNGImage t_plain_normal = loadPNGFile("../res/textures/plain_normal.png", true); PNGImage t_reflection = loadPNGFile("../res/textures/reflection_field.png"); -PNGImage t_reflection2 = loadPNGFile("../res/textures/reflection_blurry.png"); PNGImage t_perlin = makePerlinNoisePNG(256, 256, 0.05/16); void init_scene(CommandLineOptions options) {