woolstar@nntp-server.caltech.edu (John D. Woolverton) (03/20/91)
By popular request from my users, I added soft shadows to my ray tracing package, the easiest way I knew how. To evaluate an area light source, I shoot <n> rays at a point randomly picked inside a sphere of radius <r> about the location of the light. The number of rays <n> and the radius of the light <r> are both user selectable. Currently with r=20.0 and n=64, I get a fairly nice soft shadow, except there is a low level of noise. I figure I could get rid of it by bumping up n to about 500, but I don't have that much patience. Could anyone suggest any open solutions (ie. ones that I could implement without oweing royalties, I heard that the Pixar noise algo. was patented.) The other avenue I'm looking at is trying to come up with some post-process filter that will remove the noise, without taking away too much sharpness. Kind of a VHS-HQ circuit for my ray tracer. :-) John D. Woolverton, Video Bits woolstar@cobalt.caltech.edu
shirley@iuvax.cs.indiana.edu (peter shirley) (03/20/91)
Just like pixel sampling, light source sampling works better is the "random" points are replaced by "quasi-random" points. Quasi-random points can be generated by making sure no two points are too close, or by hand generating them for storage in lookup tables. See the ray tracing book under jittering or Poisson disk sampling for further details. pete shirley@cs.indiana.edu PS- I think you'll have better luck choosing points on the projected area of the light source. Choosing from within the sphere would be correct if the light originated throughout the sphere.