- Timestamp:
- 09/03/08 13:02:39 (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
GTP/trunk/App/Demos/Vis/FriendlyCulling/src/SampleGenerator.cpp
r2898 r2899 118 118 //cout << "minDist after= " << minDist << endl; 119 119 } 120 121 122 SphericalSampleGenerator::SphericalSampleGenerator(int numSamples, float radius): 123 SampleGenerator(numSamples, radius) 124 {} 125 126 127 128 129 void 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.