From 9f9663fb475657f1160c0ee5c41892a981cf36bf Mon Sep 17 00:00:00 2001 From: Dynamitos Date: Sat, 27 Sep 2025 22:29:04 +0200 Subject: [PATCH] some things work, others dont --- res/shaders/FullScreenQuad.slang | 4 +++- src/Engine/Graphics/RenderPass/ShadowPass.cpp | 2 +- src/Engine/Graphics/Vulkan/Window.cpp | 10 +++++----- src/Engine/Math/Matrix.cpp | 2 +- src/Engine/Math/Transform.cpp | 2 +- 5 files changed, 11 insertions(+), 9 deletions(-) diff --git a/res/shaders/FullScreenQuad.slang b/res/shaders/FullScreenQuad.slang index ab135fb..5f1e1ef 100644 --- a/res/shaders/FullScreenQuad.slang +++ b/res/shaders/FullScreenQuad.slang @@ -9,6 +9,8 @@ QuadOutput quadMain(uint vertexIndex : SV_VertexID) { QuadOutput result; result.uv = float2(vertexIndex & 2, (vertexIndex << 1) & 2); - result.position = float4(result.uv * 2.0f + -1.0f, 0.0f, 1.0f); + float2 ndc = result.uv * 2.0f + -1.0f; + ndc.y = -ndc.y; // Flip Y for flipped viewport + result.position = float4(ndc, 0.0f, 1.0f); return result; } \ No newline at end of file diff --git a/src/Engine/Graphics/RenderPass/ShadowPass.cpp b/src/Engine/Graphics/RenderPass/ShadowPass.cpp index c2c9024..06ff2ac 100644 --- a/src/Engine/Graphics/RenderPass/ShadowPass.cpp +++ b/src/Engine/Graphics/RenderPass/ShadowPass.cpp @@ -76,8 +76,8 @@ void ShadowPass::beginFrame(const Component::Camera& camera, const Component::Tr float splitDist = cascadeSplits[i]; Array frustumCorners = { - Vector(-1.0f, 1.0f, 0.0f), Vector(1.0f, 1.0f, 0.0f), Vector(1.0f, -1.0f, 0.0f), Vector(-1.0f, -1.0f, 0.0f), Vector(-1.0f, 1.0f, 1.0f), Vector(1.0f, 1.0f, 1.0f), Vector(1.0f, -1.0f, 1.0f), Vector(-1.0f, -1.0f, 1.0f), + Vector(-1.0f, 1.0f, 0.0f), Vector(1.0f, 1.0f, 0.0f), Vector(1.0f, -1.0f, 0.0f), Vector(-1.0f, -1.0f, 0.0f), }; for (auto& c : frustumCorners) { diff --git a/src/Engine/Graphics/Vulkan/Window.cpp b/src/Engine/Graphics/Vulkan/Window.cpp index e6cf8e9..7b65ebd 100644 --- a/src/Engine/Graphics/Vulkan/Window.cpp +++ b/src/Engine/Graphics/Vulkan/Window.cpp @@ -292,10 +292,10 @@ void Window::createSwapChain() { } Viewport::Viewport(PWindow owner, const ViewportCreateInfo& viewportInfo) : Gfx::Viewport(owner, viewportInfo) { - handle.width = static_cast(sizeX); - handle.height = static_cast(sizeY); handle.x = static_cast(offsetX); - handle.y = static_cast(offsetY); + handle.y = static_cast(offsetY + sizeY); + handle.width = static_cast(sizeX); + handle.height = -static_cast(sizeY); handle.minDepth = 1.f; handle.maxDepth = 0.f; } @@ -306,12 +306,12 @@ void Viewport::resize(uint32 newX, uint32 newY) { sizeX = newX; sizeY = newY; handle.width = static_cast(sizeX); - handle.height = static_cast(sizeY); + handle.height = -static_cast(sizeY); } void Viewport::move(uint32 newOffsetX, uint32 newOffsetY) { offsetX = newOffsetX; offsetY = newOffsetY; handle.x = static_cast(offsetX); - handle.y = static_cast(offsetY); + handle.y = static_cast(offsetY + sizeY); } diff --git a/src/Engine/Math/Matrix.cpp b/src/Engine/Math/Matrix.cpp index 855b545..00eae60 100644 --- a/src/Engine/Math/Matrix.cpp +++ b/src/Engine/Math/Matrix.cpp @@ -12,7 +12,7 @@ Matrix4 Seele::perspectiveProjection(float fov, float aspect, float nearPlane, f }, { 0.0f, - -e, + e, 0.0f, 0.0f, }, diff --git a/src/Engine/Math/Transform.cpp b/src/Engine/Math/Transform.cpp index a886e15..1a61130 100644 --- a/src/Engine/Math/Transform.cpp +++ b/src/Engine/Math/Transform.cpp @@ -52,7 +52,7 @@ void Transform::setScale(Vector s) { scale = Vector4(s, 0); } Vector Transform::getForward() const { return glm::normalize(Vector(0, 0, 1) * rotation); } -Vector Transform::getRight() const { return glm::normalize(Vector(-1, 0, 0) * rotation); } +Vector Transform::getRight() const { return glm::normalize(Vector(1, 0, 0) * rotation); } Vector Transform::getUp() const { return glm::normalize(Vector(0, 1, 0) * rotation); }