Changeset 1912 for GTP/trunk/Lib/Vis/Preprocessing/src/HierarchyManager.cpp
- Timestamp:
- 12/20/06 00:26:02 (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/Lib/Vis/Preprocessing/src/HierarchyManager.cpp
r1911 r1912 156 156 "Hierarchy.Construction.maxAvgRayContri", mMaxAvgRayContri); 157 157 158 Environment::GetSingleton()->GetFloatValue( 159 "Hierarchy.Construction.minAvgRayContri", mMinAvgRayContri); 160 158 161 // for comparing it with byte - value 159 162 mTermMaxMemory *= (1024.0f * 1024.0f); … … 734 737 735 738 736 float HierarchyManager::EvalPvsCorrectionFactor(const float childPvs, 737 const float totalPvs, 738 const float avgRayContri) const 739 { 740 if (!childPvs || 741 // assume pvs sampled sufficiently => take child pvs 742 (avgRayContri < mMinAvgRayContri)) 743 return 1.0f; 739 float HierarchyManager::EvalCorrectedPvs(const float childPvs, 740 const float totalPvs, 741 const float avgRayContri) const 742 { 743 // assume pvs sampled sufficiently => take child pvs 744 if (avgRayContri < mMinAvgRayContri) 745 return childPvs; 744 746 745 747 // assume pvs not sampled sufficiently => take total pvs 746 748 if (avgRayContri > mMaxAvgRayContri) 747 return totalPvs / childPvs; 748 749 const float factor = 750 (mMaxAvgRayContri - avgRayContri) / 751 (mMaxAvgRayContri - mMinAvgRayContri); 752 753 const float newPvs = factor * childPvs + (1.0f - factor) * totalPvs; 754 755 return newPvs / childPvs; 749 return totalPvs; 750 751 const float alpha = (mMaxAvgRayContri - avgRayContri) / 752 (mMaxAvgRayContri - mMinAvgRayContri); 753 754 cout << "here41 **************** " << alpha << " " << childPvs << " " << totalPvs << endl; 755 756 const float beta = (1.0f - alpha) * (totalPvs + childPvs) / totalPvs; 757 758 return childPvs + beta; 756 759 } 757 760
Note: See TracChangeset
for help on using the changeset viewer.