From 4bdf8d5e8b955b08a10d026ffc26c9d7059bbbb0 Mon Sep 17 00:00:00 2001 From: Pawel Felcyn Date: Wed, 3 Jan 2024 20:40:52 +0100 Subject: [PATCH] seperate class for sun variables --- grk/project/Sun.h | 11 +++++++++++ grk/project/grk-project.vcxproj | 1 + grk/project/grk-project.vcxproj.filters | 3 +++ grk/project/src/ex_9_1.hpp | 11 +++++------ 4 files changed, 20 insertions(+), 6 deletions(-) create mode 100644 grk/project/Sun.h diff --git a/grk/project/Sun.h b/grk/project/Sun.h new file mode 100644 index 0000000..d9c69ed --- /dev/null +++ b/grk/project/Sun.h @@ -0,0 +1,11 @@ +#include "glm.hpp" +#include "ext.hpp" + +#pragma once +class Sun +{ +public: + glm::vec3 sunPos = glm::vec3(-4.740971f, 2.149999f, 0.369280f); + glm::vec3 sunDir = glm::vec3(-0.93633f, 0.351106, 0.003226f); + glm::vec3 sunColor = glm::vec3(0.9f, 0.9f, 0.7f) * 5; +}; \ No newline at end of file diff --git a/grk/project/grk-project.vcxproj b/grk/project/grk-project.vcxproj index f87dfda..863dea3 100644 --- a/grk/project/grk-project.vcxproj +++ b/grk/project/grk-project.vcxproj @@ -35,6 +35,7 @@ + diff --git a/grk/project/grk-project.vcxproj.filters b/grk/project/grk-project.vcxproj.filters index a2b8ba9..591f3ea 100644 --- a/grk/project/grk-project.vcxproj.filters +++ b/grk/project/grk-project.vcxproj.filters @@ -89,6 +89,9 @@ Source Files + + Header Files + diff --git a/grk/project/src/ex_9_1.hpp b/grk/project/src/ex_9_1.hpp index 36f1cdc..954b89a 100644 --- a/grk/project/src/ex_9_1.hpp +++ b/grk/project/src/ex_9_1.hpp @@ -14,6 +14,7 @@ #include #include #include +#include "../Sun.h" const unsigned int SHADOW_WIDTH = 1024, SHADOW_HEIGHT = 1024; @@ -49,9 +50,7 @@ Core::Shader_Loader shaderLoader; Core::RenderContext shipContext; Core::RenderContext sphereContext; -glm::vec3 sunPos = glm::vec3(-4.740971f, 2.149999f, 0.369280f); -glm::vec3 sunDir = glm::vec3(-0.93633f, 0.351106, 0.003226f); -glm::vec3 sunColor = glm::vec3(0.9f, 0.9f, 0.7f)*5; +Sun sun; glm::vec3 cameraPos = glm::vec3(0.479490f, 1.250000f, -2.124680f); glm::vec3 cameraDir = glm::vec3(-0.354510f, 0.000000f, 0.935054f); @@ -141,8 +140,8 @@ void drawObjectPBR(Core::RenderContext& context, glm::mat4 modelMatrix, glm::vec glUniform3f(glGetUniformLocation(program, "cameraPos"), cameraPos.x, cameraPos.y, cameraPos.z); - glUniform3f(glGetUniformLocation(program, "sunDir"), sunDir.x, sunDir.y, sunDir.z); - glUniform3f(glGetUniformLocation(program, "sunColor"), sunColor.x, sunColor.y, sunColor.z); + glUniform3f(glGetUniformLocation(program, "sunDir"), sun.sunDir.x, sun.sunDir.y, sun.sunDir.z); + glUniform3f(glGetUniformLocation(program, "sunColor"), sun.sunColor.x, sun.sunColor.y, sun.sunColor.z); glUniform3f(glGetUniformLocation(program, "lightPos"), pointlightPos.x, pointlightPos.y, pointlightPos.z); glUniform3f(glGetUniformLocation(program, "lightColor"), pointlightColor.x, pointlightColor.y, pointlightColor.z); @@ -182,7 +181,7 @@ void renderScene(GLFWwindow* window) glm::mat4 viewProjectionMatrix = createPerspectiveMatrix() * createCameraMatrix(); glm::mat4 transformation = viewProjectionMatrix * glm::translate(pointlightPos) * glm::scale(glm::vec3(0.1)); glUniformMatrix4fv(glGetUniformLocation(programSun, "transformation"), 1, GL_FALSE, (float*)&transformation); - glUniform3f(glGetUniformLocation(programSun, "color"), sunColor.x / 2, sunColor.y / 2, sunColor.z / 2); + glUniform3f(glGetUniformLocation(programSun, "color"), sun.sunColor.x / 2, sun.sunColor.y / 2, sun.sunColor.z / 2); glUniform1f(glGetUniformLocation(programSun, "exposition"), exposition); Core::DrawContext(sphereContext);