Changeset 668


Ignore:
Timestamp:
03/01/06 18:30:23 (18 years ago)
Author:
mattausch
Message:
 
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/Lib/Vis/Preprocessing/scripts/egsr_test_script

    r667 r668  
    33 
    44#SCENE=soda5 
    5 SCENE=soda 
    6 #SCENE=atlanta 
     5#SCENE=soda 
     6SCENE=atlanta 
    77#SCENE=vienna 
    88 
     
    2222METHOD=vspbsp 
    2323 
    24 $PROGRAM $ENVIRONMENT \ 
    25 -view_cells_type=vspBspTree \ 
    26 -view_cells_evaluation_stats_prefix=$LOG_PREFIX-$METHOD \ 
    27 -view_cells_merge_stats=$LOG_PREFIX-$METHOD-mergeStats.log \ 
    28 -vsp_bsp_subdivision_stats=$LOG_PREFIX-$METHOD-subdivisionStats.log \ 
    29 -view_cells_post_process_merge=true \ 
     24echo "$SCENE $METHOD" 
     25 
     26 
     27$PROGRAM $ENVIRONMENT \ 
     28-view_cells_type=vspBspTree \ 
     29-view_cells_evaluation_stats_prefix=$LOG_PREFIX-$METHOD \ 
     30-view_cells_merge_stats=$LOG_PREFIX-$METHOD-mergeStats.log \ 
     31-vsp_bsp_subdivision_stats=$LOG_PREFIX-$METHOD-subdivisionStats.log \ 
     32-view_cells_post_process_merge=true \ 
     33-view_cells_filename=$LOG_PREFIX-$METHOD-viewCells.x3d 
     34 
     35mv debug.log $LOG_PREFIX-$METHOD-debug.log 
     36 
     37 
     38 
     39################################################################ 
     40#           vspbsptree (only subdivision)                      # 
     41################################################################ 
     42 
     43# 
     44# only view space subdivision, no merge 
     45# 
     46 
     47 
     48METHOD=onlysubdiv 
     49 
     50echo "$SCENE $METHOD" 
     51 
     52$PROGRAM $ENVIRONMENT \ 
     53-view_cells_type=vspBspTree \ 
     54-view_cells_evaluation_stats_prefix=$LOG_PREFIX-$METHOD \ 
     55-view_cells_merge_stats=$LOG_PREFIX-$METHOD-mergeStats.log \ 
     56-vsp_bsp_subdivision_stats=$LOG_PREFIX-$METHOD-subdivisionStats.log \ 
     57-view_cells_post_process_merge=false \ 
    3058-view_cells_filename=$LOG_PREFIX-$METHOD-viewCells.x3d 
    3159 
     
    4472METHOD=bsp 
    4573 
     74echo "$SCENE $METHOD" 
     75 
    4676$PROGRAM $ENVIRONMENT \ 
    4777-view_cells_type=bspTree \ 
     
    6595 
    6696METHOD=nirenstein 
     97 
     98echo "$SCENE $METHOD" 
    6799 
    68100$PROGRAM $ENVIRONMENT \ 
     
    98130METHOD=kd 
    99131 
     132echo "$SCENE $METHOD" 
     133 
    100134$PROGRAM $ENVIRONMENT \ 
    101135-view_cells_type=vspBspTree \ 
     
    126160METHOD=octree 
    127161 
     162echo "$SCENE $METHOD" 
     163 
    128164$PROGRAM $ENVIRONMENT \ 
    129165-view_cells_type=vspBspTree \ 
     
    145181 
    146182 
    147  
    148183# 
    149184#  for internal testing only 
     
    153188 
    154189################################################################ 
    155 #           vspbsptree (only subdivision)                      # 
    156 ################################################################ 
    157  
    158 # 
    159 # only view space subdivision, no merge 
    160 # 
    161  
    162  
    163 METHOD=onlysubdiv 
    164  
    165 $PROGRAM $ENVIRONMENT \ 
    166 -view_cells_type=vspBspTree \ 
    167 -view_cells_evaluation_stats_prefix=$LOG_PREFIX-$METHOD \ 
    168 -view_cells_merge_stats=$LOG_PREFIX-$METHOD-mergeStats.log \ 
    169 -vsp_bsp_subdivision_stats=$LOG_PREFIX-$METHOD-subdivisionStats.log \ 
    170 -view_cells_post_process_merge=false \ 
    171 -view_cells_filename=$LOG_PREFIX-$METHOD-viewCells.x3d 
    172  
    173 mv debug.log $LOG_PREFIX-$METHOD-debug.log 
    174  
    175  
    176  
    177 ################################################################ 
    178190#             vspbsptree - few samples                         # 
    179191################################################################ 
     
    184196 
    185197METHOD=vsp-many-samples 
     198 
     199echo "$SCENE $METHOD" 
    186200 
    187201$PROGRAM $ENVIRONMENT \ 
     
    208222METHOD=vsp-good-merge 
    209223 
     224echo "$SCENE $METHOD" 
     225 
    210226$PROGRAM $ENVIRONMENT \ 
    211227-view_cells_type=vspBspTree \ 
     
    231247 
    232248METHOD=vsp-many-samples 
     249 
     250echo "$SCENE $METHOD" 
    233251 
    234252$PROGRAM $ENVIRONMENT \ 
     
    255273METHOD=vsp-many-samples-no-split-queue 
    256274 
     275echo "$SCENE $METHOD" 
     276 
    257277$PROGRAM $ENVIRONMENT \ 
    258278-view_cells_type=vspBspTree \ 
  • GTP/trunk/Lib/Vis/shared/EvalStats/EvalStats.cpp

    r667 r668  
    1515        difference in percent of the weighted render cost. 
    1616*/ 
    17 bool extractRenderCost(ifstream &file, vector<float> &renderCosts) 
     17 
     18 
     19struct RenderStats  
     20{ 
     21        float mRenderCost; 
     22        float mAvgRenderCost; 
     23}; 
     24 
     25 
     26typedef vector<RenderStats> StatsContainer; 
     27 
     28 
     29enum {NO_TAG, RENDER_COST, AVG_RENDER_COST}; 
     30 
     31 
     32bool extractRenderStats(ifstream &file, StatsContainer &renderStats) 
    1833{ 
    1934        if (!file.is_open()) 
     
    2136                 
    2237        string buf; 
    23         bool isRenderCost = false; 
    2438 
     39        int currentTag = NO_TAG; 
     40         
    2541        while (!(getline(file, buf)).eof()) 
    2642        { 
     43                //cout << "buf: " << buf << endl; 
     44 
    2745                if (buf[0] == '#') 
    2846                { 
     
    3149                        sscanf(buf.c_str(), "#%s", entry); 
    3250                         
    33                         if (strcmp(entry, "TotalRenderCost") == 0) 
    34                                 isRenderCost = true; 
     51                        // new entry 
     52                        if (strcmp(entry, "Pass") == 0) 
     53                        { 
     54                                //cout << "\nnew render stat " << endl; 
     55                                renderStats.push_back(RenderStats()); 
     56                        } 
     57                        else if (strcmp(entry, "TotalRenderCost") == 0) 
     58                        { 
     59                                currentTag = RENDER_COST; 
     60                        } 
     61                        else if (strcmp(entry, "AvgRenderCost") == 0) 
     62                        { 
     63                                currentTag = AVG_RENDER_COST; 
     64                        } 
    3565                } 
    36                 else if (isRenderCost) 
     66                else 
    3767                { 
    38                         float rc; 
    39                         sscanf(buf.c_str(), "%f", &rc); 
     68                        float val; 
     69                        sscanf(buf.c_str(), "%f", &val); 
    4070                         
    41                         renderCosts.push_back(rc); 
    42                         isRenderCost = false; 
     71                        switch (currentTag) 
     72                        { 
     73                        case RENDER_COST: 
     74                                //cout << "render cost: " << val << endl; 
     75                renderStats.back().mRenderCost = val; 
     76                                break; 
     77                        case AVG_RENDER_COST: 
     78                                //cout << "avg render cost: " << val << endl; 
     79                                renderStats.back().mAvgRenderCost = val; 
     80                                break; 
     81                        default: 
     82                                break; 
     83                        } 
     84                         
     85                        currentTag = NO_TAG; 
    4386                } 
    4487        } 
     
    4790} 
    4891 
     92 
     93 
     94void ComputeStats(ofstream &statsOut,  
     95                                  const RenderStats &firstStats,  
     96                                  const RenderStats &currentStats,  
     97                                  const int index) 
     98{ 
     99        float denom = currentStats.mRenderCost ? currentStats.mRenderCost : 0.000001f; 
     100        float costRatio = firstStats.mRenderCost / denom; 
     101                         
     102        denom = firstStats.mAvgRenderCost ? firstStats.mAvgRenderCost : 0.000001f; 
     103        float avgCostRatio = firstStats.mAvgRenderCost / denom; 
     104 
     105        statsOut << "#ViewCells\n" << index + 1 << endl 
     106                         << "#TotalRenderCostGain\n" << 100.0f - costRatio * 100.0f << endl 
     107                         << "#AvgRenderCostGain\n" << 100.0f - avgCostRatio * 100.0f << endl << endl; 
     108} 
     109 
     110 
     111 
    49112int _tmain(int argc, _TCHAR* argv[]) 
    50113{ 
    51         vector<float> renderCosts1; 
    52         vector<float> renderCosts2; 
     114        vector<StatsContainer> renderStats; 
    53115         
    54         if (argc < 4) 
     116        if (argc < 3) 
    55117        { 
    56                 cerr << "arguments missing" << endl; 
     118                cerr << "arguments missing. Usage: input1 input2 ... intputn" << endl; 
    57119                exit(1); 
    58120        } 
    59121 
     122        vector<string> outFilenames; 
    60123 
    61         // read two files and the output file 
     124        // read input files from command line 
     125        for (int i = 1; i < argc; ++ i) 
     126        { 
     127                StatsContainer currentStats; 
     128       
     129                ifstream file(argv[i]); 
    62130 
    63         // read file 1 
    64         ifstream file1(argv[1]); 
     131                // extract the render cost 
     132                cout << "extracting render cost of file " << argv[i] << endl; 
     133                cout.flush(); 
    65134 
    66         // extract the render cost 
    67         cout << "extracting render cost of file " << argv[1] << endl; 
    68         cout.flush(); 
    69         extractRenderCost(file1, renderCosts1); 
     135                extractRenderStats(file, currentStats); 
     136                renderStats.push_back(currentStats); 
    70137 
    71         // read file 2 
    72     ifstream file2(argv[2]); 
    73         cout << "extracting render cost of file " << argv[2] << endl; 
    74         cout.flush(); 
    75         extractRenderCost(file2, renderCosts2); 
     138                // create output file name 
     139                string fn = argv[i]; 
     140                 
     141                string::size_type pos = fn.find(".log", 0); 
     142                fn.erase(pos, 4); 
     143                //sscanf(argv[i], "%s.log", fn); 
     144                string outFilename = string(fn) + string("-ratio.log"); 
    76145 
    77  
    78         cout << "writing output to file " << argv[3] << endl; 
    79  
    80         ofstream statsOut(argv[3]); 
     146                outFilenames.push_back(outFilename); 
     147        } 
    81148 
    82149        //statsOut << "rc1 size: " << (int)renderCosts1.size() << " " << (int)renderCosts2.size() << endl << endl; 
    83         int n = min((int)renderCosts1.size(), (int)renderCosts2.size()); 
     150        vector<StatsContainer>::const_iterator it = renderStats.begin(), it_end = renderStats.end(); 
     151        vector<string>::const_iterator sit, sit_end = outFilenames.end(); 
     152 
     153        sit = outFilenames.begin(); 
    84154         
    85         if (argc > 4) 
     155        // compare all values with this vector 
     156        StatsContainer &firstStats = renderStats[0]; 
     157 
     158        // don't compare with itself 
     159        ++ it; 
     160        ++ sit; 
     161 
     162        for (it; it != it_end; ++ it) 
    86163        { 
    87                 char *endptr = NULL; 
    88                          
    89                 int limit = strtol(argv[4], &endptr, 10); 
    90                  
    91                 n = min(n, limit); 
    92         } 
     164                cout << "writing output to file " << *sit << endl; 
    93165 
    94         for (int i = 0; i < n; ++ i) 
    95         { 
    96                 float costRatio = renderCosts2[i] != 0 ?  
    97                         renderCosts1[i] / renderCosts2[i] : renderCosts1[i] / 0.0000001f; 
     166                ofstream statsOut((*sit).c_str()); 
     167                ++ sit; 
    98168 
    99                 statsOut << "#ViewCells\n" << i + 1 << endl 
    100                                  << "#RenderCostRatio\n" << costRatio * 100.0f << endl; 
     169                cout << "size here" << (*it).size() << endl; 
     170                // compute size of output vector 
     171                const int n = min((int)firstStats.size(), (int)(*it).size()); 
     172         
     173                for (int i = 0; i < n; ++ i) 
     174                { 
     175                        ComputeStats(statsOut, firstStats[i], (*it)[i], i); 
     176                } 
     177                cout << "here2 " << n << endl; 
     178                statsOut.close(); 
    101179        } 
    102180 
  • GTP/trunk/Lib/Vis/shared/scripts/GtpVisibility.sln

    r643 r668  
    1717        ProjectSection(ProjectDependencies) = postProject 
    1818                {101A7691-74F3-48B4-96A3-CF35578F5900} = {101A7691-74F3-48B4-96A3-CF35578F5900} 
     19        EndProjectSection 
     20EndProject 
     21Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "EvalStats", "..\EvalStats\EvalStats.vcproj", "{935D1BDD-41B0-49F1-A86C-EB49B94DDB20}" 
     22        ProjectSection(ProjectDependencies) = postProject 
    1923        EndProjectSection 
    2024EndProject 
     
    4145                {80DECC17-BDDD-4412-8CF8-F7C1C17A7436}.Release.ActiveCfg = Release|Win32 
    4246                {80DECC17-BDDD-4412-8CF8-F7C1C17A7436}.Release.Build.0 = Release|Win32 
     47                {935D1BDD-41B0-49F1-A86C-EB49B94DDB20}.Debug.ActiveCfg = Debug|Win32 
     48                {935D1BDD-41B0-49F1-A86C-EB49B94DDB20}.Debug.Build.0 = Debug|Win32 
     49                {935D1BDD-41B0-49F1-A86C-EB49B94DDB20}.Release.ActiveCfg = Release|Win32 
     50                {935D1BDD-41B0-49F1-A86C-EB49B94DDB20}.Release.Build.0 = Release|Win32 
    4351        EndGlobalSection 
    4452        GlobalSection(ExtensibilityGlobals) = postSolution 
Note: See TracChangeset for help on using the changeset viewer.