From 1c4579f1d6ebf9841688c35171ef75134189e7bf Mon Sep 17 00:00:00 2001 From: K4RP4T Date: Thu, 18 Jan 2024 16:50:20 +0100 Subject: [PATCH] =?UTF-8?q?poczyszczenie=20zb=C4=99dnych=20cz=C4=99=C5=9Bc?= =?UTF-8?q?i?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- grk/cw 6/grk-cw6.vcxproj | 6 +- grk/cw 6/shaders/shader_sun.frag | 1 - grk/cw 6/shaders/shader_sun.vert | 1 - grk/cw 6/shaders/shader_tex.frag | 8 +- grk/cw 6/shaders/shader_tex.vert | 1 - grk/cw 6/src/Planet.hpp | 214 ++----------------------------- grk/cw 6/src/main.cpp | 21 --- grk/grk-cw.sln | 4 +- 8 files changed, 21 insertions(+), 235 deletions(-) diff --git a/grk/cw 6/grk-cw6.vcxproj b/grk/cw 6/grk-cw6.vcxproj index 4dea6bc..4a90c1d 100644 --- a/grk/cw 6/grk-cw6.vcxproj +++ b/grk/cw 6/grk-cw6.vcxproj @@ -47,7 +47,7 @@ {3952C396-B1C6-44CD-96DD-C1AC15D32978} Win32Proj grk-cw6 - 10.0.22000.0 + 10.0 Planeta @@ -55,7 +55,7 @@ Application true Unicode - v143 + v142 Application @@ -92,7 +92,7 @@ Level3 Disabled WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) - stdcpp14 + Default D:\STUDIA\Planeta\grk\cw 6\src\imgui-master;D:\STUDIA\Planeta\grk\cw 6\src\imgui-master\backends;%(AdditionalIncludeDirectories) diff --git a/grk/cw 6/shaders/shader_sun.frag b/grk/cw 6/shaders/shader_sun.frag index e1993d4..9fa78ea 100644 --- a/grk/cw 6/shaders/shader_sun.frag +++ b/grk/cw 6/shaders/shader_sun.frag @@ -16,7 +16,6 @@ void main() { vec3 lightDir = normalize(lightPos - worldPos); vec3 normal = normalize(vecNormal); - //float diffuse = max(0, dot(normal, lightDir)); vec4 textureColor = texture2D(colorTexture, vtc); outColor = vec4(vec3(textureColor) * 1.5, 1.0); diff --git a/grk/cw 6/shaders/shader_sun.vert b/grk/cw 6/shaders/shader_sun.vert index 8ba3a7f..0eca456 100644 --- a/grk/cw 6/shaders/shader_sun.vert +++ b/grk/cw 6/shaders/shader_sun.vert @@ -18,5 +18,4 @@ void main() gl_Position = transformation * vec4(vertexPosition, 1.0); vtc = vec2(vertexTexCoord.x, 1.0 - vertexTexCoord.y); - //vtc = vertexTexCoord; } diff --git a/grk/cw 6/shaders/shader_tex.frag b/grk/cw 6/shaders/shader_tex.frag index 22d6d31..0b9bcca 100644 --- a/grk/cw 6/shaders/shader_tex.frag +++ b/grk/cw 6/shaders/shader_tex.frag @@ -15,21 +15,21 @@ out vec4 outColor; vec3 outputColor; uniform sampler2D colorTexture; -vec3 toneMapping(vec3 color){ +vec3 toneMapping(vec3 color) { float exposure = 0.06; vec3 mapped = 1 - exp(-color*exposure); return mapped; } - void main() { vec3 lightDir = normalize(lightPos - worldPos); vec3 normal = normalize(vecNormal); float diffuse = max(0, dot(normal, lightDir)); textureColor = texture2D(colorTexture, vtc); - vec3 distance = lightColor/pow(length(lightPos - worldPos), 2.0) * 200; - outputColor = vec3(textureColor) * min(1, AMBIENT + diffuse)* distance; + vec3 distance = lightColor / pow(length(lightPos - worldPos), 2.0) * 200; + outputColor = vec3(textureColor) * min(1, AMBIENT + diffuse) * distance; + //gamma correction //outputColor = pow(outputColor, vec3(1.0/2.2)); diff --git a/grk/cw 6/shaders/shader_tex.vert b/grk/cw 6/shaders/shader_tex.vert index 105ddc3..da2afbf 100644 --- a/grk/cw 6/shaders/shader_tex.vert +++ b/grk/cw 6/shaders/shader_tex.vert @@ -18,5 +18,4 @@ void main() gl_Position = transformation * vec4(vertexPosition, 1.0); vtc = vec2(vertexTexCoord.x, 1.0 - vertexTexCoord.y); - //vtc = vertexTexCoord; } diff --git a/grk/cw 6/src/Planet.hpp b/grk/cw 6/src/Planet.hpp index a87ba06..e5bbc5b 100644 --- a/grk/cw 6/src/Planet.hpp +++ b/grk/cw 6/src/Planet.hpp @@ -1,24 +1,10 @@ #include "glew.h" - -//#include "imgui.h" -//#include "imgui_impl_glfw.h" -//#include "imgui_impl_opengl3.h" -//#include -//#define GL_SILENCE_DEPRECATION -//#if defined(IMGUI_IMPL_OPENGL_ES2) -//#include -//#endif - #include #include "glm.hpp" #include "ext.hpp" #include #include -//#if defined(_MSC_VER) && (_MSC_VER >= 1900) && !defined(IMGUI_DISABLE_WIN32_FUNCTIONS) -//#pragma comment(lib, "legacy_stdio_definitions") -//#endif - #include "Shader_Loader.h" #include "Render_Utils.h" #include "Texture.h" @@ -33,17 +19,10 @@ namespace texture { GLuint earth; GLuint clouds; GLuint moon; - GLuint ship; GLuint mercury; GLuint venus; GLuint mars; GLuint sun; - - GLuint grid; - - GLuint earthNormal; - GLuint asteroidNormal; - GLuint shipNormal; } GLuint program; @@ -53,7 +32,6 @@ GLuint programTex; Core::Shader_Loader shaderLoader; -//Core::RenderContext shipContext; Core::RenderContext sphereContext; glm::vec3 sunPosition = glm::vec3(12.f, 0.f, 12.f); @@ -70,30 +48,11 @@ unsigned int colorBuffers[2]; unsigned int depthMap; unsigned int depthMapFBO; - int HDR_WIDTH = 1024; int HDR_HEIGHT = 1024; glm::vec3 lightColor = glm::vec3(50, 50, 50); -/* -glm::mat4 createShipMatrix() -{ - glm::vec3 cameraSide = glm::normalize(glm::cross(cameraDir, glm::vec3(0.f, 1.f, 0.f))); - glm::vec3 cameraUp = glm::normalize(glm::cross(cameraSide, cameraDir)); - - glm::mat4 shipRotationMatrix = glm::mat4({ - cameraSide.x,cameraSide.y,cameraSide.z,0, - cameraUp.x,cameraUp.y,cameraUp.z ,0, - shipDir.x,shipDir.y,shipDir.z,0, - 0.,0.,0.,1., - }); - - shipRotationMatrix = glm::transpose(shipRotationMatrix); - - return shipRotationMatrix; -} -*/ glm::mat4 createCameraMatrix() { glm::vec3 cameraSide = glm::normalize(glm::cross(cameraDir, glm::vec3(0.f, 1.f, 0.f))); @@ -202,18 +161,6 @@ void drawSun(Core::RenderContext& context, glm::mat4 modelMatrix, GLuint texture glUseProgram(0); } /* -void drawObjectColor(Core::RenderContext& context, glm::mat4 modelMatrix, glm::vec3 color) { - glUseProgram(program); - glUniform3f(glGetUniformLocation(program, "color"), color.x, color.y, color.z); - glm::mat4 viewProjectionMatrix = createPerspectiveMatrix() * createCameraMatrix(); - glm::mat4 transformation = viewProjectionMatrix * modelMatrix; - - glUniformMatrix4fv(glGetUniformLocation(program, "transformation"), 1, GL_FALSE, (float*)&transformation); - glUniformMatrix4fv(glGetUniformLocation(program, "modelMatrix"), 1, GL_FALSE, (float*)&modelMatrix); - Core::DrawContext(context); - glUseProgram(0); -} - void drawObjectPBR(Core::RenderContext& context, glm::mat4 modelMatrix, glm::vec3 color, float roughness, float metallic) { glm::mat4 viewProjectionMatrix = createPerspectiveMatrix() * createCameraMatrix(); @@ -244,7 +191,6 @@ void drawObjectPBR(Core::RenderContext& context, glm::mat4 modelMatrix, glm::vec } */ - void renderScene(GLFWwindow* window) { glClearColor(0.0f, 0.0f, 0.15f, 1.0f); @@ -252,58 +198,6 @@ void renderScene(GLFWwindow* window) glm::mat4 transformation; float time = glfwGetTime(); - /* - glm::mat4 mercuryScale = glm::scale(glm::vec3(0.24)); - glm::mat4 mercuryRotate = glm::rotate(time * 0.24f, glm::vec3(0, 1, 0)); - glm::mat4 mercuryTranslate = glm::translate(glm::vec3(0, 0, -3)); - - glm::mat4 venusScale = glm::scale(glm::vec3(0.55)); - glm::mat4 venusRotate = glm::rotate(time * 0.61f, glm::vec3(0, 1, 0)); - glm::mat4 venusTranslate = glm::translate(glm::vec3(0, 0, -5)); - - glm::mat4 earthScale = glm::scale(glm::vec3(0.6)); - glm::mat4 earthRotate = glm::rotate(time, glm::vec3(0, 1, 0)); - glm::mat4 earthTranslate = glm::translate(glm::vec3(0, 0, -7)); - - glm::mat4 moonScale = glm::scale(glm::vec3(0.2)); - glm::mat4 moonRotate = glm::rotate(time, glm::vec3(0, 1, 0)); - glm::mat4 moonTranslate = glm::translate(glm::vec3(0, 0, -2)); - - glm::mat4 marsScale = glm::scale(glm::vec3(0.3)); - glm::mat4 marsRotate = glm::rotate(time * 1.8f, glm::vec3(0, 1, 0)); - glm::mat4 marsTranslate = glm::translate(glm::vec3(0, 0, -9)); - - //glm::mat4 shipScale = glm::scale(glm::vec3(0.3)); - //glm::mat4 shipRotate = createShipMatrix(); - //glm::mat4 shipTranslate = glm::translate(shipPos); - - //glUseProgram(program); - //glUniform3f(glGetUniformLocation(program, "lightDir"), 1.0, -1.0, 0.0); - //glUniform3f(glGetUniformLocation(program, "lightColor"), lightColor.x, lightColor.y, lightColor.z); - //glUniform3f(glGetUniformLocation(program, "cameraPos"), cameraPos.x, cameraPos.y, cameraPos.z); - //glUniform3f(glGetUniformLocation(program, "lightPos"), 0.0, 0.0, 0.0); - //glUseProgram(0); - - - drawObjectColor(sphereContext, sunScale, glm::vec3(0.9, 0.9, 0.2)); //sun - - drawObjectTexture(sphereContext, mercuryRotate * mercuryTranslate * mercuryScale, texture::mercury); //mercury - - drawObjectTexture(sphereContext, venusRotate * venusTranslate * venusScale, texture::venus); //venus - - drawObjectTexture(sphereContext, earthRotate * earthTranslate * earthScale, texture::earth); //earth - - drawObjectTexture(sphereContext, earthRotate * earthTranslate * earthScale * moonRotate * moonTranslate * moonScale, texture::moon); //moon - - drawObjectTexture(sphereContext, marsRotate * marsTranslate * marsScale, texture::mars); //mars - - drawObjectTexture(shipContext, shipTranslate * shipRotate * shipScale, texture::ship); //ship - */ - - //glUseProgram(programTex); - //glUniform3f(glGetUniformLocation(programTex, "lightDir"), cameraDir.x, cameraDir.y, cameraDir.z); - //glUseProgram(0); - glm::mat4 sunScale = glm::scale(glm::vec3(0.04f)); glm::mat4 sunTranslate = glm::translate(sunPosition); @@ -347,7 +241,6 @@ void init(GLFWwindow* window) initHDR(); programDepth = shaderLoader.CreateProgram("shaders/shader_smap.vert", "shaders/shader_smap.frag"); - program = shaderLoader.CreateProgram("shaders/shader.vert", "shaders/shader.frag"); programTex = shaderLoader.CreateProgram("shaders/shader_tex.vert", "shaders/shader_tex.frag"); programSun = shaderLoader.CreateProgram("shaders/shader_sun.vert", "shaders/shader_sun.frag"); @@ -360,7 +253,9 @@ void init(GLFWwindow* window) void shutdown(GLFWwindow* window) { - shaderLoader.DeleteProgram(program); + shaderLoader.DeleteProgram(programDepth); + shaderLoader.DeleteProgram(programTex); + shaderLoader.DeleteProgram(programSun); } //obsluga wejscia @@ -368,8 +263,8 @@ void processInput(GLFWwindow* window) { glm::vec3 cameraSide = glm::normalize(glm::cross(cameraDir, glm::vec3(0.f, 1.f, 0.f))); - float angleSpeed = 0.02f; - float moveSpeed = 0.04f; + float angleSpeed = 0.002f; + float moveSpeed = 0.004f; if (glfwGetKey(window, GLFW_KEY_ESCAPE) == GLFW_PRESS) { glfwSetWindowShouldClose(window, true); @@ -378,107 +273,24 @@ void processInput(GLFWwindow* window) cameraPos += cameraDir * moveSpeed; if (glfwGetKey(window, GLFW_KEY_S) == GLFW_PRESS) cameraPos -= cameraDir * moveSpeed; - if (glfwGetKey(window, GLFW_KEY_X) == GLFW_PRESS) - cameraPos += cameraSide * moveSpeed; - if (glfwGetKey(window, GLFW_KEY_Z) == GLFW_PRESS) - cameraPos -= cameraSide * moveSpeed; - if (glfwGetKey(window, GLFW_KEY_A) == GLFW_PRESS) - cameraDir = glm::vec3(glm::eulerAngleY(angleSpeed) * glm::vec4(cameraDir, 0)); if (glfwGetKey(window, GLFW_KEY_D) == GLFW_PRESS) - cameraDir = glm::vec3(glm::eulerAngleY(-angleSpeed) * glm::vec4(cameraDir, 0)); - - //shipPos = cameraPos + 0.75 * cameraDir + glm::vec3(0, -0.25f, 0); - //shipDir = cameraDir; + cameraPos += cameraSide * moveSpeed; + if (glfwGetKey(window, GLFW_KEY_A) == GLFW_PRESS) + cameraPos -= cameraSide * moveSpeed; + //if (glfwGetKey(window, GLFW_KEY_A) == GLFW_PRESS) + // cameraDir = glm::vec3(glm::eulerAngleY(angleSpeed) * glm::vec4(cameraDir, 0)); + //if (glfwGetKey(window, GLFW_KEY_D) == GLFW_PRESS) + // cameraDir = glm::vec3(glm::eulerAngleY(-angleSpeed) * glm::vec4(cameraDir, 0)); - //cameraDir = glm::normalize(-cameraPos); + cameraDir = glm::normalize(-cameraPos); } -// Our state -//bool show_demo_window = true; -//bool show_another_window = false; -//ImVec4 clear_color = ImVec4(0.45f, 0.55f, 0.60f, 1.00f); - // funkcja jest glowna petla void renderLoop(GLFWwindow* window) { - // Setup Dear ImGui context - //IMGUI_CHECKVERSION(); - //ImGui::CreateContext(); - //ImGuiIO& io = ImGui::GetIO(); (void)io; - //io.ConfigFlags |= ImGuiConfigFlags_NavEnableKeyboard; // Enable Keyboard Controls - - // Setup Dear ImGui style - //ImGui::StyleColorsDark(); - while (!glfwWindowShouldClose(window)) { - /*glfwPollEvents(); - - // Start the Dear ImGui frame - ImGui_ImplOpenGL3_NewFrame(); - ImGui_ImplGlfw_NewFrame(); - ImGui::NewFrame(); - - // 1. Show the big demo window (Most of the sample code is in ImGui::ShowDemoWindow()! You can browse its code to learn more about Dear ImGui!). - if (show_demo_window) - ImGui::ShowDemoWindow(&show_demo_window); - - // 2. Show a simple window that we create ourselves. We use a Begin/End pair to create a named window. - { - static float f = 0.0f; - static int counter = 0; - - ImGui::Begin("Hello, world!"); // Create a window called "Hello, world!" and append into it. - - ImGui::Text("This is some useful text."); // Display some text (you can use a format strings too) - ImGui::Checkbox("Demo Window", &show_demo_window); // Edit bools storing our window open/close state - ImGui::Checkbox("Another Window", &show_another_window); - - ImGui::SliderFloat("float", &f, 0.0f, 1.0f); // Edit 1 float using a slider from 0.0f to 1.0f - ImGui::ColorEdit3("clear color", (float*)&clear_color); // Edit 3 floats representing a color - - if (ImGui::Button("Button")) // Buttons return true when clicked (most widgets return true when edited/activated) - counter++; - ImGui::SameLine(); - ImGui::Text("counter = %d", counter); - - ImGui::Text("Application average %.3f ms/frame (%.1f FPS)", 1000.0f / io.Framerate, io.Framerate); - ImGui::End(); - } - - // 3. Show another simple window. - if (show_another_window) - { - ImGui::Begin("Another Window", &show_another_window); // Pass a pointer to our bool variable (the window will have a closing button that will clear the bool when clicked) - ImGui::Text("Hello from another window!"); - if (ImGui::Button("Close Me")) - show_another_window = false; - ImGui::End(); - } - - // Rendering - ImGui::Render(); - int display_w, display_h; - glfwGetFramebufferSize(window, &display_w, &display_h); - glViewport(0, 0, display_w, display_h); - glClearColor(clear_color.x * clear_color.w, clear_color.y * clear_color.w, clear_color.z * clear_color.w, clear_color.w); - glClear(GL_COLOR_BUFFER_BIT); - ImGui_ImplOpenGL3_RenderDrawData(ImGui::GetDrawData()); - - glfwSwapBuffers(window); - */ processInput(window); renderScene(window); glfwPollEvents(); } - /* - // Cleanup - ImGui_ImplOpenGL3_Shutdown(); - ImGui_ImplGlfw_Shutdown(); - ImGui::DestroyContext(); - - glfwDestroyWindow(window); - glfwTerminate(); - - return 0;*/ } -//} \ No newline at end of file diff --git a/grk/cw 6/src/main.cpp b/grk/cw 6/src/main.cpp index 1bc2357..907d582 100644 --- a/grk/cw 6/src/main.cpp +++ b/grk/cw 6/src/main.cpp @@ -1,33 +1,17 @@ #include "glew.h" - -//#include "imgui.h" -//#include "imgui_impl_glfw.h" -//#include "imgui_impl_opengl3.h" -//#include -//#define GL_SILENCE_DEPRECATION -//#if defined(IMGUI_IMPL_OPENGL_ES2) -//#include -//#endif - #include #include "glm.hpp" #include "ext.hpp" #include #include -//#if defined(_MSC_VER) && (_MSC_VER >= 1900) && !defined(IMGUI_DISABLE_WIN32_FUNCTIONS) -//#pragma comment(lib, "legacy_stdio_definitions") -//#endif - #include "Planet.hpp" - int main(int argc, char** argv) { // inicjalizacja glfw glfwInit(); - //const char* glsl_version = "#version 150"; glfwWindowHint(GLFW_CONTEXT_VERSION_MAJOR, 3); glfwWindowHint(GLFW_CONTEXT_VERSION_MINOR, 3); glfwWindowHint(GLFW_OPENGL_PROFILE, GLFW_OPENGL_CORE_PROFILE); @@ -45,11 +29,6 @@ int main(int argc, char** argv) return -1; } glfwMakeContextCurrent(window); - //glfwSwapInterval(1); // Enable vsync - - // Setup Platform/Renderer backends - //ImGui_ImplGlfw_InitForOpenGL(window, true); - //ImGui_ImplOpenGL3_Init(glsl_version); // ladowanie OpenGL za pomoca glew glewInit(); diff --git a/grk/grk-cw.sln b/grk/grk-cw.sln index 1c31505..5d8f122 100644 --- a/grk/grk-cw.sln +++ b/grk/grk-cw.sln @@ -3,9 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.4.33213.308 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grk-cw6", "cw 6\grk-cw6.vcxproj", "{3952C396-B1C6-44CD-96DD-C1AC15D32978}" -EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "grk-cw6", "cw 6\grk-cw6.vcxproj", "{3952C396-B1C6-44CD-96DD-C1AC15D32978}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Planeta", "cw 6\grk-cw6.vcxproj", "{3952C396-B1C6-44CD-96DD-C1AC15D32978}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution