Changeset 2723


Ignore:
Timestamp:
05/28/08 04:02:18 (16 years ago)
Author:
mattausch
Message:
 
Location:
GTP/trunk/Lib/Vis/Preprocessing
Files:
9 edited

Legend:

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

    r2722 r2723  
    88 
    99 
    10 SCENE=../data/vienna/vienna_cropped.obj 
     10#SCENE=../data/vienna/vienna_cropped.obj 
    1111#SCENE=../data/vienna/city_full.obj 
    12 #SCENE=../data/vienna/city_full_hp.obj 
     12SCENE=../data/vienna/city_full_hp.obj 
    1313#SCENE=../data/vienna/vienna_rep.obj 
    1414 
    1515VIEWCELLS=../data/vienna/vienna_cropped-gradient-viewcells.xml.gz 
    1616#VIEWCELLS=../data/vienna/vienna_cropped-seq-3000-false-20-viewcells.xml.gz 
    17 #VIEWCELLS=../data/vienna/vienna_cropped-57000-viewcells.xml.gz 
     17VIEWCELLS=../data/vienna/vienna_cropped-57000-viewcells.xml.gz 
    1818VIEWPOINTS=../data/vienna/testwalk.vp 
    1919 
     
    4040 -preprocessor_detect_empty_viewspace+ \ 
    4141 -preprocessor_use_vbos- \ 
    42  -preprocessor_ray_cast_method=1 \ 
     42 -preprocessor_ray_cast_method=3 \ 
    4343 -view_cells_random_viewpoint_list=$VIEWPOINTS \ 
    4444 demo1.env 
  • GTP/trunk/Lib/Vis/Preprocessing/scripts/run_gvs_vps.sh

    r2722 r2723  
    22 
    33# add bin to path 
    4 export PATH=../bin:../:$PATH 
     4export PATH=../bin:$PATH 
    55 
    66#TARGET=debug 
     
    1111echo "starting $TARGET version" 
    1212 
    13 SCENE=../data/Arena/arena-high-lods.obj 
    14 SCENE=../data/Arena/arena_trees.obj 
    15 VIEWCELLS=../data/Arena/arena-high-lods-5000-viewcells.xml.gz 
    16 SCENE=../data/vienna/vienna_cropped.obj 
    17 #SCENE=../data/vienna/city_full_hp.obj 
     13#SCENE=../data/Arena/arena-high-lods.obj 
     14#VIEWCELLS=../data/Arena/arena-high-lods-5000-viewcells.xml.gz 
     15#SCENE=../data/vienna/vienna_cropped.obj 
     16#SCENE=../data/roofs_new.obj 
     17SCENE=../data/vienna/city_full_hp.obj 
    1818#SCENE=../data/vienna/vienna_rep.obj 
    1919 
     20 
    2021#SCENE=../data/vienna/vienna_cropped.obj 
    21 #VIEWCELLS=../data/vienna/vienna_cropped-gradient-viewcells.xml.gz  
    22 #VIEWPOINTS=../data/vienna/testwalk.vp 
    23 VIEWPOINTS=../data/arena/arena_key.vp 
     22VIEWCELLS=../data/vienna/vienna_cropped-gradient-viewcells.xml.gz 
     23VIEWPOINTS=../data/vienna/testwalk.vp 
    2424 
    2525#LOG_PREFIX=../src/SG08/rebut-arena-pixel2 
    2626#LOG_PREFIX=../src/SG08/full 
    27 LOG_PREFIX=../src/SG08/arena_trees 
     27LOG_PREFIX=../src/SG08/city_full 
    2828 
    2929ENVIRONMENT=gvs.env 
     
    4242-gvs_samples_per_pass=1000000 \ 
    4343-gvs_initial_samples=16 \ 
    44 -gvs_max_viewcells=20000 \ 
    45 -gvs_min_contribution=4000 \ 
     44-gvs_max_viewcells=5000 \ 
     45-gvs_min_contribution=500 \ 
    4646-gvs_per_viewcell=true \ 
    4747-preprocessor_detect_empty_viewspace+ \ 
  • GTP/trunk/Lib/Vis/Preprocessing/src/AxisAlignedBox3.cpp

    r2720 r2723  
    21622162        Triangle3 tri; 
    21632163 
    2164         tri.mVertices[0] = Vector3(mMin.x, mMin.y, mMax.z); 
     2164        tri.mVertices[2] = Vector3(mMin.x, mMin.y, mMax.z); 
    21652165        tri.mVertices[1] = Vector3(mMin.x, mMax.y, mMax.z); 
    2166         tri.mVertices[2] = Vector3(mMin.x, mMax.y ,mMin.z); 
     2166        tri.mVertices[0] = Vector3(mMin.x, mMax.y ,mMin.z); 
    21672167 
    21682168        triObj = new TriangleIntersectable(tri); 
    21692169        triangles.push_back(triObj); 
    21702170 
    2171         tri.mVertices[0] = Vector3(mMin.x, mMax.y ,mMin.z); 
     2171        tri.mVertices[2] = Vector3(mMin.x, mMax.y ,mMin.z); 
    21722172        tri.mVertices[1] = Vector3(mMin.x, mMin.y, mMin.z); 
    2173     tri.mVertices[2] = Vector3(mMin.x, mMin.y, mMax.z); 
     2173    tri.mVertices[0] = Vector3(mMin.x, mMin.y, mMax.z); 
    21742174 
    21752175        triObj = new TriangleIntersectable(tri); 
    21762176        triangles.push_back(triObj); 
    21772177 
    2178         tri.mVertices[0] = Vector3(mMax.x, mMin.y, mMin.z); 
     2178        ////////////////////////////////////// 
     2179 
     2180        tri.mVertices[2] = Vector3(mMax.x, mMin.y, mMin.z); 
    21792181    tri.mVertices[1] = Vector3(mMax.x, mMax.y, mMin.z); 
    2180     tri.mVertices[2] = Vector3(mMax.x, mMax.y, mMax.z); 
     2182    tri.mVertices[0] = Vector3(mMax.x, mMax.y, mMax.z); 
    21812183 
    21822184        triObj = new TriangleIntersectable(tri); 
    21832185        triangles.push_back(triObj); 
    21842186 
    2185     tri.mVertices[0] = Vector3(mMax.x, mMax.y, mMax.z); 
     2187    tri.mVertices[2] = Vector3(mMax.x, mMax.y, mMax.z); 
    21862188        tri.mVertices[1] = Vector3(mMax.x, mMin.y, mMax.z); 
    2187         tri.mVertices[2] = Vector3(mMax.x, mMin.y, mMin.z); 
     2189        tri.mVertices[0] = Vector3(mMax.x, mMin.y, mMin.z); 
    21882190 
    21892191        triObj = new TriangleIntersectable(tri); 
    21902192        triangles.push_back(triObj); 
    21912193 
    2192     tri.mVertices[0] = Vector3(mMax.x, mMin.y ,mMin.z); 
     2194        ////////////////////////////////////// 
     2195 
     2196    tri.mVertices[2] = Vector3(mMax.x, mMin.y ,mMin.z); 
    21932197        tri.mVertices[1] = Vector3(mMax.x, mMin.y, mMax.z); 
    2194         tri.mVertices[2] = Vector3(mMin.x, mMin.y, mMax.z); 
     2198        tri.mVertices[0] = Vector3(mMin.x, mMin.y, mMax.z); 
    21952199 
    21962200        triObj = new TriangleIntersectable(tri); 
    21972201        triangles.push_back(triObj); 
    21982202 
    2199         tri.mVertices[0] = Vector3(mMin.x, mMin.y, mMax.z);      
     2203        tri.mVertices[2] = Vector3(mMin.x, mMin.y, mMax.z);      
    22002204        tri.mVertices[1] = Vector3(mMin.x, mMin.y, mMin.z); 
    2201     tri.mVertices[2] = Vector3(mMax.x, mMin.y ,mMin.z); 
    2202  
     2205    tri.mVertices[0] = Vector3(mMax.x, mMin.y ,mMin.z); 
    22032206 
    22042207        triObj = new TriangleIntersectable(tri); 
    22052208        triangles.push_back(triObj); 
    22062209 
    2207         tri.mVertices[0] = Vector3(mMin.x, mMax.y, mMin.z); 
     2210        ////////////////////////////////////// 
     2211 
     2212        tri.mVertices[2] = Vector3(mMin.x, mMax.y, mMin.z); 
    22082213        tri.mVertices[1] = Vector3(mMin.x, mMax.y, mMax.z); 
    2209         tri.mVertices[2] = Vector3(mMax.x, mMax.y, mMax.z); 
     2214        tri.mVertices[0] = Vector3(mMax.x, mMax.y, mMax.z); 
    22102215 
    22112216        triObj = new TriangleIntersectable(tri); 
    22122217        triangles.push_back(triObj); 
    22132218 
    2214         tri.mVertices[0] = Vector3(mMax.x, mMax.y, mMax.z); 
     2219        tri.mVertices[2] = Vector3(mMax.x, mMax.y, mMax.z); 
    22152220        tri.mVertices[1] = Vector3(mMax.x, mMax.y, mMin.z); 
    2216         tri.mVertices[2] = Vector3(mMin.x, mMax.y, mMin.z); 
     2221        tri.mVertices[0] = Vector3(mMin.x, mMax.y, mMin.z); 
    22172222     
    22182223        triObj = new TriangleIntersectable(tri); 
    22192224        triangles.push_back(triObj); 
    22202225 
    2221         tri.mVertices[0] = Vector3(mMin.x, mMax.y, mMin.z); 
     2226        ////////////////////////////////////// 
     2227 
     2228        tri.mVertices[2] = Vector3(mMin.x, mMax.y, mMin.z); 
    22222229        tri.mVertices[1] = Vector3(mMax.x, mMax.y, mMin.z); 
    2223     tri.mVertices[2] = Vector3(mMax.x, mMin.y, mMin.z); 
    2224  
     2230    tri.mVertices[0] = Vector3(mMax.x, mMin.y, mMin.z); 
    22252231            
    22262232        triObj = new TriangleIntersectable(tri); 
    22272233        triangles.push_back(triObj); 
    22282234 
    2229     tri.mVertices[0] = Vector3(mMax.x, mMin.y, mMin.z); 
     2235    tri.mVertices[2] = Vector3(mMax.x, mMin.y, mMin.z); 
    22302236        tri.mVertices[1] = Vector3(mMin.x, mMin.y, mMin.z); 
    2231         tri.mVertices[2] = Vector3(mMin.x, mMax.y, mMin.z); 
     2237        tri.mVertices[0] = Vector3(mMin.x, mMax.y, mMin.z); 
    22322238            
    22332239        triObj = new TriangleIntersectable(tri); 
    22342240        triangles.push_back(triObj); 
    22352241 
    2236     tri.mVertices[0] = Vector3(mMin.x, mMin.y, mMax.z); 
     2242        ////////////////////////////////////// 
     2243 
     2244    tri.mVertices[2] = Vector3(mMin.x, mMin.y, mMax.z); 
    22372245        tri.mVertices[1] = Vector3(mMax.x, mMin.y, mMax.z); 
    2238     tri.mVertices[2] = Vector3(mMax.x, mMax.y, mMax.z); 
     2246    tri.mVertices[0] = Vector3(mMax.x, mMax.y, mMax.z); 
    22392247 
    22402248            
     
    22422250        triangles.push_back(triObj); 
    22432251 
    2244     tri.mVertices[0] = Vector3(mMax.x, mMax.y, mMax.z); 
     2252    tri.mVertices[2] = Vector3(mMax.x, mMax.y, mMax.z); 
    22452253    tri.mVertices[1] = Vector3(mMin.x, mMax.y, mMax.z); 
    2246     tri.mVertices[2] = Vector3(mMin.x, mMin.y, mMax.z); 
     2254    tri.mVertices[0] = Vector3(mMin.x, mMin.y, mMax.z); 
    22472255            
    22482256        triObj = new TriangleIntersectable(tri); 
  • GTP/trunk/Lib/Vis/Preprocessing/src/CombinedPreprocessor.cpp

    r2709 r2723  
    133133        if (mCurrentSamples - lastEvaluation >= mSamplesPerEvaluation) { 
    134134          Real time = TimeDiff(startTime, GetTime()); 
     135#if 0 // matt: remove temporarily 
    135136          mViewCellsManager->PrintPvsStatistics(mStats); 
     137#endif 
    136138          mStats << 
    137139                "#Pass\n" <<mPass<<endl<< 
  • GTP/trunk/Lib/Vis/Preprocessing/src/GlRenderer.h

    r2709 r2723  
    7070        {  
    7171                mViewCell = NULL;  
    72                 mPvs.Clear();  
     72                mPvs.Clear(false);  
    7373                filteredBoxes.clear();  
    7474                mUnfilteredPvsSize = 0; 
  • GTP/trunk/Lib/Vis/Preprocessing/src/ObjectPvs.cpp

    r2670 r2723  
    161161 
    162162        Intersectable::NewMail2(); 
    163         //KdNode::NewMail(); 
    164         dummyPvs.Clear(); 
    165  
     163         
    166164        ObjectPvsIterator pit = GetIterator(); 
    167165 
     
    196194} 
    197195 
     196 
    198197} 
  • GTP/trunk/Lib/Vis/Preprocessing/src/Preprocessor.cpp

    r2722 r2723  
    17021702        float renderCost = 0; 
    17031703        int i = 0; 
    1704         cout<<"size: " << vc->GetPvs().GetSize() << endl; 
     1704         
    17051705        // first mark all objects from this pvs 
    17061706        while (pit.HasMoreEntries())     
     
    17311731                        //} 
    17321732                } 
     1733                else if (obj->Type() == Intersectable::SCENEGRAPHLEAF_INTERSECTABLE) 
     1734                { 
     1735                        renderCost += (float)static_cast<SceneGraphLeafIntersectable *>(obj)->GetItem()->mGeometry.size(); 
     1736                } 
     1737                 
    17331738        } 
    17341739 
     
    17591764  for (vit = mViewCellsManager->GetViewCells().begin(); vit != vit_end; ++ vit)  
    17601765  { 
    1761           ObjectPvs &pvs = (*vit)->GetPvs(); 
     1766          ViewCell *vc = *vit; 
     1767          ObjectPvs &pvs = vc->GetPvs(); 
    17621768 
    17631769          bool pvsChanged = false; 
    17641770 
    1765           if (Overlap(box, (*vit)->GetBox()))  
     1771          if (Overlap(box, vc->GetBox()))  
    17661772          { 
    17671773                  pvs.Clear(); 
     
    17711777          else  
    17721778          { 
    1773                   //    cout<<(*vit)->GetBox()<<" "<<box<<endl; 
    1774                   shadowVolume.Init((*vit)->GetBox(), box); 
     1779                  //cout<<vc->GetBox()<<" "<<box<<endl; 
     1780                  shadowVolume.Init(vc->GetBox(), box); 
    17751781                  if (shadowVolume.CntPlanes() > maxPlanes) 
    17761782                          maxPlanes = shadowVolume.CntPlanes(); 
     
    18161822          if (pvsChanged) 
    18171823          { 
    1818                   ViewCell *vc = *vit; 
    1819  
    18201824                  // recompute render cost 
    18211825                  float renderCost = _HackComputeRenderCost(vc); 
  • GTP/trunk/Lib/Vis/Preprocessing/src/QtInterface/QtGlRenderer.cpp

    r2721 r2723  
    5858static int sNextSamplesThreshold[] = {10000000, 50000000, 100000000, 250000000}; 
    5959//static int sNextSamplesThreshold[] = {100000000, 200000000}; 
    60 static int sNumReplays = 4; 
     60static int sNumReplays = 0;//4; 
    6161static int sCurrentSamplesThreshold = 0; 
    6262 
     
    353353                        //glReadBuffer(GL_FRONT); 
    354354 
    355                         cout << "here34" << endl; 
    356355                        ////////////// 
    357356                        //-- output error visualization 
     
    387386 
    388387                                // render pvs once 
    389                                 //RenderPvs(pvs); 
    390                                 RenderTrianglePvs(); 
     388                                RenderPvs(pvs); 
     389                                // hack for gvs vis 
     390                                //RenderTrianglePvs(); 
    391391 
    392392                                glFlush(); 
     
    13481348        AxisAlignedBox3 sceneBox = mViewCellsManager->GetViewSpaceBox(); 
    13491349         
    1350         float x = 1.0f; 
     1350        //float x = 1.0f; 
     1351        //float y = 20.0f; 
     1352        //float z = 80.0f; 
     1353 
     1354        float x = 20.0f; 
    13511355        float y = 20.0f; 
    1352         float z = 80.0f; 
     1356        float z = 20.0f; 
    13531357 
    13541358        AxisAlignedBox3 box(Vector3(0.5f * x, 0, -0.5f * z), Vector3(-0.5f * x, y, 0.5f * z)); 
     
    17411745 
    17421746        ComputeMaxValues(viewcells, maxPvs, maxPiercingRays, maxRelativeRays, maxRcCost); 
    1743          
    1744         // matt: temp hack 
    1745         //maxRcCost = 5000.0f; 
    17461747        //cout << "maxRcCost: " << maxRcCost << endl; 
    17471748 
    1748         int i; 
     1749        // set the max render cost to fixed value 
     1750        //maxRcCost = 1000.0f; 
    17491751 
    17501752        // transparency  
     
    17621764                //glBlendFunc(GL_SRC_ALPHA, GL_ONE); 
    17631765 
    1764                 for (i = 0; i < viewcells.size(); ++ i)  
     1766                for (int i = 0; i < viewcells.size(); ++ i)  
    17651767                { 
    17661768                        ViewCell *vc = viewcells[i]; 
     
    17791781        if (mUseStandardColors) 
    17801782        { 
    1781                 for (i = 0; i < viewcells.size(); ++ i)  
     1783                for (int i = 0; i < viewcells.size(); ++ i)  
    17821784                { 
    17831785                        ViewCell *vc = viewcells[i]; 
  • GTP/trunk/Lib/Vis/Preprocessing/src/ViewCellsManager.cpp

    r2720 r2723  
    375375        if (index >= mPreprocessor->mObjects.size()) 
    376376        { 
    377                 // Do nothing 
    378                 return NULL; 
     377                // do nothing 
     378                //return NULL; 
    379379                for (size_t i = 0; i < mPreprocessor->mDynamicObjects.size(); ++ i) 
    380380                { 
     
    383383                                return obj; 
    384384                } 
    385                          
    386                 return ray.mTerminationObject; 
     385                 
     386                // no dynamic object found 
     387                return NULL;//ray.mTerminationObject; 
    387388        } 
    388389 
     
    24262427                                                                                                   bool addSamplesToPvs) 
    24272428{ 
    2428         // check if we are outside of view space 
    2429         // $$JB tmp commented to speedup up computations 
    2430 #if 0 
    2431         if (!obj || !viewCell->GetValid()) 
     2429        if (!obj) 
    24322430                return false; 
    2433 #endif 
    24342431 
    24352432        // if ray not outside of view space 
     
    25272524                        vssRay->mTerminationObject = GetIntersectable(*vssRay, true); 
    25282525                         
    2529                         if (vssRay->mTerminationObject->Type() == Intersectable::TRANSFORMED_MESH_INSTANCE)      
    2530                                 cout << "r"; 
    2531  
    2532 #if 0 
    2533                   if (vssRay->mTerminationObject == NULL) 
    2534                           cerr<<"Error in DeterminePvsObjects - termination object maps to NULL!"<<endl; 
    2535 #endif 
     2526                        if (0 && (vssRay->mTerminationObject == NULL)) 
     2527                                cerr<<"Error in DeterminePvsObjects - termination object maps to NULL!"<<endl; 
     2528 
    25362529                } 
    25372530        } 
Note: See TracChangeset for help on using the changeset viewer.