Changeset 2561 for GTP/trunk/Lib/Vis
- Timestamp:
- 12/10/07 12:18:49 (17 years ago)
- Location:
- GTP/trunk/Lib/Vis/OnlineCullingCHC
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/Lib/Vis/OnlineCullingCHC/OGRE/src/OgrePlatformHierarchyInterface.cpp
r2558 r2561 308 308 // get next available test id 309 309 GtpVisibility::OcclusionQuery *query = GetNextOcclusionQuery(); 310 GtpVisibility::HierarchyNodeContainer::const_iterator nit, nit_end = nodes.end(); 310 311 311 312 //-- the actual query test 312 313 query->BeginQuery(); 313 314 GtpVisibility::HierarchyNodeContainer::const_iterator nit, nit_end = nodes.end();315 316 314 mIsBoundingBoxQuery = true; 317 315 … … 324 322 325 323 mIsBoundingBoxQuery = false; 326 327 324 query->EndQuery(); 328 325 -
GTP/trunk/Lib/Vis/OnlineCullingCHC/src/CoherentHierarchicalCullingManager.cpp
r2556 r2561 53 53 mQueryQueue.pop(); 54 54 55 // "invalid nodes" happen for hierarchies that have geometry56 // not neccessarily in the leaves:57 55 // parent was tested invisible => remove children from queue 58 59 if (1 && NodeInvalid(node)) 60 continue; 56 // "invalid nodes" happen for hierarchies where interiors store geometry 57 if (NodeInvalid(node)) continue; 61 58 62 59 // tested visible … … 66 63 AssignAssumedVisibility(node); 67 64 68 // for previously visible interior node which contains geometry: 69 // ensure that we did not already traverse this node 70 // (which means that the visibility flag is set) 65 // traverse node if not already traversed in this frame 66 // (i.e., the visible flag is not set) 67 // note: it is necessary to do this test because we query 68 // previously visible interior node containing geometry 69 // without waiting for the result 71 70 if (!mHierarchyInterface->IsNodeVisible(node)) 72 71 mHierarchyInterface->TraverseNode(node); … … 97 96 98 97 // parent was tested invisible => remove children from queue 99 if (1 && NodeInvalid(node)) 100 continue; 98 if (NodeInvalid(node)) continue; 101 99 102 100 bool intersects = false; … … 196 194 !mHierarchyInterface->IsNodeVisible(mHierarchyInterface->GetParent(node)) 197 195 ); 198 199 200 if (nodeInvalid)201 {202 CullingLogManager::GetSingleton()->LogMessage("node invalid");203 }204 205 196 return nodeInvalid; 206 197 } -
GTP/trunk/Lib/Vis/OnlineCullingCHC/src/CoherentHierarchicalCullingPlusPlusManager.cpp
r2557 r2561 63 63 HierarchyNode *node = mQueryQueue.front().first; 64 64 65 // "invalid nodes" happen for hierarchies that store geometry in the interiors66 65 // parent was tested invisible => remove children from queue 66 // "invalid nodes" happen for hierarchies where interiors store geometry 67 67 if (NodeInvalid(node)) {mQueryQueue.pop(); continue;} 68 68 69 69 // during the wait time we issue nodes from visible queue 70 while ( 1 &&!mVisibleNodes.empty() && !resultAvailable)70 while (!mVisibleNodes.empty() && !resultAvailable) 71 71 { 72 72 HierarchyNode *vn = mVisibleNodes.front(); … … 90 90 AssignAssumedVisibility(node); 91 91 92 // for previously visible interior node which contains geometry: 93 // ensure that we did not already traverse this node 94 // (which means that the visibility flag is set) 92 // traverse node if not already traversed in this frame 93 // (i.e., the visible flag is not set) 94 // note: it is necessary to do this test because we query 95 // previously visible interior node containing geometry without 96 // waiting for the result 95 97 if (!mHierarchyInterface->IsNodeVisible(node)) 96 98 mHierarchyInterface->TraverseNode2(node); … … 299 301 ); 300 302 301 /*if (nodeInvalid)302 CullingLogManager::GetSingleton()->LogMessage("node invalid");303 */304 305 303 return nodeInvalid; 306 304 }
Note: See TracChangeset
for help on using the changeset viewer.