From 627f61badbeae0e9de532c09523126674a2295c1 Mon Sep 17 00:00:00 2001 From: ZappoMan Date: Wed, 12 Jun 2013 12:36:28 -0700 Subject: [PATCH] some debug changes for testing occlusion culling --- interface/src/Application.cpp | 18 ++++++++++++++---- interface/src/VoxelSystem.cpp | 12 ++++++++++-- 2 files changed, 24 insertions(+), 6 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index b793123d1b..75cda7be85 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -1899,6 +1899,20 @@ glm::vec2 Application::getScaledScreenPoint(glm::vec2 projectedPoint) { // -1,-1 is 0,windowHeight // 1,1 is windowWidth,0 + + // -1,1 1,1 + // +-----------------------+ + // | | | + // | | | + // | -1,0 | | + // |-----------+-----------| + // | 0,0 | + // | | | + // | | | + // | | | + // +-----------------------+ + // -1,-1 1,-1 + glm::vec2 screenPoint((projectedPoint.x + 1.0) * horizontalScale, ((projectedPoint.y + 1.0) * -verticalScale) + _glWidget->height()); @@ -1929,10 +1943,6 @@ void Application::renderVirtualOccluders() { boxB.scale(TREE_SCALE); VoxelProjectedShadow shadowB = _viewFrustum.getProjectedShadow(boxB); - //CoverageMap::StorageResult result; - //result = map.storeInMap(&shadowB); // test this first since it's closer in Z-buffer - //result = map.storeInMap(&shadowA); - bool shadowAoccludesB = shadowA.occludes(shadowB); bool shadowBoccludesA = shadowB.occludes(shadowA); diff --git a/interface/src/VoxelSystem.cpp b/interface/src/VoxelSystem.cpp index 1c924a1a36..2e5995e140 100644 --- a/interface/src/VoxelSystem.cpp +++ b/interface/src/VoxelSystem.cpp @@ -1189,21 +1189,29 @@ void VoxelSystem::falseColorizeTestOccluded() { } bool VoxelSystem::falseColorizeOccludedOperation(VoxelNode* node, void* extraData) { +//node->printDebugDetails(">>>>>>>>>>>>>>> falseColorizeOccludedOperation() BEGIN >>>>>>>>>>>>>>"); FalseColorizeOccludedArgs* args = (FalseColorizeOccludedArgs*) extraData; - if (node->isColored() && node->isLeaf()) { + if (node->isColored() && node->isLeaf() && !node->isStagedForDeletion() && node->getShouldRender()) { +//printLog("***** falseColorizeOccludedOperation() NODE is colored, etc, so consider it *****\n"); AABox voxelBox = node->getAABox(); voxelBox.scale(TREE_SCALE); VoxelProjectedShadow* voxelShadow = new VoxelProjectedShadow(args->viewFrustum->getProjectedShadow(voxelBox)); CoverageMap::StorageResult result = args->map->storeInMap(voxelShadow); if (result == CoverageMap::OCCLUDED) { +//printLog("***** falseColorizeOccludedOperation() NODE is OCCLUDED *****\n"); node->setFalseColor(255, 0, 0); + } else if (result == CoverageMap::STORED) { +//printLog("***** falseColorizeOccludedOperation() NODE is STORED *****\n"); + } else if (result == CoverageMap::DOESNT_FIT) { +//printLog("***** falseColorizeOccludedOperation() NODE DOESNT_FIT???? *****\n"); } } +//printLog("<<<<<<<<<<<<<<<<< falseColorizeOccludedOperation() END <<<<<<<<<<<<<<<<<\n"); return true; // keep going! } void VoxelSystem::falseColorizeOccluded() { - CoverageMap map(BoundingBox(glm::vec2(-1.f,-1.f), glm::vec2(2.f,2.f)), true); + CoverageMap map(BoundingBox(glm::vec2(-2.f,-2.f), glm::vec2(4.f,4.f)), true); FalseColorizeOccludedArgs args; args.viewFrustum = Application::getInstance()->getViewFrustum(); args.map = ↦