Changeset 1771 for GTP/trunk/Lib/Vis
- Timestamp:
- 11/20/06 14:02:29 (18 years ago)
- Location:
- GTP/trunk/Lib/Vis/Preprocessing/src
- Files:
-
- 18 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/Lib/Vis/Preprocessing/src/Environment.cpp
r1761 r1771 1710 1710 "sampling"); 1711 1711 1712 RegisterOption("Preprocessor.stats", 1713 optString, 1714 "preprocessor_stats=", 1715 "stats.log"); 1716 1712 1717 RegisterOption("Preprocessor.samplesFilename", 1713 1718 optString, … … 1794 1799 "preprocessor_histogram_intervals=", 1795 1800 "20"); 1801 1802 RegisterOption("Preprocessor.histogram.file", 1803 optString, 1804 "preprocessor_histogram_file=", 1805 "histogram.log"); 1796 1806 1797 1807 RegisterOption("Preprocessor.exportKdTree", -
GTP/trunk/Lib/Vis/Preprocessing/src/GvsPreprocessor.h
r1563 r1771 119 119 ////////////////////// 120 120 121 ofstream mStats;122 121 123 122 int mSamplesPerPass; -
GTP/trunk/Lib/Vis/Preprocessing/src/Preprocessor.cpp
r1769 r1771 151 151 char buffer[256]; 152 152 Environment::GetSingleton()->GetStringValue("Preprocessor.visibilityFile", buffer); 153 154 153 mVisibilityFileName = buffer; 154 155 Environment::GetSingleton()->GetStringValue("Preprocessor.stats", buffer); 156 mStats.open(buffer); 157 158 155 159 Environment::GetSingleton()->GetBoolValue("Preprocessor.applyVisibilityFilter", mApplyVisibilityFilter); 156 160 Environment::GetSingleton()->GetBoolValue("Preprocessor.applyVisibilitySpatialFilter", … … 935 939 } 936 940 937 int Preprocessor::GenerateRays(const int number, 938 const int sampleType, 939 SimpleRayContainer &rays) 940 { 941 const int startSize = (int)rays.size(); 942 SamplingStrategy *strategy = GenerateSamplingStrategy(sampleType); 943 944 if (!strategy) 945 { 946 return 0; 947 } 948 949 int castRays = 0; 950 951 for (int i = 0; (int)rays.size() - startSize < number; ++ i) 952 { 953 SimpleRay newRay; 954 955 if (strategy->GenerateSample(newRay)) 956 { 941 942 int 943 Preprocessor::GenerateRays(const int number, 944 const SamplingStrategy &strategy, 945 SimpleRayContainer &rays) 946 { 947 return strategy.GenerateSamples(number, rays); 948 } 949 950 int 951 Preprocessor::GenerateRays(const int number, 952 const int sampleType, 953 SimpleRayContainer &rays) 954 { 955 const int startSize = (int)rays.size(); 956 SamplingStrategy *strategy = GenerateSamplingStrategy(sampleType); 957 int castRays = 0; 958 959 if (!strategy) 960 { 961 return 0; 962 } 963 957 964 #if 1 958 rays.AddRay(newRay); 959 ++ castRays; 965 if (!strategy->GenerateSamples(number, rays)) 966 return false; 967 ++ castRays; 960 968 #else 961 962 969 GenerateRayBundle(rays, newRay, 16, 0); 970 castRays += 16; 963 971 #endif 964 } 965 } 966 967 delete strategy; 968 return castRays; 972 973 delete strategy; 974 return castRays; 969 975 } 970 976 … … 1155 1161 } 1156 1162 1157 1158 } 1163 void 1164 Preprocessor::EvalViewCellHistogram() 1165 { 1166 char filename[256]; 1167 Environment::GetSingleton()->GetStringValue("Preprocessor.histogram.file", 1168 filename); 1169 1170 // mViewCellsManager->EvalViewCellHistogram(filename, 1000000); 1171 mViewCellsManager->EvalViewCellHistogramForPvsSize(filename, 1000000); 1172 } 1173 1174 } -
GTP/trunk/Lib/Vis/Preprocessing/src/Preprocessor.h
r1765 r1771 121 121 bool ExportKdTree(const string filename); 122 122 123 virtual int GenerateRays(const int number, 124 const int raysType, 125 SimpleRayContainer &rays); 126 127 bool GenerateRayBundle(SimpleRayContainer &rayBundle, 128 const SimpleRay &mainRay, 129 const int number, 130 const int shuffleType) const; 131 132 virtual void CastRays(SimpleRayContainer &rays, 133 VssRayContainer &vssRays, 134 const bool castDoubleRays, 135 const bool pruneInvalidRays = true); 136 123 virtual int 124 GenerateRays(const int number, 125 const SamplingStrategy &strategy, 126 SimpleRayContainer &rays); 127 128 virtual int GenerateRays(const int number, 129 const int raysType, 130 SimpleRayContainer &rays); 131 132 bool GenerateRayBundle(SimpleRayContainer &rayBundle, 133 const SimpleRay &mainRay, 134 const int number, 135 const int shuffleType) const; 136 137 virtual void CastRays(SimpleRayContainer &rays, 138 VssRayContainer &vssRays, 139 const bool castDoubleRays, 140 const bool pruneInvalidRays = true); 141 137 142 /** Returns a view cells manager of the given name. 138 143 */ … … 197 202 bool mExportObj; 198 203 204 ofstream mStats; 205 199 206 protected: 200 207 … … 209 216 210 217 void EvalPvsStat(); 218 219 virtual void 220 EvalViewCellHistogram(); 211 221 212 222 ///////////////////////// -
GTP/trunk/Lib/Vis/Preprocessing/src/RayCaster.cpp
r1757 r1771 96 96 return 0; 97 97 } 98 99 98 } 100 99 … … 121 120 const bool validSample = !pruneInvalidRays || (hitA.mObject != hitB.mObject); 122 121 122 123 123 #if DEBUG_RAYCAST 124 124 Debug<<"PR2"<<flush; 125 125 #endif 126 126 127 if (validSample) 128 { 127 if (validSample) { 129 128 if (!pruneInvalidRays || hitA.mObject) 130 129 { … … 137 136 simpleRay.mPdf 138 137 ); 139 138 if (validA) 139 vssRay->mFlags |= VssRay::Valid; 140 140 vssRays.push_back(vssRay); 141 141 ++ hits; … … 157 157 simpleRay.mPdf 158 158 ); 159 if (validB) 160 vssRay->mFlags |= VssRay::Valid; 159 161 160 162 vssRays.push_back(vssRay); -
GTP/trunk/Lib/Vis/Preprocessing/src/RssPreprocessor.cpp
r1765 r1771 51 51 Environment::GetSingleton()->GetBoolValue("RssPreprocessor.updateSubdivision", mUpdateSubdivision); 52 52 53 mStats.open("stats.log");54 53 mRssTree = NULL; 55 54 } … … 365 364 366 365 void 366 NormalizeRatios(vector<SamplingStrategy *> distributions) 367 { 368 int i; 369 float sumRatios = 0.0f; 370 371 for (i=0; i < distributions.size(); i++) 372 sumRatios += distributions[i]->mRatio; 373 374 375 if (sumRatios == 0.0f) { 376 for (i=0; i < distributions.size(); i++) { 377 distributions[i]->mRatio = 1.0f; 378 sumRatios += 1.0f; 379 } 380 } 381 382 for (i=0 ; i < distributions.size(); i++) 383 distributions[i]->mRatio/=sumRatios; 384 385 #define MIN_RATIO 0.1f 386 387 for (i = 0; i < distributions.size(); i++) 388 if (distributions[i]->mRatio < MIN_RATIO) 389 distributions[i]->mRatio = MIN_RATIO; 390 391 392 sumRatios = 0.0f; 393 for (i=0; i < distributions.size(); i++) 394 sumRatios += distributions[i]->mRatio; 395 396 for (i=0 ; i < distributions.size(); i++) 397 distributions[i]->mRatio/=sumRatios; 398 399 400 } 401 402 void 367 403 NormalizeRatios(float ratios[4]) 368 404 { … … 432 468 int rssSamples = 0; 433 469 434 mDistributions.push_back( SamplingDistribution(SamplingStrategy::RSS_BASED_DISTRIBUTION));435 mDistributions.push_back( SamplingDistribution(SamplingStrategy::SPATIAL_BOX_BASED_DISTRIBUTION));436 mDistributions.push_back( SamplingDistribution(SamplingStrategy::DIRECTION_BASED_DISTRIBUTION));437 mDistributions.push_back( SamplingDistribution(SamplingStrategy::REVERSE_OBJECT_BASED_DISTRIBUTION));470 mDistributions.push_back(new RssBasedDistribution(*this)); 471 mDistributions.push_back(new SpatialBoxBasedDistribution(*this)); 472 mDistributions.push_back(new DirectionBasedDistribution(*this)); 473 mDistributions.push_back(new ReverseObjectBasedDistribution(*this)); 438 474 439 475 if (mLoadInitialSamples) { … … 871 907 // view cells after sampling 872 908 mViewCellsManager->PrintStatistics(Debug); 873 909 910 EvalViewCellHistogram(); 911 874 912 //-- render simulation after merge 875 913 cout << "\nevaluating bsp view cells render time after sampling ... "; -
GTP/trunk/Lib/Vis/Preprocessing/src/RssPreprocessor.h
r1765 r1771 14 14 class RssTreeLeaf; 15 15 16 class SamplingDistribution {17 public:18 SamplingDistribution() {}19 SamplingDistribution(const int t):mType(t) {}20 int mType;21 int mRays;22 float mContribution;23 float mTime;24 };25 16 26 17 /** Sampling based visibility preprocessing. The implementation is … … 30 21 31 22 public: 32 vector<Sampling Distribution> mDistributions;23 vector<SamplingStrategy *> mDistributions; 33 24 int mSamplesPerPass; 34 25 int mRssSamplesPerPass; … … 51 42 52 43 53 ofstream mStats;54 44 RssTree *mRssTree; 55 45 -
GTP/trunk/Lib/Vis/Preprocessing/src/SamplingPreprocessor.cpp
r1761 r1771 22 22 Environment::GetSingleton()->GetIntValue("SamplingPreprocessor.totalSamples", mTotalSamples); 23 23 24 mStats.open("stats.log");25 24 } 26 25 … … 125 124 } 126 125 127 for (int j=0; j < vssRays.size(); j++) { 128 Intersectable *obj = mViewCellsManager->GetIntersectable(*(vssRays[j]), 129 true); 130 if (obj) { 131 // if ray not outside of view space 126 for (int j=0; j < vssRays.size(); j++) 127 if (vssRays[j]->mFlags & VssRay::Valid) { 128 Intersectable *obj = mViewCellsManager->GetIntersectable(*(vssRays[j]), 129 true); 130 if (obj) { 131 // if ray not outside of view space 132 132 float contribution; 133 133 int pvsContribution = 0; … … 141 141 relativePvsContribution += contribution; 142 142 viewcell->GetPvs().AddSample(obj, pdf); 143 } 143 144 } 144 }145 145 146 146 CLEAR_CONTAINER(vssRays); … … 180 180 mViewCellsManager->PrintStatistics(Debug); 181 181 182 EvalViewCellHistogram(); 183 182 184 //-- render simulation after merge 183 185 cout << "\nevaluating bsp view cells render time after merge ... "; -
GTP/trunk/Lib/Vis/Preprocessing/src/SamplingPreprocessor.h
r1743 r1771 50 50 int mTotalSamples; 51 51 52 ofstream mStats;53 52 ObjectContainer mObjects; 54 53 -
GTP/trunk/Lib/Vis/Preprocessing/src/SamplingStrategy.cpp
r1769 r1771 20 20 } 21 21 22 int 23 SamplingStrategy::GenerateSamples(const int number, 24 SimpleRayContainer &rays) const 25 { 26 SimpleRay ray; 27 int i = 0; 28 for (; i < number; i++) { 29 if (!GenerateSample(ray)) 30 return i; 31 rays.push_back(ray); 32 } 33 34 return i; 35 } 22 36 23 37 … … 264 278 265 279 #endif 266 } 280 281 bool 282 RssBasedDistribution::GenerateSample(SimpleRay &ray) const 283 { 284 return false; 285 } 286 287 } 288 289 -
GTP/trunk/Lib/Vis/Preprocessing/src/SamplingStrategy.h
r1769 r1771 8 8 class Preprocessor; 9 9 struct SimpleRay; 10 class SimpleRayContainer; 10 11 11 12 /** This class generates a specific sampling strategy. … … 31 32 VIEWCELL_BORDER_BASED_DISTRIBUTION 32 33 }; 34 35 /** Default constructor 36 */ 37 SamplingStrategy(const Preprocessor &preprocessor); 38 39 virtual ~SamplingStrategy(); 40 41 /** Each strategy has to implement this function. 42 @returns true if generated valid sample. 43 */ 33 44 34 /** Default constructor 35 */ 36 SamplingStrategy(const Preprocessor &preprocessor); 45 virtual int GenerateSamples(const int number, SimpleRayContainer &rays) const; 37 46 38 virtual ~SamplingStrategy(); 47 private: 39 48 40 /** Each strategy has to implement this function. 41 @returns true if generated valid sample. 42 */ 43 virtual bool GenerateSample(SimpleRay &ray) const = 0; 49 virtual bool GenerateSample(SimpleRay &ray) const = 0; 44 50 51 public: 52 /// variables usefull for mixed distribution sampling 53 int mType; 54 int mRays; 55 float mContribution; 56 float mTime; 57 float mRatio; 58 45 59 protected: 46 47 48 60 61 const Preprocessor &mPreprocessor; 62 49 63 }; 50 64 … … 54 68 public: 55 69 56 ObjectBasedDistribution(const Preprocessor &preprocessor): 57 SamplingStrategy(preprocessor) {} 70 ObjectBasedDistribution(const Preprocessor &preprocessor): 71 SamplingStrategy(preprocessor) { 72 mType = OBJECT_BASED_DISTRIBUTION; 73 } 58 74 59 virtual bool GenerateSample(SimpleRay &ray) const; 75 private: 76 virtual bool GenerateSample(SimpleRay &ray) const; 60 77 }; 61 78 … … 66 83 67 84 ReverseObjectBasedDistribution(const Preprocessor &preprocessor): 68 SamplingStrategy(preprocessor) {} 85 SamplingStrategy(preprocessor) { 86 mType = REVERSE_OBJECT_BASED_DISTRIBUTION; 87 } 69 88 70 virtual bool GenerateSample(SimpleRay &ray) const; 89 private: 90 virtual bool GenerateSample(SimpleRay &ray) const; 71 91 }; 72 92 … … 76 96 public: 77 97 ObjectDirectionBasedDistribution(const Preprocessor &preprocessor): 78 SamplingStrategy(preprocessor) {} 98 SamplingStrategy(preprocessor) { 99 mType = OBJECT_DIRECTION_BASED_DISTRIBUTION; 100 } 101 private: 79 102 virtual bool GenerateSample(SimpleRay &ray) const; 80 103 }; … … 84 107 { 85 108 public: 86 DirectionBasedDistribution(const Preprocessor &preprocessor): 87 SamplingStrategy(preprocessor) {} 88 virtual bool GenerateSample(SimpleRay &ray) const; 109 DirectionBasedDistribution(const Preprocessor &preprocessor): 110 SamplingStrategy(preprocessor){ 111 mType = DIRECTION_BASED_DISTRIBUTION; 112 } 113 private: 114 virtual bool GenerateSample(SimpleRay &ray) const; 89 115 }; 90 116 … … 94 120 public: 95 121 DirectionBoxBasedDistribution(const Preprocessor &preprocessor): 96 SamplingStrategy(preprocessor) {} 122 SamplingStrategy(preprocessor){ 123 mType = DIRECTION_BOX_BASED_DISTRIBUTION; 124 } 97 125 126 private: 98 127 virtual bool GenerateSample(SimpleRay &ray) const; 99 128 }; … … 104 133 public: 105 134 SpatialBoxBasedDistribution(const Preprocessor &preprocessor): 106 SamplingStrategy(preprocessor) {} 135 SamplingStrategy(preprocessor){ 136 mType = SPATIAL_BOX_BASED_DISTRIBUTION; 137 } 107 138 139 private: 108 140 virtual bool GenerateSample(SimpleRay &ray) const; 109 141 }; 110 142 143 class RssBasedDistribution: public SamplingStrategy 144 { 145 public: 146 RssBasedDistribution(const Preprocessor &preprocessor): 147 SamplingStrategy(preprocessor){ 148 mType = RSS_BASED_DISTRIBUTION; 149 } 150 151 152 virtual int GenerateSamples(const int number, SimpleRayContainer &ray) const { 153 // TBD!!! 154 return 0; 155 } 156 157 private: 158 virtual bool GenerateSample(SimpleRay &ray) const; 159 160 }; 111 161 112 162 class ViewCellBorderBasedDistribution: public SamplingStrategy 113 163 { 114 164 public: 115 116 117 118 165 ViewCellBorderBasedDistribution(const Preprocessor &preprocessor): 166 SamplingStrategy(preprocessor) {} 167 168 virtual bool GenerateSample(SimpleRay &ray) const; 119 169 }; 120 170 -
GTP/trunk/Lib/Vis/Preprocessing/src/ViewCell.h
r1761 r1771 108 108 109 109 int mPvsSizeDecr; 110 110 111 111 112 float mVolume; 112 113 … … 271 272 float GetMergeCost() const; 272 273 273 274 float GetCachedPvsCost() const { 274 void UpdatePvsCost() { 275 mPvsCost = GetPvs().EvalPvsCost(); 276 } 277 278 void SetPvsCost(const float c) { 279 mPvsCost = c; 280 } 281 282 float GetPvsCost() const { 275 283 return mPvsCost; 276 284 } … … 299 307 static int sReservedMailboxes; 300 308 309 int GetFilteredPvsSize() const { 310 return mFilteredPvsSize; 311 } 312 313 void SetFilteredPvsSize(const int s) { 314 mFilteredPvsSize = s; 315 } 301 316 302 317 protected: … … 327 342 */ 328 343 bool mPvsSizeValid; 344 345 /// Filter cost of the pvs 346 int mFilteredPvsSize; 347 329 348 }; 330 349 -
GTP/trunk/Lib/Vis/Preprocessing/src/ViewCellsManager.cpp
r1769 r1771 34 34 // $$JB HACK 35 35 #define USE_KD_PVS 0 36 #define KD_PVS_AREA (1e- 4f)36 #define KD_PVS_AREA (1e-5f) 37 37 38 38 … … 599 599 600 600 ViewCellContainer viewCells; 601 // $$ JB hack - the collect best viewcells does not work? 602 #if 1 601 603 mViewCellsTree->CollectBestViewCellSet(viewCells, nViewCells); 604 #else 605 viewCells = mViewCells; 606 #endif 602 607 603 608 float maxRenderCost, minRenderCost; … … 823 828 824 829 ViewCellContainer viewCells; 830 831 // $$ JB hack - the collect best viewcells does not work? 832 #if 0 825 833 mViewCellsTree->CollectBestViewCellSet(viewCells, nViewCells); 834 #else 835 viewCells = mViewCells; 836 #endif 837 ViewCellContainer::iterator it = viewCells.begin(), it_end = viewCells.end(); 838 for (; it != it_end; ++it) { 839 //(*it)->UpdatePvsCost(); 840 (*it)->SetPvsCost((*it)->GetFilteredPvsSize()); 841 } 842 826 843 827 844 float maxPvs, maxVal, minVal; 828 845 829 846 // sort by pvs size 830 847 sort(viewCells.begin(), viewCells.end(), ViewCell::SmallerPvs); 831 848 832 maxPvs = mViewCellsTree->GetPvsCost(viewCells.back());849 maxPvs = viewCells.back()->GetPvsCost(); 833 850 minVal = 0; 834 851 … … 863 880 int smallerSum = 0; 864 881 865 ViewCellContainer::const_iterator it = viewCells.begin(), it_end = viewCells.end();882 it = viewCells.begin(); 866 883 867 884 for (int j = 0; j < intervals; ++ j) … … 871 888 872 889 while ((i < (int)viewCells.size()) && 873 ( mViewCellsTree->GetPvsCost(viewCells[i]) < currentPvs))890 (viewCells[i]->GetPvsCost() < currentPvs)) 874 891 { 875 892 volDif += viewCells[i]->GetVolume(); … … 881 898 } 882 899 883 if (0 && (i < (int)viewCells.size()))884 885 << " " << currentPvs << endl;886 900 // if (0 && (i < (int)viewCells.size())) 901 // Debug << "new pvs cost increase: " << mViewCellsTree->GetPvsCost(viewCells[i]) 902 // << " " << currentPvs << endl; 903 887 904 const float volRatioDif = volDif / totalVol; 888 905 const float volRatioSum = volSum / totalVol; … … 900 917 901 918 outstream.close(); 919 902 920 } 903 921 … … 1804 1822 1805 1823 stat.avgFilterRadius += fstat.mAvgFilterRadius; 1806 stat.avgFilterRatio += fstat.mLocalFilterCount / (float) fstat.mGlobalFilterCount; 1824 int sum = fstat.mGlobalFilterCount + fstat.mLocalFilterCount; 1825 if (sum) { 1826 stat.avgFilterRatio += fstat.mLocalFilterCount / 1827 (float) sum; 1828 } 1807 1829 1808 1830 … … 2578 2600 float samples = (float)basePvs.GetSamples(); 2579 2601 2580 cout<<"f #s="<<samples<<"pvs size = "<<basePvs.GetSize();2602 Debug<<"f #s="<<samples<<"pvs size = "<<basePvs.GetSize(); 2581 2603 // cout<<"Filter size = "<<filterSize<<endl; 2582 2604 // cout<<"vbox = "<<vbox<<endl; … … 2681 2703 } 2682 2704 2683 cout<<" nPvs size = "<<pvs.GetSize()<<endl;2705 Debug<<" nPvs size = "<<pvs.GetSize()<<endl; 2684 2706 2685 2707 #if !USE_KD_PVS … … 2691 2713 } 2692 2714 #endif 2715 viewCell->SetFilteredPvsSize(pvs.GetSize()); 2693 2716 2694 2717 Intersectable::NewMail(); -
GTP/trunk/Lib/Vis/Preprocessing/src/VssPreprocessor.cpp
r1743 r1771 47 47 Debug << "*********** end vss preprocessor options **************" << endl; 48 48 49 mStats.open("stats.log");50 49 } 51 50 -
GTP/trunk/Lib/Vis/Preprocessing/src/VssPreprocessor.h
r1723 r1771 28 28 //AxisAlignedBox3 mViewSpaceBox; 29 29 30 ofstream mStats;31 30 32 31 ObjectContainer mObjects; -
GTP/trunk/Lib/Vis/Preprocessing/src/VssRay.h
r1715 r1771 24 24 FPosDirZ = 4, // the direction of ray in Z-axis is positive 25 25 BorderSample = 8,// if this ray is an adaptive border ray 26 ReverseSample = 16 // if this ray is a reverse sample 26 ReverseSample = 16, // if this ray is a reverse sample 27 Valid = 32 // this ray is a valid ray 28 //(with respect to detect empty viewspace) 27 29 }; 28 30 -
GTP/trunk/Lib/Vis/Preprocessing/src/default.env
r1761 r1771 63 63 loadKdTree false 64 64 exportKdTree false 65 66 histogram { 67 intervals 20 68 maxValue 1000 69 file histogram.log 70 } 65 71 } 66 72 … … 76 82 SamplingPreprocessor { 77 83 totalSamples 50000000 78 samplesPerPass 300000084 samplesPerPass 5000000 79 85 } 80 86 … … 84 90 vssSamples 50000000 85 91 # vssSamples 1000000 86 vssSamplesPerPass 300000092 vssSamplesPerPass 5000000 87 93 useImportanceSampling true 88 94 -
GTP/trunk/Lib/Vis/Preprocessing/src/run_test2
r1757 r1771 29 29 VIEWCELLS=../data/vienna/vienna_cropped-gradient-viewcells.xml.gz 30 30 31 PREFIX=../work/plots/osp-rss 31 PREFIX=../work/plots/osp-rss-1e5 32 32 33 33 #SCENE=../data/atlanta/atlanta2.x3d 34 34 #PREFIX=../work/plots/atlanta2-rss9 35 35 36 #$COMMAND -scene_filename=$SCENE -rss_use_importance+ -rss_update_subdivision-37 #mv stats.log $PREFIX-i-combined-b3.log38 39 #$COMMAND -scene_filename=$SCENE -view_cells_filename=$VIEWCELLS \40 #-rss_use_importance+ -rss_update_subdivision+ -rss_split=regular \41 #-view_cells_filter_max_size=142 43 #mv stats.log $PREFIX-i-combined-update-ccb3.log44 45 # $COMMAND -scene_filename=$SCENE -view_cells_filename=$VIEWCELLS \46 # -rss_use_importance+ -rss_update_subdivision+ -rss_split=heuristic \47 # -view_cells_filter_max_size=148 49 # mv stats.log $PREFIX-i-combined-update-ccb4.log50 36 51 37 $COMMAND -preprocessor=sampling -scene_filename=$SCENE -view_cells_filename=$VIEWCELLS \ 52 -view_cells_filter_max_size=1 53 mv stats.log $PREFIX-r-reference.log 38 -view_cells_filter_max_size=1 -preprocessor_stats=$PREFIX-r-reference.log \ 39 -preprocessor_histogram_file=$PREFIX-r-reference.hlog 54 40 55 41 56 42 $COMMAND -scene_filename=$SCENE -view_cells_filename=$VIEWCELLS \ 57 43 -rss_use_importance+ -rss_update_subdivision+ -rss_split=hybrid -hybrid_depth=10 \ 58 -view_cells_filter_max_size=1 59 mv stats.log $PREFIX-i-combined-update-ccb12.log 44 -view_cells_filter_max_size=1 -preprocessor_stats=$PREFIX-i-combined-update-ccb12.log \ 45 -preprocessor_histogram_file=$PREFIX-i-combined-update-ccb12.hlog 60 46 61 47 … … 65 51 $COMMAND -scene_filename=$SCENE -view_cells_filename=$VIEWCELLS \ 66 52 -rss_use_importance- -rss_object_based_sampling- -rss_directional_sampling+ \ 67 -view_cells_filter_max_size=1 68 mv stats.log $PREFIX-r-directional-based-b3.log 69 53 -view_cells_filter_max_size=1 -preprocessor_stats=$PREFIX-r-directional-based-b3.log \ 54 -preprocessor_histogram_file=$PREFIX-r-directional-based-b3.hlog 70 55 71 56 $COMMAND -scene_filename=$SCENE -view_cells_filename=$VIEWCELLS \ 72 57 -rss_use_importance- -rss_object_based_sampling- -rss_directional_sampling- \ 73 -view_cells_filter_max_size=1 74 mv stats.log $PREFIX-r-spatial-based-bb3.log58 -view_cells_filter_max_size=1 -preprocessor_stats=$PREFIX-r-spatial-based-bb3.log \ 59 -preprocessor_histogram_file=$PREFIX-r-spatial-based-bb3.hlog 75 60 76 61 77 62 78 $COMMAND -scene_filename=$SCENE -rss_use_importance- -rss_object_based_sampling- -rss_directional_sampling+79 mv stats.log $PREFIX-r-direction-based-b3.log80 81 82 83 #-vss_samples=50000000084 85
Note: See TracChangeset
for help on using the changeset viewer.