|
To understand the autostop
option, you need to understand the
way photons are shot from light sources. Photons are shot in a spiral pattern
with uniform angular density. Imagine a sphere with a spiral starting at one of
the poles and spiraling out in ever-increasing circles to the equator. Two
angles are involved here. The first, phi, is the how far progress has been made
in the current circle of the spiral. The second, theta, is how far we are from
the pole to the equator. Now, imagine this sphere centered at the light source
with the pole where the spiral starts pointed towards the center of the object
receiving photons. Now, photons are shot out of the light in this spiral
pattern.
Normally, POV does not stop shooting photons until the target objects
entire bounding box has been thoroughly covered. Sometimes, however, an object
is much smaller than its bounding box. At these times, we want to stop shooting
if we do a complete circle in the spiral without hitting the object.
Unfortunately, some objects (such as copper rings), have holes in the middle.
Since we start shooting at the middle of the object, the photons just go through
the hole in the middle, thus fooling the system into thinking that
it is done. To avoid this, the autostop
keyword lets you specify
how far the system must go before this auto-stopping feature kicks in. The value
specified is a fraction of the object's bounding box. Valid values are 0.0
through 1.0 (0% through 100%). POV will continue to shoot photons until the
spiral has exceeded this value or the bounding box is completely covered. If a
complete circle of photons fails to hit the target object after the spiral has
passed the autostop threshold, POV will then stop shooting photons.
The autostop
feature will also not kick in until at least one
photon has hit the object. This allows you to use autostop 0
even
with objects that have holes in the middle.
Note:If the light source is within the objects bounding box, the photons are shot in all directions from the light source.
Unless photons are interacting with media, POV-Ray uses an adaptive search radius while gathering photons. If the minimum number of photons is not found in the original search radius, the radius is expanded and searched again. Using this adaptive search radius can both decrease the amount of time it takes to render the image, and sharpen the borders in the caustic patterns.
Sometimes this adaptive search technique can create unwanted artefacts at
borders. To remove these artefacts, a few thresholds are used, which can be
specified by expand_thresholds
. For example, if expanding the
radius increases the estimated density of photons by too much (threshold is
percent_increase, default is 20%, or 0.2), the expanded search is discarded and
the old search is used instead. However, if too few photons are gathered in the
expanded search (expand_min
, default is 40), the new search will be
used always, even if it means more than a 20% increase in photon density.
When dispersion is specified for interior of a transparent object, photons will make use of that and show "colored" caustics.
It is possible to save and load photon maps to speed up rendering. The photon map itself is view-independent, so if you want to animate a scene that contains photons and you know the photon map will not change during the animation, you can save it on the first frame and then load it for all subsequent frames.
To save the photon map, put the line
save_file "myfile.ph"
into the photons { }
block inside the global_settings
section.
Loading the photon map is the same, but with load_file
instead
of save_file
. You cannot both load and save a photon map in the POV
file. If you load the photon map, it will load all of the photons. No photons will be shot if the map is loaded
from a file. All other options (such as gather radius) must still be specified
in the POV scene file and are not loaded with the photon map.
|