From ab869348f1f85f9af16e4c25df174c4ef5a0c648 Mon Sep 17 00:00:00 2001 From: Kah Wei Date: Mon, 14 Nov 2022 00:59:21 +0800 Subject: [PATCH 1/2] Added code that only renders objects which are active --- .../Graphics/MiddleEnd/Batching/SHBatch.cpp | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/SHADE_Engine/src/Graphics/MiddleEnd/Batching/SHBatch.cpp b/SHADE_Engine/src/Graphics/MiddleEnd/Batching/SHBatch.cpp index 1829096f..7465617d 100644 --- a/SHADE_Engine/src/Graphics/MiddleEnd/Batching/SHBatch.cpp +++ b/SHADE_Engine/src/Graphics/MiddleEnd/Batching/SHBatch.cpp @@ -27,6 +27,7 @@ of DigiPen Institute of Technology is prohibited. #include "Math/Transform/SHTransformComponent.h" #include "Graphics/MiddleEnd/GlobalData/SHGraphicsGlobalData.h" #include "Graphics/Descriptors/SHVkDescriptorPool.h" +#include "Scene/SHSceneManager.h" namespace SHADE { @@ -223,7 +224,22 @@ namespace SHADE auto transform = SHComponentManager::GetComponent(rendId); if (transform) { - transformData.emplace_back(transform->GetTRS()); + if (SHSceneManager::CheckNodeAndComponentsActive(rendId)) + { + transformData.emplace_back(transform->GetTRS()); + } + else + { + // Should be deactivated + static const SHMatrix ZERO_MTX = + { + 0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 0.0f + }; + transformData.emplace_back(ZERO_MTX); + } } else { From 27413c380e5395f6fb0b761813b521db769ec445 Mon Sep 17 00:00:00 2001 From: Kah Wei Date: Fri, 18 Nov 2022 21:59:18 +0800 Subject: [PATCH 2/2] Renderables now no longer render if disabled --- .../Graphics/MiddleEnd/Batching/SHBatch.cpp | 25 +++++++++++++++---- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/SHADE_Engine/src/Graphics/MiddleEnd/Batching/SHBatch.cpp b/SHADE_Engine/src/Graphics/MiddleEnd/Batching/SHBatch.cpp index 0db46a84..47a96583 100644 --- a/SHADE_Engine/src/Graphics/MiddleEnd/Batching/SHBatch.cpp +++ b/SHADE_Engine/src/Graphics/MiddleEnd/Batching/SHBatch.cpp @@ -440,15 +440,30 @@ namespace SHADE for (auto rendId : subBatch.Renderables) { // Transform - auto transform = SHComponentManager::GetComponent_s(rendId); - if (!transform) + auto transform = SHComponentManager::GetComponent_s(rendId); + if (transform) { - SHLOG_WARNING("[SHBatch] Entity contianing a SHRenderable with no SHTransformComponent found!"); - transformData.emplace_back(); + if (SHSceneManager::CheckNodeAndComponentsActive(rendId)) + { + transformData.emplace_back(transform->GetTRS()); + } + else + { + // Should be deactivated + static const SHMatrix ZERO_MTX = + { + 0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 0.0f, + 0.0f, 0.0f, 0.0f, 0.0f + }; + transformData.emplace_back(ZERO_MTX); + } } else { - transformData.emplace_back(transform->GetTRS()); + SHLOG_WARNING("[SHBatch] Entity contianing a SHRenderable with no SHTransformComponent found!"); + transformData.emplace_back(); } const SHRenderable* renderable = SHComponentManager::GetComponent(rendId);