From 575132c4bb7bfe67564f7106e2972e9884b7c9a8 Mon Sep 17 00:00:00 2001 From: Brandon Mak Date: Sun, 20 Nov 2022 01:38:26 +0800 Subject: [PATCH] Added UI Component check in SHBatch - UI Component shader changes - Fixed picking issue --- Assets/Shaders/UI_FS.glsl | 2 ++ Assets/Shaders/UI_FS.shshaderb | Bin 1877 -> 2005 bytes Assets/Shaders/UI_VS.glsl | 2 ++ Assets/Shaders/UI_VS.shshaderb | Bin 3797 -> 3909 bytes SHADE_Engine/src/Camera/SHCameraSystem.cpp | 2 +- .../Graphics/MiddleEnd/Batching/SHBatch.cpp | 9 ++++++++- .../MiddleEnd/Interface/SHGraphicsSystem.cpp | 4 ++-- 7 files changed, 15 insertions(+), 4 deletions(-) diff --git a/Assets/Shaders/UI_FS.glsl b/Assets/Shaders/UI_FS.glsl index 85cf6ef6..4f919a04 100644 --- a/Assets/Shaders/UI_FS.glsl +++ b/Assets/Shaders/UI_FS.glsl @@ -41,6 +41,8 @@ layout(location = 4) out vec4 albedo; void main() { + position = In.vertPos; + normals = In.normal; albedo = vec4(1.0f); outEntityID = In2.eid; diff --git a/Assets/Shaders/UI_FS.shshaderb b/Assets/Shaders/UI_FS.shshaderb index 9c8800e0e6250c2ba8a453474bfaee5ade383eef..6be9c5654cc2abe3b0affaa1a2ec6269f880ed05 100644 GIT binary patch literal 2005 zcmY+ETTc{05QQ7|BH{%Q6&1xryo0ECiHT98k*p+ZAnJo}lV-Pp)?sFyoh9<-Z}Zt7 zt>z%=|No{qVI$c#=UBmRRVy*GX40H8k4BK0G2=pvIboVXw>uv@tAo6^ z`uNEMD5p&=FyTy@lcp|>>|3AUI4(IQnU%~*E=#UTu1ltM7B1;)`Wu)2sX%p|YIma7 zAKpX**SDF?T{PIUJ(or4_7~U92mf>A^2u%#+hliWcU|;&?LpsmzbeiIan?V7ijp)L zCVnT)_M>k@8~YvaGWjR*w>LN2o%N{O??;3DFm_Sw6BqS-rcD08kt@V0cs}XI!(Nrp z5TknMhG~R*_tSyTeH!}E(EU#6eypba<^I5B`Bpj*Ru33`93K4R(33=E+t}z-E%b6j z5y?qUN4`O@>938qT`$Go2)#~+`FfK3{BYx~keaz74y&oIm-~G+IP*5%NP6yj@YREl zTAc44aj7NtyL)-Z9=dGACMNH>k*q2HvGA_{aeUY5xk5cF(z*Md53>LTY*pBMn{Q=l z|EpZFjr)5x@Ed{8WNteJ)uJ{AR=L7mNvPI)D&alC zFw5Vgh`_I#wGkhxX{+DN@&ZmRZ05RZ^B&mb#m{?SGaJ~EvEZ+w< z_u?$QyCz|k_M-O0dZ+r!o-IMpDlzMHGdF>lKOkNCv7Bf)=J_FZZGVB}ktW`R>5HgnD5P47vQ zZ*<3Im}z>(J;Cu`k(b$I-WRlI2C<3%P@1;@BR)2B3HDSyLo;72a{Lz3kbbRS-g-vD zd@utq#3c6_3HVE$VE(X6{yFX8GXo|6y!PPmnH6mI%mr`H*+uDV65ggI;Vivdl7PeK bt+7k~4ejBVx!~WFfWznAu>Yw0&m?~VWLUAX literal 1877 zcmY+ET~8B16ov;%3-YZ9hMUH+m-OkE{;fa*I#sI&d!Ii9 zZP&7iO@yU1BNZYqLa{1^i2yJxMv1cyW-Pvy0#t+3ABF@3LuR##L7Cz?dd{cIp z%dA3wcAnPlwM)8eVlwB$Xh-n}vw7d*_=eNyvfK;Otct8+f9aC+IBsV-!N}RUyy1{D z(gXzy6vG%FEN;^rGBE!~%eX{9s61VnkYO`EmtVSHhi8TFykt;u6wEmw@ zUK_T~ZN@KWd|us&Q&25>eJZV7+3ZNDRy>u^A3j!-BDA=l=hAs?S*^UuR^0ZfkF$3R zhd0{ow{2?qozgRRjm@26Q+q9+Js3Xj0Uvc@7jK_lu<;=*Z05I;SvU5wY+`>@g~i-f zb54Qb2jh(t7&*Z1_h8fkR+W%%UAiLKmT<0^5gZo%fN>5!^P;|9oBCMznO|=|%&zEv zO22GsTGnaKv!Bt9{8h=U&hsCD&1|ds9+HL&{wBBiO@VF5hC3`V=GXg8vEYqJzELHa7PL27f}jD(RCfX*SFj41PD(fc_V|etg8h=FT}oeekDpo1EMQ zzTTX?iJ~9)4EWy7Zdquh`0VCh4Gz*-3*t}a7H9wIiA3ZH;wy*?1HED~Ahmyi?y~@50KBXll>h($ delta 74 zcmX>qcU4x5@eCgW7%(#_vokO-GH@~QGE`0!%VwGe3xGV-08Kv}Ryo VFa;{F*!+#-IV;Cspn3}+1^_*457Gbt diff --git a/SHADE_Engine/src/Camera/SHCameraSystem.cpp b/SHADE_Engine/src/Camera/SHCameraSystem.cpp index 78dabc37..489b05a1 100644 --- a/SHADE_Engine/src/Camera/SHCameraSystem.cpp +++ b/SHADE_Engine/src/Camera/SHCameraSystem.cpp @@ -246,7 +246,7 @@ namespace SHADE camera.orthoProjMatrix(2, 3) = -n / (f-n); camera.orthoProjMatrix(3, 3) = 1.0f; - camera.orthoProjMatrix = SHMatrix::OrthographicRH(camera.GetWidth(), camera.GetHeight(), camera.GetNear(), camera.GetFar()); + //camera.orthoProjMatrix = SHMatrix::OrthographicRH(camera.GetWidth(), camera.GetHeight(), camera.GetNear(), camera.GetFar()); //camera.projMatrix.Transpose(); camera.dirtyProj = false; diff --git a/SHADE_Engine/src/Graphics/MiddleEnd/Batching/SHBatch.cpp b/SHADE_Engine/src/Graphics/MiddleEnd/Batching/SHBatch.cpp index 2bcad441..9b4b02b0 100644 --- a/SHADE_Engine/src/Graphics/MiddleEnd/Batching/SHBatch.cpp +++ b/SHADE_Engine/src/Graphics/MiddleEnd/Batching/SHBatch.cpp @@ -28,6 +28,7 @@ of DigiPen Institute of Technology is prohibited. #include "Graphics/MiddleEnd/GlobalData/SHGraphicsGlobalData.h" #include "Graphics/Descriptors/SHVkDescriptorPool.h" #include "Scene/SHSceneManager.h" +#include "UI/SHUIComponent.h" namespace SHADE { @@ -309,7 +310,13 @@ namespace SHADE { if (SHSceneManager::CheckNodeAndComponentsActive(rendId)) { - transformData.emplace_back(transform->GetTRS()); + auto uiComp = SHComponentManager::GetComponent_s(rendId); + if (uiComp) + { + transformData.emplace_back(uiComp->GetMatrix()); + } + else + transformData.emplace_back(transform->GetTRS()); } else { diff --git a/SHADE_Engine/src/Graphics/MiddleEnd/Interface/SHGraphicsSystem.cpp b/SHADE_Engine/src/Graphics/MiddleEnd/Interface/SHGraphicsSystem.cpp index c36742cc..3932298c 100644 --- a/SHADE_Engine/src/Graphics/MiddleEnd/Interface/SHGraphicsSystem.cpp +++ b/SHADE_Engine/src/Graphics/MiddleEnd/Interface/SHGraphicsSystem.cpp @@ -186,7 +186,7 @@ namespace SHADE //worldRenderGraph->AddResource("Tangents", { SH_ATT_DESC_TYPE_FLAGS::COLOR, SH_ATT_DESC_TYPE_FLAGS::INPUT, SH_ATT_DESC_TYPE_FLAGS::STORAGE }, windowDims.first, windowDims.second, vk::Format::eR32G32B32A32Sfloat); worldRenderGraph->AddResource("Albedo", { SH_RENDER_GRAPH_RESOURCE_FLAGS::COLOR, SH_RENDER_GRAPH_RESOURCE_FLAGS::INPUT, SH_RENDER_GRAPH_RESOURCE_FLAGS::STORAGE }, windowDims.first, windowDims.second); worldRenderGraph->AddResource("Depth Buffer", { SH_RENDER_GRAPH_RESOURCE_FLAGS::DEPTH_STENCIL }, windowDims.first, windowDims.second, vk::Format::eD32SfloatS8Uint); - worldRenderGraph->AddResource("Entity ID", { SH_RENDER_GRAPH_RESOURCE_FLAGS::COLOR }, windowDims.first, windowDims.second, vk::Format::eR32Uint, 1, vk::ImageUsageFlagBits::eTransferSrc); + worldRenderGraph->AddResource("Entity ID", { SH_RENDER_GRAPH_RESOURCE_FLAGS::COLOR, SH_RENDER_GRAPH_RESOURCE_FLAGS::SHARED }, windowDims.first, windowDims.second, vk::Format::eR32Uint, 1, vk::ImageUsageFlagBits::eTransferSrc); worldRenderGraph->AddResource("Light Layer Indices", { SH_RENDER_GRAPH_RESOURCE_FLAGS::COLOR, SH_RENDER_GRAPH_RESOURCE_FLAGS::INPUT, SH_RENDER_GRAPH_RESOURCE_FLAGS::STORAGE }, windowDims.first, windowDims.second, vk::Format::eR32Uint, 1, vk::ImageUsageFlagBits::eTransferSrc); worldRenderGraph->AddResource("Scene", { SH_RENDER_GRAPH_RESOURCE_FLAGS::COLOR, SH_RENDER_GRAPH_RESOURCE_FLAGS::INPUT, SH_RENDER_GRAPH_RESOURCE_FLAGS::STORAGE, SH_RENDER_GRAPH_RESOURCE_FLAGS::SHARED }, windowDims.first, windowDims.second); worldRenderGraph->AddResource("SSAO", { SH_RENDER_GRAPH_RESOURCE_FLAGS::COLOR, SH_RENDER_GRAPH_RESOURCE_FLAGS::INPUT, SH_RENDER_GRAPH_RESOURCE_FLAGS::STORAGE }, windowDims.first, windowDims.second, vk::Format::eR8Unorm); @@ -285,7 +285,7 @@ namespace SHADE /*-----------------------------------------------------------------------*/ // Initialize screen render graph screenRenderGraph = resourceManager.Create(); - screenRenderGraph->Init("Scene Render Graph", device, swapchain, &resourceManager); + screenRenderGraph->Init("Screen Render Graph", device, swapchain, &resourceManager); screenRenderGraph->LinkNonOwningResource(worldRenderGraph, "Scene"); screenRenderGraph->LinkNonOwningResource(worldRenderGraph, "Entity ID"); screenRenderGraph->AddResource("Present", { SH_RENDER_GRAPH_RESOURCE_FLAGS::COLOR_PRESENT }, windowDims.first, windowDims.second);