Light Blockers

(various examples on using patterns to block light from a light source)

What's on this page?

NOTE: This page was written back in September '97 after reading Ronen Barzel's paper. Now that the paper was rehashed in the Siggraph '98 RenderMan Course and Larry provided a shader with many of these features, I have started another page, uberlight.

Over the years I have played around with the the slide-projector shader, but never really got that many images I was satisfied with. Then I happened across Ronen Barzel's article "Lighting Controls for Computer Cinematography" from the Journal of Graphics Tools. An abstract of this article can be found at Barzel97. One of the ideas from this article is using the images to block sections of the light. This is a very simple but cool idea.

Currently these examples are what are more commonly referred to coockaloris effects (from traditional stage lighting). There another kind that I haven't made any examples of yet, that the uberlight is capable of. Namely, creating projection coordinates for which light from a particular source should not go.

The following are some light shaders to do blocking. The first set are more general and can read in texture-maps to be used to as the blockers. The next set are more specific and generate the patterns procedurally. I believe the advantage to the this set is that one will have more control in animating the blockers.

Blockers with texture-maps

This set of shaders is more general as they use a texture-map to define the shape of the blocker.

These first two images depict the scene light with a distantlight and a spot light respectfully.

distant.tiff distant.rib spot.tiff spot.rib

Now let's take the following image of a star and use it as a blocker. star.tiff

First with

TL1ch1starPos.tiff TL1ch1starPos.rib TL1ch1starNeg.tiff TL1ch1starNeg.rib

Now use the next image with a bunch of bombed stars as the blocker: star2.tiff

TL1chstarBombPos.tiff TL1chstarBombPos.rib TL1chstarBombNeg.tiff TL1chstarBombNeg.rib

OK, this all fine and dandy, but what if you wanted to animate your blocker. Well it depends on the effect you want.

A. If you just want to simulate if the blocker is on a motor then one way would be to just start rotating the up vector. Now you are all ready to do that 70's disco dance floor scene, you have been dying to do.

B. What if you really wanted you blocker to be changing over time?

Well you choices are:

1. some how generate the various texture-maps depicting the animation that is desired.

2. Generate the pattern procedurally inside the light shader.

The latter is how I am speculating that the scene was done in Toy Story with rain drop shadows on Buzz.

Procedural Blockers

This set of blockers do the blocking procedurally

TLProcstarPos.tiff TLProcstarPos.rib

Go Up (Parent):

RenderMan is a registered trademark of Pixar. The RenderMan Repository is maintained by Pixar's RenderMan Products Group