Ignore:
Timestamp:
11/22/05 17:43:29 (19 years ago)
Author:
mattausch
Message:

fixed ray bug in vspkdtree
added visualizations

File:
1 edited

Legend:

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

    r425 r426  
    591591                                //exporter->ExportBspViewCellPartition(*mBspTree, 0); 
    592592                                 
    593                                 if (1) // export scene geometry 
    594                                 { 
    595                                         Material m;//= RandomMaterial(); 
    596                                         m.mDiffuseColor = RgbColor(0, 1, 0); 
    597                                         exporter->SetForcedMaterial(m); 
    598                                         exporter->SetWireframe(); 
    599          
    600                                         for (int j = 0; j < objects.size(); ++ j) 
    601                                                 exporter->ExportIntersectable(objects[j]); 
    602                                 } 
     593                                if (1) 
     594                                        ExportSceneGeometry(exporter, objects); 
    603595                                         
    604596                                delete exporter; 
     
    676668        { 
    677669                Exporter *exporter = Exporter::GetExporter("vspkdtree.x3d");  
    678                 exporter->SetWireframe(); 
    679                 exporter->ExportVspKdTree(*mVspKdTree, 300); 
     670                //exporter->SetWireframe(); 
     671                exporter->ExportVspKdTree(*mVspKdTree, mVspKdTree->GetStatistics().maxPvsSize); 
     672 
     673                Debug << "average PVS size: " << mVspKdTree->GetAvgPvsSize() << endl; 
     674 
     675                if (1) ExportSceneGeometry(exporter, objects); 
     676 
     677                bool exportRays = false; 
     678 
     679                if (exportRays)  
     680                { 
     681                        int raysSize = 500; 
     682                        float prob = raysSize / (float)mVspSampleRays.size(); 
     683                 
     684                        exporter->SetWireframe(); 
     685                         
     686                        VssRayContainer rays; 
     687                        for (int i = 0; i < mVspSampleRays.size(); ++ i) 
     688                        { 
     689                                if (RandomValue(0,1) < prob) 
     690                                        rays.push_back(mVspSampleRays[i]); 
     691                        } 
     692 
     693                        exporter->ExportRays(rays, RgbColor(1, 0, 0)); 
     694                } 
     695 
    680696                delete exporter; 
    681697        } 
     
    758774                        // also add origin to sample 
    759775                        sRay->mOriginObject = object; 
     776                        sRay->mOrigin = ray.GetLoc(); 
    760777                } 
    761778                else 
     
    872889 
    873890        return merged; 
     891} 
     892 
     893// export scene geometry 
     894void SamplingPreprocessor::ExportSceneGeometry(Exporter *exporter, const ObjectContainer &objects) 
     895{ 
     896        Material m;//= RandomMaterial(); 
     897        m.mDiffuseColor = RgbColor(0, 1, 0); 
     898        exporter->SetForcedMaterial(m); 
     899        exporter->SetWireframe(); 
     900 
     901        for (int j = 0; j < objects.size(); ++ j) 
     902                exporter->ExportIntersectable(objects[j]); 
    874903} 
    875904 
     
    911940                } 
    912941 
    913                 // export scene geometry 
    914942                if (1) 
    915                 { 
    916                         Material m;//= RandomMaterial(); 
    917                         m.mDiffuseColor = RgbColor(0, 1, 0); 
    918                         exporter->SetForcedMaterial(m); 
    919             exporter->SetWireframe(); 
    920  
    921                         for (int j = 0; j < objects.size(); ++ j) 
    922                                 exporter->ExportIntersectable(objects[j]); 
    923                 } 
     943                        ExportSceneGeometry(exporter, objects); 
    924944 
    925945                delete exporter; 
Note: See TracChangeset for help on using the changeset viewer.