Changeset 2281
- Timestamp:
- 03/22/07 18:51:14 (18 years ago)
- Location:
- GTP/trunk/Lib/Vis/OnlineCullingCHC
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/Lib/Vis/OnlineCullingCHC/OGRE/src/OgreOctreeHierarchyInterface.cpp
r2280 r2281 58 58 Octree *octree = static_cast<Octree *>(root); 59 59 60 int mask = (int) (rand() * 8.0f);61 62 60 // random decision 63 61 Octree *child = NULL; 64 62 65 while (!child) 63 std::vector<Octree *> nodes; 64 65 //LogManager::getSingleton().logMessage("***"); 66 for (int i = 0; i < 8; ++ i) 67 { 68 int x = (i & 4) / 4; 69 int y = (i & 2) / 2; 70 int z = i & 1; 71 72 if ((child = octree->mChildren[x][y][z]) != NULL) 73 { 74 nodes.push_back(child); 75 } 76 } 77 78 if (nodes.empty()) 79 return NULL; 80 81 int r = (int) (rand() * (float)nodes.size()); 82 83 return GetRandomLeaf(nodes[r]); 84 // assume that at least one child is not NULL ... 85 /*while (!child) 86 { 87 int mask = (int) (rand() * 8.0f); 66 88 child = octree->mChildren[(mask & 4) / 4][(mask & 2) / 2][mask & 1]; 67 68 return GetRandomLeaf(child); 89 } 90 91 return GetRandomLeaf(child);*/ 69 92 } 70 93 //----------------------------------------------------------------------- -
GTP/trunk/Lib/Vis/OnlineCullingCHC/src/RandomUpdateCullingManager.cpp
r2280 r2281 33 33 ///////////// 34 34 //-- PART 1: process finished occlusion queries 35 CullingLogManager::GetSingleton()->LogMessage("here55");35 36 36 while (!mHierarchyInterface->GetQueue()->empty() || !queryQueue.empty()) 37 37 { … … 111 111 { 112 112 if (mHierarchyInterface->IsNodeVisible(node)) 113 Ogre::LogManager::getSingleton().logMessage("u");113 CullingLogManager::GetSingleton()->LogMessage("u"); 114 114 else 115 Ogre::LogManager::getSingleton().logMessage("g");115 CullingLogManager::GetSingleton()->LogMessage("g"); 116 116 } 117 117 118 118 if (mHierarchyInterface->IsNodeFullyVisible(node)) 119 {Ogre::LogManager::getSingleton().logMessage("here8"); 119 { 120 CullingLogManager::GetSingleton()->LogMessage("here8"); 120 121 // node fully visible => test only random leaves 121 122 for (int i = 0; i < mRandomCandidates; ++ i) 122 123 { 123 Ogre::LogManager::getSingleton().logMessage("z");124 CullingLogManager::GetSingleton()->LogMessage("z"); 124 125 HierarchyNode *randomLeaf = mHierarchyInterface->GetRandomLeaf(node); 126 CullingLogManager::GetSingleton()->LogMessage("c"); 127 if (!randomLeaf) 128 continue; 125 129 126 130 mHierarchyInterface->SetNodeVisible(randomLeaf, false); … … 133 137 mHierarchyInterface->IssueNodeOcclusionQuery(node))); 134 138 139 CullingLogManager::GetSingleton()->LogMessage("a"); 135 140 mHierarchyInterface->TraverseNode2(node); 141 CullingLogManager::GetSingleton()->LogMessage("b"); 136 142 } 137 143
Note: See TracChangeset
for help on using the changeset viewer.