From d0ae24147931268028d8bd372fb66eef19e23fe7 Mon Sep 17 00:00:00 2001 From: ink-soul Date: Tue, 23 Apr 2024 10:42:15 +0800 Subject: [PATCH] flip cubemap --- base/camera.hpp | 2 +- base/renderConfig.h | 2 +- base/vulkanexamplebase.cpp | 2 +- base/vulkanexamplebase.h | 2 +- src/render/render.cpp | 13 +++++++++---- 5 files changed, 13 insertions(+), 8 deletions(-) diff --git a/base/camera.hpp b/base/camera.hpp index a62449d..ccf6728 100644 --- a/base/camera.hpp +++ b/base/camera.hpp @@ -41,7 +41,7 @@ private: } else { - matrices.view = LookAt(position, to, up, true, true); + matrices.view = LookAt(position, to, up, false, true); } viewPos = glm::vec4(position, 0.0f) * glm::vec4(-1.0f, 1.0f, -1.0f, 1.0f); diff --git a/base/renderConfig.h b/base/renderConfig.h index d55770b..0c0c8f4 100644 --- a/base/renderConfig.h +++ b/base/renderConfig.h @@ -76,7 +76,7 @@ namespace PlumageConfig struct FilePath { //model path - std::string glTFModelFilePath = getAssetPath() + "models/DamagedHelmet/DamagedHelmet.gltf"; + std::string glTFModelFilePath = getAssetPath() + "models/free_porsche_911_carrera_4s.glb"; std::string modelVertShaderPath = getAssetPath() + "buster_drone/shaders/glsl/mesh.vert.spv"; std::string modelFragShaderPath = getAssetPath() + "buster_drone/shaders/glsl/mesh.frag.spv"; diff --git a/base/vulkanexamplebase.cpp b/base/vulkanexamplebase.cpp index c39285f..24e8ad6 100644 --- a/base/vulkanexamplebase.cpp +++ b/base/vulkanexamplebase.cpp @@ -331,7 +331,7 @@ void VulkanExampleBase::renderFrame() void VulkanExampleBase::renderLoop() { - uint32_t currentFrame = 0; + while (!signal.imageSequenceToVideoComplete) { diff --git a/base/vulkanexamplebase.h b/base/vulkanexamplebase.h index e66dea5..4ebdaa2 100644 --- a/base/vulkanexamplebase.h +++ b/base/vulkanexamplebase.h @@ -92,7 +92,7 @@ public: uint32_t selectedPhysicalDeviceIndex = 0; bool prepared = false; - + uint32_t currentFrame = 0; float frameTimer = 1.0f; Camera camera; glm::vec2 mousePos; diff --git a/src/render/render.cpp b/src/render/render.cpp index 38c01e2..ca6a91b 100644 --- a/src/render/render.cpp +++ b/src/render/render.cpp @@ -1047,6 +1047,9 @@ PlumageRender::PlumageRender() viewport.height = (float)dim; viewport.minDepth = 0.0f; viewport.maxDepth = 1.0f; + viewport.x = 0; + + VkRect2D scissor{}; scissor.extent.width = dim; @@ -1079,7 +1082,9 @@ PlumageRender::PlumageRender() vulkanDevice->beginCommandBuffer(cmdBuf); viewport.width = static_cast(dim * std::pow(0.5f, m)); - viewport.height = static_cast(dim * std::pow(0.5f, m)); + viewport.height = -static_cast(dim * std::pow(0.5f, m)); + viewport.x = 0; + viewport.y = -viewport.height; vkCmdSetViewport(cmdBuf, 0, 1, &viewport); vkCmdSetScissor(cmdBuf, 0, 1, &scissor); @@ -1142,7 +1147,7 @@ PlumageRender::PlumageRender() copyRegion.dstOffset = { 0, 0, 0 }; copyRegion.extent.width = static_cast(viewport.width); - copyRegion.extent.height = static_cast(viewport.height); + copyRegion.extent.height = -static_cast(viewport.height); copyRegion.extent.depth = 1; vkCmdCopyImage( @@ -1517,7 +1522,7 @@ PlumageRender::PlumageRender() camera.position.z * cos(glm::radians(camera.rotation.y)) * cos(glm::radians(camera.rotation.x)) ); */ - shaderDataScene.camPos = settings.cameraTracks[] + shaderDataScene.camPos = settings.cameraTracks[currentFrame]; // Skybox @@ -1545,7 +1550,7 @@ PlumageRender::PlumageRender() camera.type = Camera::CameraType::lookat; - camera.setProjectionMatrix(settings.fX,settings.fY,settings.cX,settings.cY,1.f, 256.f,settings.calibrationWidth,settings.calibrationHeight,true,true); + camera.setProjectionMatrix(settings.fX,settings.fY,settings.cX,settings.cY,1.f, 256.f,settings.calibrationWidth,settings.calibrationHeight,false,true); //camera.setPerspective(settings.fX, settings.fY, settings.cX, settings.cY, 1.0f, 256.0f); camera.setTo(settings.bottomCenter); camera.setUp(settings.bottomNormal);