From 61cc889880de1785081e0d2e888e3c2f5155ca0f Mon Sep 17 00:00:00 2001 From: Kearwood Gilbert Date: Mon, 17 Nov 2025 00:05:48 -0800 Subject: [PATCH] KRMesh cleanup, now including lod coverage in resource requests for meshes --- kraken/nodes/KRModel.cpp | 2 +- kraken/resources/mesh/KRMesh.cpp | 11 +++-------- 2 files changed, 4 insertions(+), 9 deletions(-) diff --git a/kraken/nodes/KRModel.cpp b/kraken/nodes/KRModel.cpp index a612514..5a2d430 100755 --- a/kraken/nodes/KRModel.cpp +++ b/kraken/nodes/KRModel.cpp @@ -314,7 +314,7 @@ void KRModel::preStream(const KRViewport& viewport, std::list for (int i = 0; i < kMeshLODCount; i++) { if (m_meshes[i].isBound()) { m_meshes[i].get()->preStream(resourceRequests, lod_coverage); - resourceRequests.emplace_back(m_meshes[i].get(), 0); // TODO: Pass in LOD level to drive streaming priority of meshes + resourceRequests.emplace_back(m_meshes[i].get(), 0, lod_coverage); } } diff --git a/kraken/resources/mesh/KRMesh.cpp b/kraken/resources/mesh/KRMesh.cpp index d35d4eb..bff72fa 100755 --- a/kraken/resources/mesh/KRMesh.cpp +++ b/kraken/resources/mesh/KRMesh.cpp @@ -252,15 +252,10 @@ void KRMesh::render(KRNode::RenderInfo& ri, const std::string& object_name, cons if (ri.renderPass->getType() == RenderPassType::RENDER_PASS_SHADOWMAP) { for (int iSubmesh = 0; iSubmesh < cSubmeshes; iSubmesh++) { KRMaterial* pMaterial = m_materials[iSubmesh]; - - if (pMaterial != NULL) { - - if (!pMaterial->isTransparent()) { - // Exclude transparent and semi-transparent meshes from shadow maps - renderSubmesh(ri.commandBuffer, iSubmesh, ri.renderPass, object_name, pMaterial->getName(), lod_coverage); - } + if (pMaterial && !pMaterial->isTransparent()) { + // Exclude transparent and semi-transparent meshes from shadow maps + renderSubmesh(ri.commandBuffer, iSubmesh, ri.renderPass, object_name, pMaterial->getName(), lod_coverage); } - } } else { // Apply submeshes in per-material batches to reduce number of state changes