From 3dda65e462bd7ffc76fc0892c55f90f5aef1440d Mon Sep 17 00:00:00 2001 From: benpm Date: Sat, 18 Mar 2023 11:31:19 -0600 Subject: [PATCH] spot light stuff done except it sucks --- include/app.hpp | 1 + reports/2023-03-16-22-06-47.png | Bin 0 -> 93930 bytes reports/project7.md | 9 ++++++--- resources/shaders/basic.frag | 5 +++-- src/app.cpp | 26 +++++++++++++++++--------- 5 files changed, 27 insertions(+), 14 deletions(-) create mode 100644 reports/2023-03-16-22-06-47.png diff --git a/include/app.hpp b/include/app.hpp index 9b9a9eb..d990ac2 100644 --- a/include/app.hpp +++ b/include/app.hpp @@ -101,6 +101,7 @@ class App entt::entity ePlane; entt::entity eSelectPoint; entt::entity eDragArrow; + entt::entity eSpotLight; Vector3f selectPoint; entt::entity eSelected = entt::null; diff --git a/reports/2023-03-16-22-06-47.png b/reports/2023-03-16-22-06-47.png new file mode 100644 index 0000000000000000000000000000000000000000..ea22b6c7b3f21e38971ea91b232d08374438dbd9 GIT binary patch literal 93930 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 l&@>3h6@x`_> What you implemented -- Point light shadows +- Spot light shadows +- Control spot light orientation with shift + left click > What you could not implement -WIP +- There are issues with the spot light shadow projection that I don't understand :( > Additional functionalities beyond project requirements -WIP +- Point light shadows (they are implemented but not accessible) > How to use your implementation diff --git a/resources/shaders/basic.frag b/resources/shaders/basic.frag index a266012..d3e6a1c 100644 --- a/resources/shaders/basic.frag +++ b/resources/shaders/basic.frag @@ -158,10 +158,11 @@ void main() { // C *= shadow; // float shadow = textureProj(uSpotShadowMap, vec4(v.x, v.y, v.z / uFarPlane, v.w)); // C = vec3(shadow); - float shadow = textureProj(uSpotShadowMap, vec4( + float shadow = texture(uSpotShadowMap, vec3( (v.x / 2.0) / v.w + 0.5, (v.y / 2.0) / v.w + 0.5, - dist / uFarPlane - 0.005, 1.0)); + dist / uFarPlane - 0.005)); + // float shadow = texture(uSpotShadowMap, v.xyz / v.w); C *= shadow; C = mix(C, mat.emissionColor, mat.emissionFactor); diff --git a/src/app.cpp b/src/app.cpp index 4fca604..db74053 100644 --- a/src/app.cpp +++ b/src/app.cpp @@ -306,7 +306,7 @@ App::App(cxxopts::ParseResult& args) { this->spotShadowCamera->orbitDist(5.0f); this->spotShadowCamera->orbitTheta(tau4); this->spotShadowCamera->orbitPhi(0.0f); - entt::entity e = this->makeSpotLight( + this->eSpotLight = this->makeSpotLight( this->spotShadowCamera->pos, -direction(this->spotShadowCamera->rot), Vector3f(1.0f, 1.0f, 0.9f), @@ -615,6 +615,7 @@ void App::onClick(int button, bool pressed) { case GLFW_MOUSE_BUTTON_LEFT: this->mouseLeft = pressed; this->camera->dragStart(); + this->spotShadowCamera->dragStart(); break; case GLFW_MOUSE_BUTTON_RIGHT: this->mouseRight = pressed; @@ -745,7 +746,14 @@ void App::simulate(float dt) { dragDelta = panDelta * 2.0f; dragDelta.y() *= -1.0f; } - this->camera->control(-this->mouseDeltaPos * dt * 0.15f, dragDelta, keyboardDelta * dt * 20.0f); + if (this->pressedKeys.count(GLFW_KEY_LEFT_SHIFT)) { + this->spotShadowCamera->control(-this->mouseDeltaPos * dt * 0.15f, dragDelta, keyboardDelta * dt * 20.0f); + Light& spotLight = this->reg.get(this->eSpotLight); + spotLight.pos = this->spotShadowCamera->pos; + spotLight.dir = -direction(this->spotShadowCamera->rot); + } else { + this->camera->control(-this->mouseDeltaPos * dt * 0.15f, dragDelta, keyboardDelta * dt * 20.0f); + } // Physics simulation // constexpr float dampingFactor = 0.25f; @@ -1189,15 +1197,15 @@ entt::entity App::makeSpotLight(const Vector3f& pos, const Vector3f& dir, const this->reg.emplace(e); - DebugRay& debugRay = this->reg.emplace(e); - debugRay.pos = pos; - debugRay.rot = vec3(pointSphere(dir)); + // DebugRay& debugRay = this->reg.emplace(e); + // debugRay.pos = pos; + // debugRay.rot = vec3(pointSphere(dir)); - RayTransform& rayTransform = this->reg.emplace(e); - rayTransform.transform = debugRay.transform(); + // RayTransform& rayTransform = this->reg.emplace(e); + // rayTransform.transform = debugRay.transform(); - DebugColor& debugColor = this->reg.emplace(e); - debugColor.color = {1.0f, 1.0f, 0.2f, 1.0f}; + // DebugColor& debugColor = this->reg.emplace(e); + // debugColor.color = {1.0f, 1.0f, 0.2f, 1.0f}; return e; } \ No newline at end of file