|
|
>> double y = sqrt((double) rand()/RAND_MAX);
>> double phi = 2*M_PI* (double)rand()/RAND_MAX;
>> double x = sqrt(1-y*y)*cos(phi);
>> double z = sqrt(1-y*y)*sin(phi);
>
> Or:
>
>> do{
>> x = (double) 2.0*rand()/RAND_MAX -1.0;
>> z = (double) 2.0*rand()/RAND_MAX-1.0;
>> }
>> while(x*x+z*z > 1.0);
>>
>> y = sqrt(1.0-(x*x+z*z));
>>
> This result is different to the above and not spread uniformly over the
> surface of the sphere (it is uniform only in the xz plane).
Ok, that makes me wonder, because:
1. The 2 methods above produce 100% identical images. It was a scene of
one light emitting sphere, ground and 3 diffusing spheres of different
colors. (I did use the cosine ratio relative to the angle of light
falling on surface.) I can post the images if needed. The only
difference is that the second method is faster - with a great margin.
2. If the distribution is not identical by the 2 methods, why are the
images still 100% identical?
Post a reply to this message
|
|