Ignore:
Timestamp:
05/30/08 02:37:07 (16 years ago)
Author:
mattausch
Message:

worked on gvs efficiency

File:
1 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/Lib/Vis/Preprocessing/src/Preprocessor.cpp

    r2724 r2726  
    966966                                                   SimpleRayContainer &rays) 
    967967{ 
    968   return strategy.GenerateSamples(number, rays); 
     968        int invalidSamples; 
     969        return strategy.GenerateSamples(number, rays, invalidSamples); 
     970} 
     971 
     972 
     973int Preprocessor::GenerateRays(const int number, 
     974                                                           SamplingStrategy &strategy, 
     975                                                           SimpleRayContainer &rays, int &invalidSamples) 
     976{ 
     977        return strategy.GenerateSamples(number, rays, invalidSamples); 
    969978} 
    970979 
     
    975984                                                   SimpleRayContainer &rays) 
    976985{ 
    977         const int startSize = (int)rays.size(); 
    978986        SamplingStrategy *strategy = GenerateSamplingStrategy(sampleType); 
     987         
     988        if (!strategy) 
     989                return 0; 
     990 
    979991        int castRays = 0; 
    980  
    981         if (!strategy) 
    982         { 
    983                 return 0; 
    984         } 
    985  
     992        int invalidSamples; 
    986993#if 1 
    987         castRays = strategy->GenerateSamples(number, rays); 
     994        castRays = strategy->GenerateSamples(number, rays, invalidSamples); 
    988995#else 
    989996        GenerateRayBundle(rays, newRay, 16, 0); 
     
    11971204 
    11981205        // !!!!!!!!!!!!!!!! VH no sorting 
    1199         if ( 
    1200                 rays.size() > 10000 
    1201                 ) 
     1206        if (rays.size() > 10000) 
    12021207        { 
    12031208                mRayCaster->SortRays(rays); 
     
    13161321 
    13171322 
    1318 bool Preprocessor::GenerateRayBundle(SimpleRayContainer &rayBundle,                                                                      
    1319                                                                          const SimpleRay &mainRay, 
    1320                                                                          const int number, 
    1321                                                                          const int pertubType) const 
    1322 { 
    1323         rayBundle.push_back(mainRay); 
    1324  
    1325         const float pertubOrigin = 0.0f; 
    1326         const float pertubDir = 0.2f; 
    1327  
    1328         for (int i = 0; i < number - 1; ++ i) 
    1329         { 
    1330                 Vector3 pertub; 
    1331  
    1332                 pertub.x = RandomValue(0.0f, pertubDir); 
    1333                 pertub.y = RandomValue(0.0f, pertubDir); 
    1334                 pertub.z = RandomValue(0.0f, pertubDir); 
    1335  
    1336                 const Vector3 newDir = mainRay.mDirection + pertub; 
     1323bool Preprocessor::GenerateJitteredRays(SimpleRayContainer &rayBundle,   
     1324                                                                                const SimpleRay &mainRay, 
     1325                                                                                int number, 
     1326                                                                                int pertubType) const 
     1327{ 
     1328        //rayBundle.push_back(mainRay); 
     1329        //const float pertubOrigin = 0.0f; 
     1330        const float pertubDir = 0.01f; 
     1331        Vector3 pertub; 
     1332 
     1333        for (int i = 0; i < number; ++ i) 
     1334        { 
     1335                pertub.x = RandomValue(-pertubDir, pertubDir); 
     1336                pertub.y = RandomValue(-pertubDir, pertubDir); 
     1337                pertub.z = RandomValue(-pertubDir, pertubDir); 
     1338 
     1339                Vector3 newDir = mainRay.mDirection + pertub; 
     1340                const float c = Magnitude(newDir); 
     1341                newDir *= 1.0f / c; 
     1342 
    13371343                //const Vector3 newDir = mainRay.mDirection; 
    1338  
     1344#if 0 
    13391345                pertub.x = RandomValue(0.0f, pertubOrigin); 
    13401346                pertub.y = RandomValue(0.0f, pertubOrigin); 
     
    13421348 
    13431349                const Vector3 newOrigin = mainRay.mOrigin + pertub; 
    1344                 //const Vector3 newOrigin = mainRay.mOrigin; 
     1350#endif 
     1351                const Vector3 newOrigin = mainRay.mOrigin; 
    13451352 
    13461353                rayBundle.push_back(SimpleRay(newOrigin, newDir, 0, 1.0f)); 
Note: See TracChangeset for help on using the changeset viewer.