- Timestamp:
- 03/26/07 18:49:17 (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/Lib/Vis/OnlineCullingCHC/src/RandomUpdateCullingManager.cpp
r2289 r2292 2 2 #include <time.h> 3 3 #include "CullingLogManager.h" 4 #include <vector> 5 //#include <iostream> 6 #include <sstream> 7 8 9 using namespace std; 4 10 5 11 … … 12 18 SetAssumedVisibility(0); 13 19 // initialise random generator in case we use assumed visibility 14 srand(time(NULL));20 //srand(time(NULL)); 15 21 16 22 mRandomCandidates = R_CANDIDATES; … … 22 28 SetAssumedVisibility(assumedVisibility); 23 29 // initialise random generator in case we use assumed visibility 24 srand(time(NULL));30 //srand(time(NULL)); 25 31 26 32 mRandomCandidates = R_CANDIDATES; … … 29 35 void RandomUpdateCullingManager::RenderScene() 30 36 { 31 CullingLogManager::GetSingleton()->LogMessage("ruc");37 if (0) CullingLogManager::GetSingleton()->LogMessage("ruc"); 32 38 33 39 QueryQueue queryQueue; … … 37 43 //-- PART 1: process finished occlusion queries 38 44 39 // update the fully visible classifications40 mHierarchyInterface->DetermineFullVisibility(mHierarchyInterface->GetHierarchyRoot());41 42 //mHierarchyInterface->TraverseNode2(mHierarchyInterface->GetHierarchyRoot());43 44 #if 145 45 while (!mHierarchyInterface->GetQueue()->empty() || !queryQueue.empty()) 46 46 { … … 121 121 if (mHierarchyInterface->IsNodeFullyVisible(node)) 122 122 { 123 #if 1 123 124 // node fully visible => test only random leaves 124 125 for (int i = 0; i < mRandomCandidates; ++ i) … … 138 139 mHierarchyInterface->IssueNodeOcclusionQuery(node))); 139 140 } 140 141 mHierarchyInterface->TraverseNode2(node); 141 #else 142 // test all leaves for visibility changes 143 HierarchyNodeContainer mynodes; 144 mHierarchyInterface->CollectLeaves(node, mynodes); 145 146 HierarchyNodeContainer::const_iterator nit, nit_end = mynodes.end(); 147 148 for (nit = mynodes.begin(); nit != nit_end; ++ nit) 149 { 150 HierarchyNode *leaf = *nit; 151 mHierarchyInterface->SetNodeVisible(leaf, false); 152 153 // update node's visited flag 154 mHierarchyInterface->SetLastVisited(leaf, mHierarchyInterface->GetFrameId()); 155 156 queryQueue.push(QueryPair(leaf, 157 mHierarchyInterface->IssueNodeOcclusionQuery(node))); 158 } 159 #endif 160 mHierarchyInterface->RenderNodeRecursive(node); 142 161 143 162 continue; … … 173 192 } 174 193 } 175 #endif 194 176 195 //while (!mHierarchyInterface->GetQueue()->empty()) 177 196 // mHierarchyInterface->GetQueue()->pop(); 178 197 198 // update the fully visible classifications 199 // TODO: this should be done during traversal! 200 mHierarchyInterface->DetermineFullVisibility(mHierarchyInterface->GetHierarchyRoot()); 179 201 } 180 202 //-----------------------------------------------------------------------
Note: See TracChangeset
for help on using the changeset viewer.