NAME
pdfblur - generate views for depth-of-field blurring
SYNOPSIS
pdfblur aperture nsamp viewfile
DESCRIPTION
Pdfblur takes the given viewfile and computes nsamp views based on an
aperture diameter of aperture (in world coordinate units) and a focal
distance equal to the length of the -vd view direction vector. When
rendered and averaged together, these views will result in a picture
with the specified depth of field. Either pinterp(1) or rpict(1) may
be called to do the actual work. (The given viewfile must also be
passed on the command line to the chosen renderer, since pdfblur
provides supplemental view specifications only.)
For pinterp, feed the output of pdfblur to the standard input of
pinterp and apply the -B option to blur views together. In most cases,
a single picture with z-buffer is all that is required to get a
satisfactory result, though the perfectionist may wish to apply three
pictures arranged in a triangle about the aperature, or alternatively
apply the -ff option together with the -fr option of pinterp. (The
latter may actually work out to be faster, since rendering three views
takes three times as long as a single view, and the -fr option will end
up recomputing relatively few pixels by comparison.)
To use pdfblur with rpict, apply the -S option to indicate a rendering
sequence, and set the -o option with a formatted file name to save
multiple output pictures. When all the renderings are finished,
combine them with the pcomb(1) program, using appropriate scalefactors
to achieve an average. Note that using rpict is MUCH more expensive
than using pinterp, and it is only recommended if the scene and
application absolutely demand it (e.g. there is prominent refraction
that must be modeled accurately).
For both pinterp and rpict, the computation time will be proportional
to the number of views from pdfblur. We have found a nsamp setting
somewhere between 5 and 10 to be adequate for most images. Relatively
larger values are appropriate for larger aperatures.
The -pd option of rpict may be used instead or in combination with or
instead of pdfblur to blur depth-of-field. If used in combination, it
is best to set the -pd option to the overall aperture divided by nsamp
to minimize ghosting in the output.
To simulate a particular camera’s aperture, divide the focal length of
the lens by the f-number, then convert to the corresponding world
coordinate units. For example, if you wish to simulate a 50mm lens at
f/2.0 in a scene modeled in meters, then you divide 50mm by 2.0 to get
25mm, which corresponds to an effective aperture of 0.025 meters.
EXAMPLES
To use pinterp to simulate an aperture of 0.5 inches on a lens focused
at a distance of 57 inches:
rpict -vf myview -x 640 -y 480 -z orig.zbf scene.oct > orig.hdr
pdfblur 0.5 57 8 orig.hdr | pinterp -B -vf orig.hdr -x 640 -y 480
orig.hdr orig.zbf > blurry.hdr
To use rpict exclusively to do the same:
pdfblur .5 57 5 myview | rpict -S 1 -vf myview -x 640 -y 480 -o
view%d.hdr scene.oct
pcomb -s .2 view1.hdr -s .2 view2.hdr -s .2 view3.hdr -s .2 view4.hdr
-s .2 view5.hdr > blurry.hdr
AUTHOR
Greg Ward
BUGS
This program really only works with perspective views.
SEE ALSO
pcomb(1), pinterp(1), pmblur(1), pmdblur(1), rcalc(1), rpict(1),
vwright(1)