From e9452093f0eb6fc8b09491f0540e5bbc7dca9f9f Mon Sep 17 00:00:00 2001 From: Brandon Mak Date: Tue, 31 Jan 2023 15:17:40 +0800 Subject: [PATCH] Fixed UI --- Assets/Application.SHConfig | 2 +- Assets/Materials/UIMat_LoseScene.shmat | 2 +- Assets/Materials/UIMat_MainMenu.shmat | 2 +- Assets/Materials/UIMat_WinScene.shmat | 2 +- Assets/Shaders/UI_FS.glsl | 11 ++----- Assets/Shaders/UI_FS.shshaderb | Bin 2285 -> 1941 bytes SHADE_Engine/src/Camera/SHCameraSystem.cpp | 2 +- .../MiddleEnd/Interface/SHGraphicsSystem.cpp | 29 ++++++++---------- .../Graphics/RenderGraph/SHRenderGraph.cpp | 12 +++++++- .../src/Graphics/RenderGraph/SHRenderGraph.h | 2 +- 10 files changed, 31 insertions(+), 33 deletions(-) diff --git a/Assets/Application.SHConfig b/Assets/Application.SHConfig index ee5e42a8..5673556d 100644 --- a/Assets/Application.SHConfig +++ b/Assets/Application.SHConfig @@ -1,4 +1,4 @@ Start in Fullscreen: false -Starting Scene ID: 87244611 +Starting Scene ID: 97158628 Window Size: {x: 1920, y: 1080} Window Title: SHADE Engine \ No newline at end of file diff --git a/Assets/Materials/UIMat_LoseScene.shmat b/Assets/Materials/UIMat_LoseScene.shmat index b962f5ad..5be3677e 100644 --- a/Assets/Materials/UIMat_LoseScene.shmat +++ b/Assets/Materials/UIMat_LoseScene.shmat @@ -1,6 +1,6 @@ - VertexShader: 46580970 FragmentShader: 35983630 - SubPass: G-Buffer Write + SubPass: UI Properties: data.color: {x: 1, y: 1, z: 1, w: 1} data.textureIndex: 54324293 diff --git a/Assets/Materials/UIMat_MainMenu.shmat b/Assets/Materials/UIMat_MainMenu.shmat index 625021b0..0ca4c7a1 100644 --- a/Assets/Materials/UIMat_MainMenu.shmat +++ b/Assets/Materials/UIMat_MainMenu.shmat @@ -1,6 +1,6 @@ - VertexShader: 46580970 FragmentShader: 35983630 - SubPass: G-Buffer Write + SubPass: UI Properties: data.color: {x: 1, y: 1, z: 1, w: 1} data.textureIndex: 54429632 diff --git a/Assets/Materials/UIMat_WinScene.shmat b/Assets/Materials/UIMat_WinScene.shmat index b8d5b183..e9c36f65 100644 --- a/Assets/Materials/UIMat_WinScene.shmat +++ b/Assets/Materials/UIMat_WinScene.shmat @@ -1,6 +1,6 @@ - VertexShader: 46580970 FragmentShader: 35983630 - SubPass: G-Buffer Write + SubPass: UI Properties: data.color: {x: 1, y: 1, z: 1, w: 1} data.textureIndex: 57302694 diff --git a/Assets/Shaders/UI_FS.glsl b/Assets/Shaders/UI_FS.glsl index 0c4c526c..a28642f4 100644 --- a/Assets/Shaders/UI_FS.glsl +++ b/Assets/Shaders/UI_FS.glsl @@ -33,18 +33,11 @@ layout (std430, set = 2, binding = 0) buffer MaterialProperties // For mater MatPropData data[]; } MatProp; -layout(location = 0) out vec4 position; +layout(location = 0) out vec4 fragColor; layout(location = 1) out uint outEntityID; -layout(location = 2) out uint lightLayerIndices; -layout(location = 3) out vec4 normals; -layout(location = 4) out vec4 albedo; void main() { - position = In.vertPos; - normals = In.normal; - albedo = texture(textures[nonuniformEXT(MatProp.data[In2.materialIndex].textureIndex)], In.uv); - + fragColor = texture(textures[nonuniformEXT(MatProp.data[In2.materialIndex].textureIndex)], In.uv); outEntityID = In2.eid; - lightLayerIndices = In2.lightLayerIndex; } \ No newline at end of file diff --git a/Assets/Shaders/UI_FS.shshaderb b/Assets/Shaders/UI_FS.shshaderb index 703040e1a63c9c59d398cc68a6df7121a76c6b39..ce1dd7e9c0a416be4f198d797c9709fa254dd63e 100644 GIT binary patch literal 1941 zcmY+E+fEZv6o$97ML-b{0Tsmpo>4$VV`4NxCACQnM2vbj*|eK7I?UARl*l{yIO>ge zK9x5n{@)y+ZnC=8`qz2wJ&b=lZPHU3Sd?_ijF?gLFoVp584zMp{^LT%f9Cv`_=p)Y zJKOKQ&5!TAmg_cSzmr6<=Z7u#)eqa|j2TShYmJ@8ayMx$uRmHP^*K{YE0BB444bkz zbYT4u!?5VG=#FSbG%kPav|7^NfcS3(m*rV&cpGnDcwN`Au}z%U-M1|ld(rME*G#(q z`^coWyugO-o^3mCeQmX4o1c|uh&+rDMqw}X_oDc~`_i+4zvsJH_7Uv0t*u&P(`$A* zUN<=koEP|^^ICqaO8%jvR+=aG^TTG)YxO%+W}!$|*+P-rR4d}U)zOA}m8~f&s zMZIJ*O#I}i{>s#pgEu%Q;-GUU3#oRZ&r7GyYvm~JVlnqAFzjICeSY);rcdZNmOB8e zil}#9d{D#(L#|@)_;6~P0gO2OxdZwmccIfC2VeHb4A_vFEsHIsao^Ppe%FN;@{MD; zobIcCAM6aB`6gABy7P)BC-Sr;`mc&+RFiKPo%dhW?~pjY;7@a%or7J{_D96=Cx8Db z^jUeHkpaJ}lFy2xlY3O014eFiX6H;v9}};N$VG454YjB}CyBeHFZ{rrQ#OL@I%$sFp>h*wc`=5)7w2h;-3Y-Q~r>kk__(YZHzrsixe6IawI z?gRTZ;ndG&EvIiwYPut4zA2g6@Sz93BW4DNljF8H^{~+cI{%Z49`5EcG59ZwvqNUU zAAKdqu=AFQ#r{||sm*)f5cfw&MSMfQ%y&h^%S X15xqKQHS~0avXnlg#K6Cc_R7;_oT5} literal 2285 zcmY+FZF3Yw5XUFnU5Mc+h=7R14N*YRh%q3FP!)^RnX0o$8B2Y)HMt#<(ar9;yO$#0 zOMT-zKZ_rNH&prm&FzGxt2+JkpPufX-pkT|3nozS)aq$t=FFlwXP(Sl=AtovUnT16)Nqt;{`g&5 zyNRuAbL^ObJ$M~=Hfo)+heaX!tufPoO*o(EV;WuD8p4{YW@ocF+HH?VmRdW53ABAwd5*X=RaDgaUR5y!XG@zEbXeYz(& z?!}jg$^U`myqFJ_T!|zE1{$i;M3QshsSPG~v{$46#j5A){CoS6Ll24HjFCH+ON=sfkHUy(-riTJAU{7zsq&qROuxdV&;QET%?_`okp zf+yFq`sbSiiyujjvy#+9j2zg!E56IJ={ITZyRCgeHpF?}1Z=kk_JA59o;RX~SR;Eu z{F*lET}f&rN0*{~UC3(+fV(06JxOftzAg#jBR4iX2GRcwNpf@7vNUE*o%DpCI62u9 zV$0GKNo?}3NK$tqCO`H~F+OIqDw&8O=F4|TZv3-Y-+Ux}PE3p(*tc3Acie7u&c%6s z(uv=d&V93Y=$p@_LvaS{(#g-8lJ9{e{c=C|Ve|h6AMuBh;Jb15koW`jz+LPYgzu$1 z1IbPO<*hG@*$;N$v5?I3Z882QI>G*7NBm{!;MswQzakw!cy>;FX< zdcH5_9De#>r}2@48GkLNkC=mbf7ANG^Cs94|E+ZJaZcbLi}8c!jj&(o^&X1<2dFg4 A;s5{u diff --git a/SHADE_Engine/src/Camera/SHCameraSystem.cpp b/SHADE_Engine/src/Camera/SHCameraSystem.cpp index 6feece48..8b78045a 100644 --- a/SHADE_Engine/src/Camera/SHCameraSystem.cpp +++ b/SHADE_Engine/src/Camera/SHCameraSystem.cpp @@ -314,7 +314,7 @@ namespace SHADE camera.orthoProjMatrix(3, 3) = 1.0f; //camera.perspProjMatrix = SHMatrix::OrthographicLH(9.0f, 9.0f, 0.1f, 20.0f); - camera.orthoProjMatrix = SHMatrix::OrthographicRH(camera.GetWidth(), camera.GetHeight(), camera.GetNear(), camera.GetFar()); + //camera.orthoProjMatrix = SHMatrix::OrthographicLH(camera.GetWidth(), camera.GetHeight(), camera.GetNear(), camera.GetFar()); //camera.perspProjMatrix = SHMatrix::OrthographicLH(5.0f, 5.0f, 0.1f, 20.0f); //camera.projMatrix.Transpose(); diff --git a/SHADE_Engine/src/Graphics/MiddleEnd/Interface/SHGraphicsSystem.cpp b/SHADE_Engine/src/Graphics/MiddleEnd/Interface/SHGraphicsSystem.cpp index 6914df49..a416b149 100644 --- a/SHADE_Engine/src/Graphics/MiddleEnd/Interface/SHGraphicsSystem.cpp +++ b/SHADE_Engine/src/Graphics/MiddleEnd/Interface/SHGraphicsSystem.cpp @@ -127,12 +127,15 @@ namespace SHADE SHFreetypeInstance::Init(); - SHAssetManager::CompileAsset("../../Assets/Shaders/DeferredComposite_CS.glsl", false); - SHAssetManager::CompileAsset("../../Assets/Shaders/SSAO_CS.glsl", false); - SHAssetManager::CompileAsset("../../Assets/Shaders/SSAOBlur_CS.glsl", false); - SHAssetManager::CompileAsset("../../Assets/Shaders/PureCopy_CS.glsl", false); - SHAssetManager::CompileAsset("../../Assets/Shaders/TestCube_VS.glsl", false); - SHAssetManager::CompileAsset("../../Assets/Shaders/TestCube_FS.glsl", false); + //SHAssetManager::CompileAsset("../../Assets/Shaders/DeferredComposite_CS.glsl", false); + //SHAssetManager::CompileAsset("../../Assets/Shaders/SSAO_CS.glsl", false); + //SHAssetManager::CompileAsset("../../Assets/Shaders/SSAOBlur_CS.glsl", false); + //SHAssetManager::CompileAsset("../../Assets/Shaders/PureCopy_CS.glsl", false); + //SHAssetManager::CompileAsset("../../Assets/Shaders/TestCube_VS.glsl", false); + //SHAssetManager::CompileAsset("../../Assets/Shaders/TestCube_FS.glsl", false); + //SHAssetManager::CompileAsset("../../Assets/Shaders/UI_VS.glsl", false); + //SHAssetManager::CompileAsset("../../Assets/Shaders/UI_FS.glsl", false); + //SHAssetManager::CompileAsset("../../Assets/Shaders/Text_VS.glsl", false); // Load Built In Shaders static constexpr AssetID VS_DEFAULT = 39210065; defaultVertShader = SHResourceManager::LoadOrGet(VS_DEFAULT); @@ -418,7 +421,7 @@ namespace SHADE .addressMode = vk::SamplerAddressMode::eClampToBorder, }) ); - + textRenderingSubSystem = resourceManager.Create(); // initialize the text renderer @@ -567,7 +570,7 @@ namespace SHADE else renderer->UpdateData(frameIndex); #else - renderers[renIndex]->UpdateDataAndBind(frameIndex); + renderer->UpdateData(frameIndex); #endif } @@ -583,16 +586,8 @@ namespace SHADE renderGraph->Begin(frameIndex); auto cmdBuffer = renderGraph->GetCommandBuffer(frameIndex); - // Bind all the buffers required for meshes - for (auto& [buffer, bindingPoint] : MESH_DATA) - { - if (buffer->GetUsageBits() & vk::BufferUsageFlagBits::eVertexBuffer) - cmdBuffer->BindVertexBuffer(bindingPoint, buffer, 0); - else if (buffer->GetUsageBits() & vk::BufferUsageFlagBits::eIndexBuffer) - cmdBuffer->BindIndexBuffer(buffer, 0); - } - renderGraph->Execute(frameIndex, descPool); + renderGraph->Execute(frameIndex, descPool, MESH_DATA); renderGraph->End(frameIndex); graphicsQueue->SubmitCommandBuffer diff --git a/SHADE_Engine/src/Graphics/RenderGraph/SHRenderGraph.cpp b/SHADE_Engine/src/Graphics/RenderGraph/SHRenderGraph.cpp index 74ea951a..c312535e 100644 --- a/SHADE_Engine/src/Graphics/RenderGraph/SHRenderGraph.cpp +++ b/SHADE_Engine/src/Graphics/RenderGraph/SHRenderGraph.cpp @@ -565,7 +565,7 @@ namespace SHADE // TODO: The graph scope buffers were meant to bind vertex buffers and index buffers for meshes. Find a // better way to manage these - void SHRenderGraph::Execute(uint32_t frameIndex, Handle descPool) noexcept + void SHRenderGraph::Execute(uint32_t frameIndex, Handle descPool, const std::initializer_list, uint32_t>> MESH_DATA) noexcept { auto cmdBuffer = commandBuffers[frameIndex]; cmdBuffer->BeginLabeledSegment(name); @@ -577,6 +577,7 @@ namespace SHADE cmdBuffer->ForceSetPipelineLayout(batchingSystemData.dummyPipelineLayout, SH_PIPELINE_TYPE::COMPUTE); auto const& descMappings = SHGraphicsPredefinedData::GetMappings(SHGraphicsPredefinedData::SystemType::BATCHING); + for (auto& node : nodes) { @@ -585,6 +586,15 @@ namespace SHADE // bind static global data SHGlobalDescriptorSets::BindStaticGlobalData(cmdBuffer, SH_PIPELINE_TYPE::GRAPHICS, descMappings.at(SHPredefinedDescriptorTypes::STATIC_DATA)); + // Bind all the buffers required for meshes + for (auto& [buffer, bindingPoint] : MESH_DATA) + { + if (buffer->GetUsageBits() & vk::BufferUsageFlagBits::eVertexBuffer) + cmdBuffer->BindVertexBuffer(bindingPoint, buffer, 0); + else if (buffer->GetUsageBits() & vk::BufferUsageFlagBits::eIndexBuffer) + cmdBuffer->BindIndexBuffer(buffer, 0); + } + node->Execute(cmdBuffer, descPool, frameIndex); } } diff --git a/SHADE_Engine/src/Graphics/RenderGraph/SHRenderGraph.h b/SHADE_Engine/src/Graphics/RenderGraph/SHRenderGraph.h index 5abcd6b6..0ae30015 100644 --- a/SHADE_Engine/src/Graphics/RenderGraph/SHRenderGraph.h +++ b/SHADE_Engine/src/Graphics/RenderGraph/SHRenderGraph.h @@ -143,7 +143,7 @@ namespace SHADE void Generate (void) noexcept; void CheckForNodeComputes (void) noexcept; - void Execute (uint32_t frameIndex, Handle descPool) noexcept; + void Execute (uint32_t frameIndex, Handle descPool, const std::initializer_list, uint32_t>> MESH_DATA) noexcept; void Begin (uint32_t frameIndex) noexcept; void End (uint32_t frameIndex) noexcept; void FinaliseBatch (uint32_t frameIndex, Handle descPool);