Ignore:
Timestamp:
01/13/06 19:20:27 (19 years ago)
Author:
bittner
Message:

ray probability density support

File:
1 edited

Legend:

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

    r534 r537  
    6868                                                 Vector3 &viewPoint, 
    6969                                                 Vector3 &direction, 
     70                                                 const float probability, 
    7071                                                 VssRayContainer &vssRays 
    7172                                                 ) 
     
    148149                                                  objectB, 
    149150                                                  objectA, 
    150                                                   mPass 
     151                                                  mPass, 
     152                                                  probability 
    151153                                                  ); 
    152154          vssRays.push_back(vssRay); 
     
    159161                                                  objectA, 
    160162                                                  objectB, 
    161                                                   mPass 
     163                                                  mPass, 
     164                                                  probability 
    162165                                                  ); 
    163166          vssRays.push_back(vssRay); 
     
    551554          //int s = Min(mSamplesPerPass, mInitialSamples); 
    552555          int s = mInitialSamples; 
    553            
     556 
     557          float probability = 1.0f/mInitialSamples; 
    554558          for (int k=0; k < s; k++) { 
    555559                 
     
    561565                Vector3 direction = InitialGetDirection(viewpoint, mViewSpaceBox); 
    562566                 
    563                 sampleContributions = CastRay(viewpoint, direction, mVssRays); 
     567                sampleContributions = CastRay(viewpoint, direction, probability, mVssRays); 
    564568                 
    565569                 
     
    694698                mViewCellsManager->GetViewPoint(viewpoint); 
    695699                Vector3 direction = GetDirection(viewpoint, mViewSpaceBox); 
    696                 rays.push_back(SimpleRay(viewpoint, direction)); 
     700                rays.push_back(SimpleRay(viewpoint, direction, 1.0f)); 
     701                rays.mSumProbabilities+=1.0f; 
    697702          } 
    698703        } else { 
    699704          num = GenerateImportanceRays(rssTree, num, rays); 
    700705        } 
    701                  
    702                  
     706 
     707        rays.NormalizeProbabilities(); 
     708         
    703709        for (int i=0; i < rays.size(); i++) 
    704           CastRay(rays[i].mOrigin, rays[i].mDirection, vssRays); 
     710          CastRay(rays[i].mOrigin, rays[i].mDirection, rays[i].mProbability, vssRays); 
    705711 
    706712         
Note: See TracChangeset for help on using the changeset viewer.