Changeset 556 for trunk/VUT/GtpVisibilityPreprocessor/src/RssTree.cpp
- Timestamp:
- 01/19/06 15:30:44 (18 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/VUT/GtpVisibilityPreprocessor/src/RssTree.cpp
r551 r556 1030 1030 // if ( (int)(leaf->rays.size()) < termMinCost) 1031 1031 // stat.minCostNodes++; 1032 if ( leaf->GetPvsSize() < termMinPvs)1032 if ( leaf->GetPvsSize() <= termMinPvs) 1033 1033 stat.minPvsNodes++; 1034 1034 1035 if ( leaf->GetPvsSize() < termMinRays)1035 if ( leaf->GetPvsSize() <= termMinRays) 1036 1036 stat.minRaysNodes++; 1037 1037 … … 1051 1051 RssTree::TerminationCriteriaSatisfied(RssTreeLeaf *leaf) 1052 1052 { 1053 return ( (leaf->GetPvsSize() < termMinPvs) ||1054 (leaf->rays.size() < termMinRays) ||1053 return ( (leaf->GetPvsSize() <= termMinPvs) || 1054 (leaf->rays.size() <= termMinRays) || 1055 1055 // (leaf->GetAvgRayContribution() > termMaxRayContribution ) || 1056 1056 (leaf->depth >= termMaxDepth) || … … 2081 2081 ri++) { 2082 2082 Intersectable *object = (*ri).GetObject(); 2083 if (object && !object->Mailed()) { 2084 object->Mail(); 2085 pvs.push_back(object); 2086 if (exporter) 2087 exporter->ExportIntersectable(object); 2088 } 2089 } 2090 2083 if (object) { 2084 if (!object->Mailed()) { 2085 object->Mail(); 2086 object->mCounter = 1; 2087 pvs.push_back(object); 2088 if (exporter) 2089 exporter->ExportIntersectable(object); 2090 } else { 2091 object->mCounter++; 2092 } 2093 } 2094 } 2095 // sort objects based on their mCounter 2096 sort(pvs.begin(), pvs.end(), Intersectable::GreaterCounter); 2097 2091 2098 float extendedConvexCombinationProb = 0.0f; //0.7f 2092 float silhouetteCheckPercentage = 0. 0f; //0.5f2099 float silhouetteCheckPercentage = 0.5f; //0.5f 2093 2100 for (int i=0; generated < numberOfRays && i < numberOfTries; i++) { 2094 2101 bool useExtendedConvexCombination = ((nrays >= 2) && (Random(1.0f) < … … 2179 2186 oi++) { 2180 2187 Intersectable *object = *oi; 2181 2182 2188 if ( object->CastRay(traversalRay) ) { 2183 2189 intersects = true; … … 2197 2203 2198 2204 // cout<<"desired="<<numberOfRays<<" tries="<<i<<endl; 2199 // assign p robabilitites to the generated rays2200 float p = (box.GetVolume()*dirBox.GetVolume())/ generated;2205 // assign pdfs to the generated rays 2206 float p = (box.GetVolume()*dirBox.GetVolume())/i; 2201 2207 for (i=startIndex; i < rays.size(); i++) { 2202 rays[i].mP robability= p;2203 rays.mSumP robabilities+= p;2208 rays[i].mPdf = p; 2209 rays.mSumPdf += p; 2204 2210 } 2205 2211
Note: See TracChangeset
for help on using the changeset viewer.