Area light sources occupy a finite, one- or two-dimensional area of space. They can cast soft shadows because an
object can partially block their light. Point sources are either totally blocked or not blocked.
The area_light keyword in POV-Ray creates sources that are rectangular in shape, sort of like a flat
panel light. Rather than performing the complex calculations that would be required to model a true area light, it is
approximated as an array of point light sources spread out over the area occupied by the light. The array-effect
applies to shadows only. The object's illumination is still that of a point source. The intensity of each individual
point light in the array is dimmed so that the total amount of light emitted by the light is equal to the light color
specified in the declaration. The syntax is:
AREA_LIGHT_SOURCE:
light_source {
LOCATION_VECTOR, COLOR
area_light
AXIS_1_VECTOR, AXIS_2_VECTOR, Size_1, Size_2
[adaptive Adaptive] [ jitter ]
[ circular ] [ orient ]
[ [LIGHT_MODIFIERS...]
}
Any type of light source may be an area light.
The area_light command defines the location, the size and orientation of the area light as well as the number of
lights in the light source array. The location vector is the centre of a rectangle defined by the two vectors <Axis_1>
and <Axis_2> . These specify the lengths and directions of the edges of the light.
Since the area lights are rectangular in shape these vectors should be perpendicular to each other. The larger the
size of the light the thicker the soft part of shadows will be. The integers Size_1 and Size_2 specify the number of
rows and columns of point sources of the. The more lights you use the smoother your shadows will be but the longer
they will take to render.
Note: it is possible to specify spotlight parameters along with the area light
parameters to create area spotlights. Using area spotlights is a good way to speed up scenes that use area lights
since you can confine the lengthy soft shadow calculations to only the parts of your scene that need them.
An interesting effect can be created using a linear light source. Rather than having a rectangular shape, a linear
light stretches along a line sort of like a thin fluorescent tube. To create a linear light just create an area light
with one of the array dimensions set to 1.
The jitter
command is optional. When used it causes the positions of the point lights in the array to be randomly jittered to
eliminate any shadow banding that may occur. The jittering is completely random from render to render and should not
be used when generating animations.
The adaptive command is
used to enable adaptive sampling of the light source. By default POV-Ray calculates the amount of light that reaches a
surface from an area light by shooting a test ray at every point light within the array. As you can imagine this is
very slow. Adaptive sampling on the other hand attempts to approximate the same calculation by using a minimum number
of test rays. The number specified after the keyword controls how much adaptive sampling is used. The higher the
number the more accurate your shadows will be but the longer they will take to render. If you are not sure what value
to use a good starting point is adaptive 1 . The adaptive keyword only accepts integer
values and cannot be set lower than 0.
When performing adaptive sampling POV-Ray starts by shooting a test ray at each of the four corners of the area
light. If the amount of light received from all four corners is approximately the same then the area light is assumed
to be either fully in view or fully blocked. The light intensity is then calculated as the average intensity of the
light received from the four corners. However, if the light intensity from the four corners differs significantly then
the area light is partially blocked. The area light is split into four quarters and each section is sampled as
described above. This allows POV-Ray to rapidly approximate how much of the area light is in view without having to
shoot a test ray at every light in the array. Visually the sampling goes like shown below.
While the adaptive sampling method is fast (relatively speaking) it can sometimes produce inaccurate shadows. The
solution is to reduce the amount of adaptive sampling without completely turning it off. The number after the adaptive
keyword adjusts the number of times that the area light will be split before the adaptive phase begins. For example if
you use adaptive 0 a minimum of 4 rays will be shot at the light. If you use adaptive 1 a
minimum of 9 rays will be shot (adaptive 2 gives 25 rays, adaptive 3 gives 81 rays, etc).
Obviously the more shadow rays you shoot the slower the rendering will be so you should use the lowest value that
gives acceptable results.
The number of rays never exceeds the values you specify for rows and columns of points. For example area_light
x,y,4,4 specifies a 4 by 4 array of lights. If you specify adaptive 3 it would mean that you
should start with a 9 by 9 array. In this case no adaptive sampling is done. The 4 by 4 array is used.
The circular command has been added to area lights in order to better create circular soft shadows.
With ordinary area lights the pseudo-lights are arranged in a rectangular grid and thus project partly rectangular
shadows around all objects, including circular objects. By including the circular tag in an area
light, the light is stretched and squashed so that it looks like a circle: this way, circular or spherical light
sources are better simulated.
A few things to remember:
-
Circular area lights can be ellipses: the AXIS_1_VECTOR and AXIS_2_VECTOR define the shape and orientation of the
circle; if the vectors are not equal, the light source is elliptical in shape.
-
Rectangular artefacts may still show up with very large area grids.
-
There is no point in using
circular with linear area lights or area lights which have a 2x2 size.
-
The area of a circular light is roughly 78.5 per cent of a similar size rectangular area light. Increase your
axis vectors accordingly if you wish to keep the light source area constant.
The orient command has been added to area lights in order to better create soft shadows. Without this
modifier, you have to take care when choosing the axis vectors of an area_light, since they define both its area and
orientation. Area lights are two dimensional: shadows facing the area light receive light from a larger surface
area than shadows at the sides of the area light.
Actually, the area from which light is emitted at the sides of the area light is reduced to a single line, only
casting soft shadows in one direction.
Between these two extremes the surface area emitting light progresses gradually. By including the orient
modifier in an area light, the light is rotated so that for every shadow test, it always faces the point being tested.
The initial orientation is no longer important, so you only have to consider the desired dimensions (area) of the
light source when specifying the axis vectors. In effect, this makes the area light source appear 3-dimensional
(e.g. an area_light with perpendicular axis vectors of the same size and dimensions using circular and
orient simulates a spherical light source).
Orient has a few restrictions:
-
It can be used with "circular" lights only.
-
The two axes of the area light must be of equal length.
-
The two axes of the area light should use an equal number of samples, and that number should be greater than one
These three rules exist because without them, you can get unpredictable results from the orient feature.
If one of the first two rules is broken, POV will issue a warning and correct the problem. If the third rule is
broken, you will only get the error message, and POV will not automatically correct the problem.
|