2 Commits

Author SHA1 Message Date
antopilo
e8e713253e Fixed compilation errors 2025-04-29 22:30:56 -04:00
antopilo
6f9f3a96e2 NEw splash screen + can now see editor cam in camera preview 2025-04-29 22:30:44 -04:00
5 changed files with 55 additions and 5 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 170 KiB

After

Width:  |  Height:  |  Size: 152 KiB

View File

@@ -5,6 +5,7 @@
#include "Nuake/Core/Core.h"
#include "Nuake/Rendering/Vulkan/SceneViewport.h"
#include "Nuake/Rendering/Vulkan/DebugCmd.h"
class CameraPanel
{
@@ -22,6 +23,56 @@ public:
previewViewport = vkRenderer.CreateViewport(viewId, { 200, 200 });
previewViewport->SetDebugName("CameraPreviewViewport");
previewViewport->GetOnDebugDraw().AddStatic([&, componentPtr](DebugCmd& cmd)
{
Matrix4 transform = Matrix4(1.0f);
auto& cam = cmd.GetScene()->m_EditorCamera;
Matrix4 initialTransform = Matrix4(1.0f);
initialTransform = glm::translate(initialTransform, cam->Translation);
Matrix4 gizmoTransform = initialTransform;
gizmoTransform = glm::inverse(componentPtr->CameraInstance->GetTransform());
gizmoTransform[3] = initialTransform[3];
auto view = componentPtr->CameraInstance->GetTransform();
auto proj = componentPtr->CameraInstance->GetPerspective();
static auto getGizmoScale = [](const Vector3& camPosition, const Nuake::Vector3& position) -> float
{
float distance = Distance(camPosition, position);
constexpr float ClosestDistance = 3.5f;
if (distance < ClosestDistance)
{
float fraction = distance / ClosestDistance;
return fraction;
}
return 1.0f;
};
Vector3 cameraPosition = componentPtr->CameraInstance->Translation;
const Vector3 gizmoSize = Vector3(Engine::GetProject()->Settings.GizmoSize);
gizmoTransform = glm::scale(gizmoTransform, gizmoSize * getGizmoScale(cameraPosition, initialTransform[3]));
cmd.DrawTexturedQuad(proj * view * gizmoTransform, TextureManager::Get()->GetTexture2("Resources/Gizmos/Camera.png"), Engine::GetProject()->Settings.PrimaryColor);
});
previewViewport->GetOnLineDraw().AddStatic([&, componentPtr](DebugCmd& cmd)
{
auto& cam = cmd.GetScene()->m_EditorCamera;
Matrix4 initialTransform = Matrix4(1.0f);
initialTransform = glm::translate(initialTransform, cam->Translation);
const float aspectRatio = cam->AspectRatio;
const float fov = cam->Fov;
Matrix4 clampedProj = glm::perspectiveFov(glm::radians(fov), 9.0f * aspectRatio, 9.0f, 0.05f, 3.0f);
Matrix4 boxTransform = glm::translate(scene->GetCurrentCamera()->GetTransform(), Vector3(transform.GetGlobalTransform()[3])) * rotationMatrix * glm::inverse(clampedProj);
lineCmd.DrawBox(proj * boxTransform, Color(1, 0, 0, 1.0f), 1.5f, false);
});
vkRenderer.RegisterSceneViewport(scene->Shared(), previewViewport->GetID());
}

View File

@@ -119,7 +119,7 @@ BindlessDescriptor::BindlessDescriptor(ResourceType type, BindlessInfo& info)
{
const size_t offset = i * size;
uint8_t* partitionStart = static_cast<uint8_t*>(mappedData) + offset;
Descriptors.emplace_back(Descriptor(Buffer, DescriptorLayout, partitionStart, offset, size));
Descriptors.emplace_back(Buffer, DescriptorLayout, partitionStart, offset, size, info);
}
}

View File

@@ -54,8 +54,7 @@ namespace Nuake
~Descriptor() = default;
int32_t LoadResource(const UUID& id);
int32_t GetResourceSlot(const UUID& id);
int32_t GetResourceSlot(const UUID& id) const;
};
// Contains buffer for N frames of a resource type
@@ -98,7 +97,7 @@ namespace Nuake
{
Info.ResourceElementSize[T] = sizeof(S);
Info.ResourceCount[T] = size;
Descriptors[T] = BindlessDescriptor(T, (size_t)sizeof(S) * size);
//Descriptors[T] = BindlessDescriptor(T, Info);
}
};
}

View File

@@ -34,7 +34,7 @@ ShadowRenderPipeline::ShadowRenderPipeline()
shadowPass.SetShaders(shaderMgr.GetShader("shadow_vert"), shaderMgr.GetShader("shadow_frag"));
shadowPass.SetPushConstant<GBufferConstant>(gbufferConstant);
shadowPass.SetPreRender([&](PassRenderContext& ctx) {
auto& layout = ctx.renderPass->PipelineLayout;
auto& layout = ctx.renderPass->PipelineLayout;
auto& res = GPUResources::Get();
Cmd& cmd = ctx.commandBuffer;