Ignore:
Timestamp:
01/23/06 15:44:19 (18 years ago)
Author:
mattausch
Message:

debug version for testing shuffling and visualizing neighbors

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/VUT/GtpVisibilityPreprocessor/src/VspBspTree.cpp

    r566 r568  
    19801980                                bool isAdjacent = true; 
    19811981 
    1982                                 if (1) 
     1982                        /*      if (1) 
    19831983                                { 
    19841984                                        // test all planes of current node if still adjacent 
     
    20142014                                                } 
    20152015                                        } 
    2016                                 } 
     2016                                }*/ 
    20172017                                // neighbor was found 
    20182018                                if (isAdjacent) 
     
    30923092int VspBspTree::RefineViewCells(const VssRayContainer &rays, const ObjectContainer &objects) 
    30933093{ 
    3094         int shuffled = 0; 
    3095  
    30963094        Debug << "refining " << (int)mMergeQueue.size() << " candidates " << endl; 
     3095         
    30973096        BspLeaf::NewMail(); 
    30983097 
     
    31163115        queue<BspMergeCandidate> *backQueue = &queue2; 
    31173116 
     3117#if 1 
    31183118    Exporter *exporter = Exporter::GetExporter("neighors.x3d"); 
    31193119 
     
    31253125 
    31263126        // HACK for visualization 
    3127         /*ViewCellContainer viewCells; 
    3128         ViewCell::NewMail(); 
    3129         CollectViewCells(mRoot, true, viewCells, true); 
    3130         for (int i = 0; i < viewCells.size(); ++i) 
    3131                 viewCells[i]->SetId((int)RandomValue(0, Real(256*256*256))); 
    3132         */ 
    3133         Material m; 
    3134         m.mDiffuseColor.r = 0; 
    3135         m.mDiffuseColor.g = 0; 
    3136         m.mDiffuseColor.b = 0; 
    3137  
     3127        //ViewCellContainer viewCells; 
     3128        //ViewCell::NewMail(); 
     3129        //CollectViewCells(mRoot, true, viewCells, true); 
     3130        //for (int i = 0; i < viewCells.size(); ++i) 
     3131        //      viewCells[i]->SetId((int)RandomValue(0, Real(256*256*256))); 
     3132         
     3133         
    31383134        while (!mMergeQueue.empty()) 
    31393135        { 
     
    31423138                mMergeQueue.pop(); 
    31433139 
    3144  
    31453140                // visualize neighbors 
    3146                 m = RandomMaterial(); 
     3141                Material m = RandomMaterial(); 
    31473142                exporter->SetForcedMaterial(m); 
    3148                  
    3149                 BspNodeGeometry geom1, geom2; 
    3150  
    3151                 ConstructGeometry(mc.GetLeaf1(), geom1); 
    3152                 ConstructGeometry(mc.GetLeaf1(), geom2); 
    3153  
    3154                 //m.mDiffuseColor.r = (mc.GetLeaf1()->GetViewCell()->GetId() & 256)/ 255.0f; 
    3155                 //m.mDiffuseColor.g = ((mc.GetLeaf1()->GetViewCell()->GetId()>>8) & 256)/ 255.0f; 
    3156                 //m.mDiffuseColor.b = ((mc.GetLeaf1()->GetViewCell()->GetId()>>16) & 256)/ 255.0f; 
    3157                 exporter->SetForcedMaterial(m); 
    3158                 exporter->ExportPolygons(geom1.mPolys); 
    3159                  
    3160                 //m.mDiffuseColor.r = (mc.GetLeaf2()->GetViewCell()->GetId() & 256)/ 255.0f; 
    3161                 //m.mDiffuseColor.g = ((mc.GetLeaf2()->GetViewCell()->GetId()>>8) & 256)/ 255.0f; 
    3162                 //m.mDiffuseColor.b = ((mc.GetLeaf2()->GetViewCell()->GetId()>>16) & 256)/ 255.0f; 
    3163                 //exporter->SetForcedMaterial(m); 
    3164                 exporter->ExportPolygons(geom2.mPolys); 
     3143         
     3144 
     3145                if (!mc.GetLeaf1()->Mailed()) 
     3146                { 
     3147                        BspNodeGeometry geom1; 
     3148                        ConstructGeometry(mc.GetLeaf1(), geom1); 
     3149                        //m.mDiffuseColor.r = (mc.GetLeaf1()->GetViewCell()->GetId() & 256)/ 255.0f; 
     3150                        //m.mDiffuseColor.g = ((mc.GetLeaf1()->GetViewCell()->GetId()>>8) & 256)/ 255.0f; 
     3151                        //m.mDiffuseColor.b = ((mc.GetLeaf1()->GetViewCell()->GetId()>>16) & 256)/ 255.0f; 
     3152                        //exporter->SetForcedMaterial(m); 
     3153                        exporter->ExportPolygons(geom1.mPolys); 
     3154                        mc.GetLeaf1()->Mail(); 
     3155                } 
     3156 
     3157                if (!mc.GetLeaf2()->Mailed()) 
     3158                { 
     3159                        BspNodeGeometry geom2; 
     3160                        ConstructGeometry(mc.GetLeaf2(), geom2); 
     3161                        //m.mDiffuseColor.r = (mc.GetLeaf2()->GetViewCell()->GetId() & 256)/ 255.0f; 
     3162                        //m.mDiffuseColor.g = ((mc.GetLeaf2()->GetViewCell()->GetId()>>8) & 256)/ 255.0f; 
     3163                        //m.mDiffuseColor.b = ((mc.GetLeaf2()->GetViewCell()->GetId()>>16) & 256)/ 255.0f; 
     3164                        //exporter->SetForcedMaterial(m); 
     3165                        exporter->ExportPolygons(geom2.mPolys); 
     3166                        mc.GetLeaf2()->Mail(); 
     3167                }                
    31653168        } 
    31663169 
     
    31703173                delete exporter; 
    31713174        } 
    3172  
     3175#else 
     3176        while (!mMergeQueue.empty()) 
     3177        { 
     3178                BspMergeCandidate mc = mMergeQueue.top(); 
     3179                shuffleQueue->push(mc); 
     3180                mMergeQueue.pop(); 
     3181        } 
     3182#endif 
    31733183        const int numPasses = 5; 
    31743184        int pass = 0; 
    31753185        int passShuffled = 0; 
    3176  
     3186        int shuffled = 0; 
     3187 
     3188        BspLeaf::NewMail(); 
    31773189 
    31783190        do 
     
    32203232} 
    32213233 
    3222 /*inline int SubtractedPvsSize(BspViewCell *vc, BspLeaf *l, const ObjectPvs &pvs2) 
     3234 
     3235// recomputes pvs size minus pvs of leaf l 
     3236#if 0 
     3237inline int SubtractedPvsSize(BspViewCell *vc, BspLeaf *l, const ObjectPvs &pvs2) 
    32233238{ 
    32243239        ObjectPvs pvs; 
     
    32283243                        pvs.AddPvs(*(*it)->mPvs); 
    32293244        return pvs.GetSize(); 
    3230 }*/ 
    3231  
     3245} 
     3246#endif 
     3247 
     3248// computes pvs1 minus pvs2 
    32323249inline int SubtractedPvsSize(ObjectPvs pvs1, const ObjectPvs &pvs2) 
    32333250{ 
     
    32403257        //const int pvs1 = SubtractedPvsSize(vc1, leaf, *leaf->mPvs); 
    32413258        const int pvs1 = SubtractedPvsSize(vc1->GetPvs(), *leaf->mPvs); 
     3259         
    32423260        const int pvs2 = AddedPvsSize(vc2->GetPvs(), *leaf->mPvs); 
    32433261 
    3244         // dont' shuffle leaves with pvs > max 
     3262        // don't shuffle leaves with pvs > max 
    32453263        if (pvs1 + pvs2 > mViewCellsManager->GetMaxPvsSize()) 
    32463264                return 1e15f; 
Note: See TracChangeset for help on using the changeset viewer.