Ignore:
Timestamp:
09/03/08 13:02:39 (16 years ago)
Author:
mattausch
Message:
 
File:
1 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/App/Demos/Vis/FriendlyCulling/src/SampleGenerator.cpp

    r2898 r2899  
    118118        //cout << "minDist after= " << minDist << endl; 
    119119} 
     120 
     121 
     122SphericalSampleGenerator::SphericalSampleGenerator(int numSamples, float radius): 
     123SampleGenerator(numSamples, radius) 
     124{} 
     125 
     126 
     127 
     128 
     129void SphericalSampleGenerator::Generate(Sample2 *samples) const 
     130{ 
     131        static HaltonSequence halton; 
     132        float r[2]; 
     133 
     134        for (int i = 0; i < mNumSamples; ++ i) 
     135        { 
     136                halton.GetNext(2, r); 
     137 
     138                // create stratified samples over sphere 
     139                const float rx = r[0]; 
     140                const float ry = r[1]; 
     141 
     142                const float theta = 2.0f * acos(sqrt(1.0f - rx)); 
     143                const float phi = 2.0f * M_PI * ry; 
     144 
     145                float x = sin(theta) * cos(phi); 
     146                float y = sin(theta) * sin(phi); 
     147                float z = cos(theta); 
     148 
     149                // project to disc 
     150                samples[i].x = x / z; 
     151                samples[i].y = y / z; 
     152        } 
     153} 
Note: See TracChangeset for help on using the changeset viewer.