<< Chapter < Page | Chapter >> Page > |
In computer graphics, ray tracing is a technique used to project three dimensional space onto a two dimensionalplane as seen from an eye point. The basic ray tracing algorithm is to fire a ray from the eye point through every pixel in thedisplay. If the ray intersects something in the scene, keep the closest intersection point and calculate the intensity at thatpoint. The following novel algorithm which we designed, the Stochastic Gain Control operator, was inspired by distributed ray tracing.
One such technique is called supersampling. By firing multiple, evenly spaced rays over the pixel area, theintensities calculated for each ray are averaged to find the overall intensity in the pixel.
In distributed ray tracing, rays are randomly fired over a finite pixel area and then averaged together. Surfacelighting is usually defined as multiple integrals, so using a Monte Carlo method to sample the integrand at randomly chosen pointsresults in a better approximation. While the aliasing is removed, it will lead to a small amount of noise in the picture, but overallthe picture quality will be improved.
Using this idea, modifications can be made to the averaging local operator. As the window sweeps across theimage, randomly selected pixels are averaged together. Since the pixels are randomly selected, the same pixel may be selected morethan once. Thus, some pixels are weighted more than others. This acts as a weighted pixel mask or pseudo Gaussian filter.
If only one pixel is randomly selected inside the window, the resulting image will be very blurry. This makessense because while sliding the window the same pixel may have sampled repeatedly and at the same time failed to sample others. Asthe number of pixels selected increases, the image becomes sharper and sharper compared to the image produced by the Pattanaik-YeeAdaptive Gain Control operator. However, if more than 125% of the pixels in the window are selected, there will be no noticeablechange.
Notification Switch
Would you like to follow the 'Elec 301 projects fall 2006' conversation and receive update notifications?