From 13d8a5ce616d67b01c6ed0becdde537474ba154e Mon Sep 17 00:00:00 2001 From: Sebastian Park Date: Thu, 25 Apr 2024 03:39:49 -0400 Subject: Michael Normal fixes and change reflection distances. --- CMakeLists.txt.user | 19 ++++++++++--------- resources/shaders/shader.frag | 2 +- resources/shaders/shader.vert | 4 ++-- src/glwidget.cpp | 2 +- src/graphics/shape.cpp | 1 + src/ocean/ocean_alt.cpp | 9 +++++++-- 6 files changed, 22 insertions(+), 15 deletions(-) diff --git a/CMakeLists.txt.user b/CMakeLists.txt.user index aa1b822..a57a6a8 100644 --- a/CMakeLists.txt.user +++ b/CMakeLists.txt.user @@ -1,10 +1,10 @@ - + EnvironmentId - {543a715d-8664-4ae3-b37a-5c03b38d6a62} + {96b0a71f-92bf-4ce4-971d-9106997a27d2} ProjectExplorer.Project.ActiveTarget @@ -89,7 +89,7 @@ Qt 6.2.4 for macOS Qt 6.2.4 for macOS qt.qt6.624.clang_64_kit - 0 + 1 0 0 @@ -104,7 +104,7 @@ -DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG} %{CMAKE_OSX_ARCHITECTURES:DefaultFlag} 0 - /Users/jesswan/Desktop/cs2240/build-ocean-simulation-Qt_6_2_4_for_macOS-Debug + /Users/sebastianpark/College/2023-24/CSCI_2240/ocean-simulation/build/build-ocean-simulation-Qt_6_2_4_for_macOS-Debug @@ -152,7 +152,7 @@ -DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx} -DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG} %{CMAKE_OSX_ARCHITECTURES:DefaultFlag} - /Users/jesswan/Desktop/cs2240/build-ocean-simulation-Qt_6_2_4_for_macOS-Release + /Users/sebastianpark/College/2023-24/CSCI_2240/ocean-simulation/build/build-ocean-simulation-Qt_6_2_4_for_macOS-Release @@ -200,7 +200,7 @@ -DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx} -DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG} %{CMAKE_OSX_ARCHITECTURES:DefaultFlag} - /Users/jesswan/Desktop/cs2240/build-ocean-simulation-Qt_6_2_4_for_macOS-RelWithDebInfo + /Users/sebastianpark/College/2023-24/CSCI_2240/ocean-simulation/build/build-ocean-simulation-Qt_6_2_4_for_macOS-RelWithDebInfo @@ -247,7 +247,7 @@ -DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG} %{CMAKE_OSX_ARCHITECTURES:DefaultFlag} 0 - /Users/jesswan/Desktop/cs2240/build-ocean-simulation-Qt_6_2_4_for_macOS-Profile + /Users/sebastianpark/College/2023-24/CSCI_2240/ocean-simulation/build/build-ocean-simulation-Qt_6_2_4_for_macOS-Profile @@ -293,7 +293,7 @@ -DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx} -DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG} %{CMAKE_OSX_ARCHITECTURES:DefaultFlag} - /Users/jesswan/Desktop/cs2240/build-ocean-simulation-Qt_6_2_4_for_macOS-MinSizeRel + /Users/sebastianpark/College/2023-24/CSCI_2240/ocean-simulation/build/build-ocean-simulation-Qt_6_2_4_for_macOS-MinSizeRel @@ -357,7 +357,8 @@ true false true - /Users/jesswan/Desktop/cs2240/build-ocean-simulation-Qt_6_2_4_for_macOS-Debug + /Users/sebastianpark/College/2023-24/CSCI_2240/ocean-simulation/ + /Users/sebastianpark/College/2023-24/CSCI_2240/ocean-simulation/build/build-ocean-simulation-Qt_6_2_4_for_macOS-Release 1 diff --git a/resources/shaders/shader.frag b/resources/shaders/shader.frag index 0697359..cc592c9 100755 --- a/resources/shaders/shader.frag +++ b/resources/shaders/shader.frag @@ -95,7 +95,7 @@ void main() { fragColor = vec4(red * .2f, green * .2f, blue * .2f,1.f); fragColor += 1.f * specular; // Specular TODO: Pass multiplications as uniforms. fragColor = clamp(fragColor, 0.f, 1.f); // Clamp - fragColor += 0.2f * skyRefl * vec4(0.8f, 0.9f, 1.f, 1.f); + fragColor += 0.3f * skyRefl; fragColor = clamp(fragColor, 0.f, 1.f); // Clamp fragColor *= ((1 - refrProb) / 1.f); diff --git a/resources/shaders/shader.vert b/resources/shaders/shader.vert index e78ddc6..2d0bfe2 100755 --- a/resources/shaders/shader.vert +++ b/resources/shaders/shader.vert @@ -55,9 +55,9 @@ vec4 getRefrPos() { } vec3 getReflPos() { - float depth = 5000.f; // TODO: Pass as uniform + float depth = 500.f; // TODO: Pass as uniform vec3 w_o = normalize(pos - camera_worldSpace); - vec3 reflectedRay = 2 * dot(-w_o, normal_worldSpace) * normal_worldSpace + w_o; + vec3 reflectedRay = w_o - 2 * dot(w_o, normal_worldSpace) * normal_worldSpace; float dist = depth - position.y; float depthScale = dist / reflectedRay.y; diff --git a/src/glwidget.cpp b/src/glwidget.cpp index 7147e48..7d56389 100755 --- a/src/glwidget.cpp +++ b/src/glwidget.cpp @@ -64,7 +64,7 @@ void GLWidget::initializeGL() fprintf(stdout, "Successfully initialized GLEW %s\n", glewGetString(GLEW_VERSION)); // Set clear color to white - glClearColor(1, 1, 1, 1); + glClearColor(0, 0, 0, 1); // Enable depth-testing and backface culling glEnable(GL_DEPTH_TEST); diff --git a/src/graphics/shape.cpp b/src/graphics/shape.cpp index f983848..07af24a 100644 --- a/src/graphics/shape.cpp +++ b/src/graphics/shape.cpp @@ -147,6 +147,7 @@ void Shape::draw(Shader *shader, GLenum mode) // https://stackoverflow.com/questions/67277087/opengl-glsl-multiple-texture-binding-not-working // FIGURED OUT THE PROBLEM. it was that SAMPLERS WERE DEFAULTING TO SLOT 0 AND SETUNIFORM WASN'T WORKING // BECAUSE IT WAS CALLING SETUNIFORM WITH FREAKING FLOATS. WHAT THE FRICK C++. + // https://learnopengl.com/Getting-started/Textures glActiveTexture(GL_TEXTURE1); glBindTexture(GL_TEXTURE_2D, m_sky_texture); shader->setUniform("skySampler", 1); diff --git a/src/ocean/ocean_alt.cpp b/src/ocean/ocean_alt.cpp index dfb474c..b4052d6 100644 --- a/src/ocean/ocean_alt.cpp +++ b/src/ocean/ocean_alt.cpp @@ -110,7 +110,7 @@ void ocean_alt::fft_prime(double t){ Eigen::Vector2d k_normalized = k_vector.normalized(); m_displacements[i] += k_normalized*imag_comp; - m_slopes[i] += k_vector*imag_comp; + m_slopes[i] += -k_vector*imag_comp; } } @@ -271,7 +271,12 @@ std::vector ocean_alt::get_vertices() float zs = 1.f + s[2]*s[2]; Eigen::Vector3f diff = y - s; - Eigen::Vector3f norm = Eigen::Vector3f(diff[0]/ sqrt(xs), diff[1]/ sqrt(ys), diff[2]/sqrt(zs)); + // Eigen::Vector3f norm = Eigen::Vector3f(diff[0]/ sqrt(xs), diff[1]/ sqrt(ys), diff[2]/sqrt(zs)); + + // NEW + Eigen::Vector3f norm = Eigen::Vector3f(-slope[0], 1.0, -slope[1]); + norm.normalize(); + // NEW -- cgit v1.2.3-70-g09d2