Hard and Soft Shadows
By default, most shadows are hard (having crisply defined, sharp edges, as shown in Figure 3.20). Some people dislike hard shadows, especially the very crisp ones achieved through raytracing, because traditionally they've been an overused staple of most 3D renderings.
Figure 3.20 Hard-edged shadows indicate light from a small point source.
In many cases, using soft shadows (which are less distinct and fade off toward the edges, as in Figure 3.21) for some of your lights tends to look more realistic than using only hard shadows.
Figure 3.21 Soft shadows come from larger light sources.
Hard and Soft Light
For realistic results, soft shadows should be used in conjunction with other signs of softer or less direct light in a scene. For example, if you compare Figures 3.20 and 3.21, notice that a penumbra has been added, giving the spotlight's cone a soft edge, to roughly match the softness of the shadows.
If you are lighting shiny or reflective subjects, take a careful look at the specular highlights and reflections, and make sure they look like reflections of a large enough light source to motivate your soft shadows. In some cases, you may need to replace specular highlights with a reflection of a larger light source to be believable with very soft shadows.
Before getting into soft shadow options, here are some scenarios in which you would want to use hard light as a creative choice:
- To simulate illumination that comes directly from a small, concentrated light source, such as a bare light bulb.
- To present direct sun on a clear day, which produces hard light.
- In space scenes, where light reaches objects without being diffused through an atmosphere.
- To call attention to an artificial light source, such as when a spotlight is focused on a circus performer.
- To project shadows with clearly defined shapes, such as when you want your audience to recognize a villain by watching his shadow on a wall.
- To create a harsh or inhospitable environment.
On the other hand, you would use soft lighting in these situations:
- To produce natural light on cloudy days, when you would not get very bold shadows.
- To create indirect light, such as light that has reflected off walls or ceilings, or light from the sky, which is generally very soft.
- To simulate light that has been transmitted through translucent materials, such as curtains or lampshades.
- To make many environments look more comfortable or relaxing, and make most subjects look more natural or organic. Most interior lighting fixtures in a home are designed to either diffuse or bounce light to soften the light from a lightbulb.
- To portray characters favorably or make them look beautiful. Close-up shots of many movie stars, especially female lead actresses in Hollywood movies, are frequently soft-lit.
If you look around and pay attention, you'll find a combination of soft and hard shadows in many situations where a quick glance might have made you think that only a hard shadow existed. For example, on a sunny day, you quickly notice the hard shadows from the sun, but if you look closely, you'll also see the soft shadows of light from the sky darkening areas underneath large objects.
Soft shadows work differently depending on whether you have chosen depth map shadows or raytraced shadows (both discussed earlier in this chapter) for your lights, so the next two sections discuss the specific options separately.
Soft Shadows with Depth Maps
You can soften a depth map shadow by increasing a filter (also called dmap filter or shadow softness) setting. Shadows softened through basic depth map filtering will produce a uniform softness, as shown on the left side of Figure 3.22, instead of getting softer farther from the object, as shown with the raytraced soft shadows on the right of the figure. If you are using a small amount of depth map filtering, this usually isn't a problem. If the object casting the shadows doesn't touch the ground, such as the shadow of a fish onto the ocean floor, then this kind of softening isn't a problem even with larger amounts of filtering. However, especially when physical contact needs to be shown, using too high a filter value can be unconvincing.
Figure 3.22 A depth map shadow is softened uniformly from beginning to end (left), whereas a soft raytraced shadow grows softer with distance (right).
Figure 3.23 shows a solution to making shadows that become softer with distance, using only basic depth map shadows: using several lights, each with their own depth map shadows, in a row or an array.
Figure 3.23 Viewed from the top, an array of multiple lights create overlapping soft shadows.
This forms the overall impression of one shadow getting softer, as shown in Figure 3.24. In this figure, you can still see the edges of the overlapping lights on the right side, because there are only five lights in the row. More lights would make these bands more subtle so that they could blend together better, but in a production with more complex surfaces and texture maps, these bands would not be as noticeable as they are in the figure.
Figure 3.24 Several shadows blend together to form the impression of one larger source.
The filter is proportionate to the resolution of your shadow map. In other words, if you double the resolution of your shadow map, you might need to double the amount of filtering in order to get an equally soft shadow.
High filter values can be slow to compute, especially on higher-resolution shadow maps. Often you can get similar results if you lower the shadow resolution, instead of just raising the filter value. For example, if your shadow resolution is 1024, and a filter value of 16 isn't soft enough for you, try lowering the shadow resolution to 512 instead of doubling the filter size. The result will be similar, but much faster to render.
Soft Raytraced Shadows
Soft raytraced shadows can be particularly slow to render, but they are very pretty if you can afford the extra rendering time. By default, raytraced shadows from a point-source light are very sharp. In fact, they can often appear too sharp—more perfectly crisp than shadows cast by any light in real life. Luckily, there are several options for getting soft, natural-looking raytraced shadows, with most programs supporting several types of area lights, or a light radius parameter to soften shadows from a point light.
An area light is the most conceptually elegant source for soft shadows, because it is designed to closely resemble the effects of a larger light source in real life. As in real life, a larger light source, such as a fluorescent ceiling panel, casts softer shadows than a smaller light source, such as a bare light-bulb. With area lights, you can simply scale the light larger to make a softer shadow, as shown in Figure 3.25.
Figure 3.25 A small light source (left) makes harder shadows, while larger light sources (right) create softer shadows.
Areas lights in some programs are available in a variety of shapes. Common shapes include a line, cylinder, rectangle, disc, and sphere. Each simulates a different shape light source; for example, a line or cylinder could be a good simulation of light from a fluorescent tube. If fewer shapes are available, often other shapes can be scaled to resemble them, such as scaling a rectangular area light down in one dimension to match a line.
In some programs, specular highlights will even take on the shape and size of your area lights. If they don't, then in some cases it will look better to turn off specularity from the light, and either do without highlights completely or add a raytraced reflection of a similarly shaped object.
Another option for creating soft raytraced shadows in some programs is a light radius parameter on the light. As a raytraced shadow option, light radius creates the impression of a larger light source, like a spherical area light, when calculating raytraced shadows. Increasing the light radius to 3, for example, is the same as having used an area light with a 3-unit radius.
Using a light radius parameter does not create any visible change to your rendering compared to using a round area light. It only changes how you control the softness (by adjusting this parameter instead of scaling the light), and gives you the flexibility to use different kinds of lights, such as a spotlight, to create soft raytraced shadows.
Soft raytraced shadows tend to scatter rays and produce a noisy, dithered pattern, as shown on the left side of Figure 3.26. Turning up the number of Shadow Samples or Shadow Rays will smooth out the shadow, although increasing the sampling will slow down your rendering, making the raytracer do many times more work in computing the shadow. Increasing your scene's anti-aliasing quality will also help smooth out grainy shadows (and will also help slow down your rendering.)
Figure 3.26 Raytraced soft shadows can appear grainy (left), so increased sampling is needed to smooth them out (right.)