[comp.graphics] Trying to get soft shadows

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.