Changeset 664 for GTP/trunk/Lib/Vis/Preprocessing/src/VspBspTree.cpp
- Timestamp:
- 02/27/06 18:39:47 (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/Lib/Vis/Preprocessing/src/VspBspTree.cpp
r663 r664 37 37 int VspBspTree::sFrontAndBackId = 0; 38 38 39 bool VspBspTraversalData::sBreathFirstSplits = false;40 39 41 40 … … 130 129 environment->GetBoolValue("VspBspTree.useSplitCostQueue", mUseSplitCostQueue); 131 130 environment->GetBoolValue("VspBspTree.simulateOctree", mSimulateOctree); 132 environment->GetBoolValue("VspBspTree.breathFirstSplits", VspBspTraversalData::sBreathFirstSplits); 131 environment->GetBoolValue("VspBspTree.useRandomAxis", mUseRandomAxis); 132 environment->GetBoolValue("VspBspTree.breathFirstSplits", mBreathFirstSplits); 133 133 134 134 char subdivisionStatsLog[100]; … … 162 162 Debug << "use split cost queue: " << mUseSplitCostQueue << endl; 163 163 Debug << "subdivision stats log: " << subdivisionStatsLog << endl; 164 164 Debug << "use random axis: " << mUseRandomAxis << endl; 165 Debug << "breath first splits: " << mBreathFirstSplits << endl; 166 165 167 166 168 Debug << "Split plane strategy: "; … … 463 465 geom); 464 466 465 tData.mPriority = mBreathFirstSplits ?466 (float)-frontData.mDepth : tData.mPvs * tData.mProbability;467 EvalPriority(tData); 468 467 469 468 470 if (mSimulateOctree) … … 494 496 495 497 long startTime = GetTime(); 496 int nLeaves = 0;497 int nViewCells = 0;498 int nLeaves = 500; 499 int nViewCells = 500; 498 500 499 501 // used for intermediate time measurements and progress … … 538 540 } 539 541 540 if (mCreatedViewCells == nViewCells)542 if (mCreatedViewCells >= nViewCells) 541 543 { 542 544 nViewCells += 500; … … 575 577 geom); 576 578 577 tData.mPriority = mBreathFirstSplits ? 578 (float)-tData.mDepth : tData.mPvs * tData.mProbability; 579 579 580 580 581 // compute first split candidate … … 744 745 tBackData.mMaxCostMisses = maxCostMisses; 745 746 746 ComputePriority(tFrontData);747 ComputePriority(tBackData);747 EvalPriority(tFrontData); 748 EvalPriority(tBackData); 748 749 749 750 if (1) … … 864 865 tFrontData.mMaxCostMisses = maxCostMisses; 865 866 tBackData.mMaxCostMisses = maxCostMisses; 866 867 ComputePriority(tFrontData); 868 ComputePriority(tBackData); 869 870 frontData.mPriority = mBreathFirstSplits ? 871 (float)-frontData.mDepth : frontData.mPvs * frontData.mProbability; 872 backData.mPriority = mBreathFirstSplits ? 873 (float)-backData.mDepth : backData.mPvs * backData.mProbability; 867 874 868 if (1) 875 869 { … … 951 945 952 946 return newNode; 947 } 948 949 950 void VspBspTree::EvalPriority(VspBspTraversalData &tData) const 951 { 952 tData.mPriority = mBreathFirstSplits ? 953 (float)-tData.mDepth : tData.mPvs * tData.mProbability; 953 954 } 954 955 … … 1356 1357 int sAxis = 0; 1357 1358 1358 bool useSpecialAxis = false; 1359 1360 if (mSimulateOctree) 1361 { 1359 bool useSpecialAxis = mOnlyDrivingAxis || mUseRandomAxis || mSimulateOctree; 1360 1361 // use some kind of specialised fixed axis 1362 if (mOnlyDrivingAxis) 1363 sAxis = box.Size().DrivingAxis(); 1364 else if (mUseRandomAxis) 1365 sAxis = Random(3); 1366 else if (mSimulateOctree) 1362 1367 sAxis = tData.mAxis; 1363 useSpecialAxis = true; 1364 } 1365 else if (mUseRandomAxis) 1366 { 1367 sAxis = Random(3); 1368 useSpecialAxis = true; 1369 } 1370 else if (mOnlyDrivingAxis) 1371 { 1372 sAxis = box.Size().DrivingAxis(); 1373 useSpecialAxis = true; 1374 } 1368 1375 1369 1376 1370 for (axis = 0; axis < 3; ++ axis)
Note: See TracChangeset
for help on using the changeset viewer.