Changeset 2283 for GTP/trunk/Lib
- Timestamp:
- 03/23/07 01:40:24 (18 years ago)
- Location:
- GTP/trunk/Lib/Vis
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/Lib/Vis/OnlineCullingCHC/OGRE/src/OgreOcclusionCullingSceneManager.cpp
r2280 r2283 2025 2025 return; 2026 2026 } 2027 Ogre::LogManager::getSingleton().logMessage("here99"); 2027 2028 2028 Root::getSingleton()._setCurrentSceneManager(this); 2029 2029 mActiveQueuedRenderableVisitor->targetSceneMgr = this; -
GTP/trunk/Lib/Vis/OnlineCullingCHC/OGRE/src/OgreOctreeHierarchyInterface.cpp
r2281 r2283 62 62 63 63 std::vector<Octree *> nodes; 64 65 //LogManager::getSingleton().logMessage("***"); 64 nodes.reserve(8); 65 66 66 for (int i = 0; i < 8; ++ i) 67 67 { … … 70 70 int z = i & 1; 71 71 72 //std::stringstream d; d << x << " " << y << " " << z; 73 //Ogre::LogManager::getSingleton().logMessage(d.str()); 74 72 75 if ((child = octree->mChildren[x][y][z]) != NULL) 73 76 { … … 76 79 } 77 80 81 //std::stringstream str; str << "nodes: " << nodes.size(); 82 //Ogre::LogManager::getSingleton().logMessage(str.str()); 83 78 84 if (nodes.empty()) 79 85 return NULL; 80 86 81 int r = (int) (rand() * (float)nodes.size()); 87 int r = (int)(((float)rand() / RAND_MAX) * ((float)nodes.size() - 0.5f)); 88 89 //std::stringstream str2; 90 //str2 << "rand: " << r; 91 //Ogre::LogManager::getSingleton().logMessage(str2.str()); 82 92 83 93 return GetRandomLeaf(nodes[r]); … … 101 111 if (!octree->mNodes.empty()) 102 112 { 113 RenderNodeRecursive(node); 114 } 115 116 /* 103 117 // render everything from here 104 118 if (octree->isOctreeFullyVisible()) … … 133 147 mDistanceQueue->push(nextChild); 134 148 } 149 */ 135 150 } 136 151 //----------------------------------------------------------------------- … … 206 221 207 222 Octree *nextChild; 208 //LogManager::getSingleton().logMessage("***");223 209 224 for (int i = 0; i < 8; ++ i) 210 225 { … … 212 227 int y = (i & 2) / 2; 213 228 int z = i & 1; 214 Ogre::LogManager::getSingleton().logMessage("y"); 215 //std::stringstream d; d << "x " << x << " y " << y << " z " << z; 216 //LogManager::getSingleton().logMessage(d.str()); 217 218 if ((nextChild = octant->mChildren[x][y][z]) != NULL) 229 230 if ((nextChild = octant->mChildren[x][y][z]) != NULL) 219 231 { 220 232 DetermineFullVisibility(nextChild); -
GTP/trunk/Lib/Vis/OnlineCullingCHC/src/RandomUpdateCullingManager.cpp
r2281 r2283 33 33 ///////////// 34 34 //-- PART 1: process finished occlusion queries 35 35 //mHierarchyInterface->TraverseNode2(mHierarchyInterface->GetHierarchyRoot()); 36 //return; 37 36 38 while (!mHierarchyInterface->GetQueue()->empty() || !queryQueue.empty()) 37 39 { … … 108 110 continue; 109 111 } 110 if (mHierarchyInterface->IsLeaf(node)) 111 { 112 if (mHierarchyInterface->IsNodeVisible(node)) 113 CullingLogManager::GetSingleton()->LogMessage("u"); 114 else 115 CullingLogManager::GetSingleton()->LogMessage("g"); 116 } 117 112 118 113 if (mHierarchyInterface->IsNodeFullyVisible(node)) 119 114 { 120 CullingLogManager::GetSingleton()->LogMessage("here8");121 115 // node fully visible => test only random leaves 122 116 for (int i = 0; i < mRandomCandidates; ++ i) 123 117 { 124 CullingLogManager::GetSingleton()->LogMessage("z");125 118 HierarchyNode *randomLeaf = mHierarchyInterface->GetRandomLeaf(node); 126 CullingLogManager::GetSingleton()->LogMessage("c");119 127 120 if (!randomLeaf) 128 121 continue; … … 136 129 queryQueue.push(QueryPair(node, 137 130 mHierarchyInterface->IssueNodeOcclusionQuery(node))); 138 139 CullingLogManager::GetSingleton()->LogMessage("a");140 mHierarchyInterface->TraverseNode2(node);141 CullingLogManager::GetSingleton()->LogMessage("b");142 131 } 132 133 mHierarchyInterface->TraverseNode2(node); 143 134 144 135 continue; -
GTP/trunk/Lib/Vis/Preprocessing/src/VspBspTree.cpp
r2233 r2283 1778 1778 { 1779 1779 const int randIdx = 1780 (int)RandomValue(0, (Real)(( int)data.mPolygons->size() - 1));1780 (int)RandomValue(0, (Real)((float)data.mPolygons->size() - 0.5f)); 1781 1781 Polygon3 *nextPoly = (*data.mPolygons)[randIdx]; 1782 1782 … … 1814 1814 // swap candidate to the end to avoid testing same plane 1815 1815 std::swap((*data.mPolygons)[maxIdx], (*data.mPolygons)[candidateIdx]); 1816 //Polygon3 *poly = (*data.mPolygons)[(int)RandomValue(0, (int)polys.size() - 1)]; 1817 1816 1818 1817 // evaluate current candidate 1819 1818 BspNodeGeometry fGeom, bGeom; … … 1895 1894 Plane3 VspBspTree::ChooseCandidatePlane(const RayInfoContainer &rays) const 1896 1895 { 1897 const int candidateIdx = (int)RandomValue(0, (Real)(( int)rays.size() - 1));1896 const int candidateIdx = (int)RandomValue(0, (Real)((float)rays.size() - 0.5f)); 1898 1897 1899 1898 const Vector3 minPt = rays[candidateIdx].ExtrapOrigin(); … … 2103 2102 { 2104 2103 const int testIdx = useRand ? 2105 (int)RandomValue(0, (Real)(( int)data.mRays->size() - 1)) : i;2104 (int)RandomValue(0, (Real)((float)data.mRays->size() - 0.5f)) : i; 2106 2105 RayInfo rayInf = (*data.mRays)[testIdx]; 2107 2106 -
GTP/trunk/Lib/Vis/Preprocessing/src/VssPreprocessor.cpp
r2199 r2283 283 283 Intersectable *sourceObj = mObjects[5]; 284 284 285 const int index = (int)RandomValue(0, (Real)(( int)leaves.size() - 1));285 const int index = (int)RandomValue(0, (Real)((float)leaves.size() - 0.5f)); 286 286 VssTreeLeaf *leaf = leaves[index]; 287 287
Note: See TracChangeset
for help on using the changeset viewer.