NAME
mkillum - compute illum sources for a RADIANCE scene
SYNOPSIS
mkillum [ -n nprocs ][ rtrace options ] octree [ < file .. ]
mkillum [ rtrace options ] -defaults
DESCRIPTION
Mkillum takes a prepared RADIANCE scene description and an octree and
computes light source distributions for each surface, replacing them
with secondary sources whose contributions can be computed more
efficiently by rpict(1) and rvu(1). This type of optimization is most
useful for windows and skylights which represent concentrated sources
of indirect illumination. Mkillum is not appropriate for very large
sources or sources with highly directional distributions. These are
best handled respectively by the ambient calculation and the secondary
source types in RADIANCE.
If the -n option is specified with a value greater than 1, multiple ray
tracing processes will be used to accelerate computation on a shared
memory machine. Note that there is no benefit to using more processes
than there are local CPUs available to do the work.
Remaining arguments to mkillum are interpreted as rendering options for
rtrace(1), to compute the light distributions for the input surfaces.
These surfaces can be any combination of polygons, spheres and rings.
Other surfaces may be included, but mkillum cannot compute their
distributions.
By default, mkillum reads from its standard input and writes to its
standard output. It is possible to specify multiple input files in a
somewhat unconventional fashion by placing a lesser-than symbol (’<’)
before the file names. (Note that this character must be escaped from
most shells.) This is necessary so mkillum can tell where the
rendering arguments end and its own input files begin.
VARIABLES
Mkillum has a number of parameters that can be changed by comments in
the input file of the form:
#@mkillum variable=value option switch{+|-} ..
String or integer variables are separated from their values by the
equals sign (’=’). Options appear by themselves. Switches are
followed either by a plus sign to turn them on or a minus sign to turn
them off.
Parameters are usually changed many times within the same input file to
tailor the calculation, specify different labels and so on. The
parameters and their meanings are described below.
o=string Set the output file to string. All subsequent scene data
will be sent to this file. If this appears in the first
comment in the input, nothing will be sent to the standard
output. Note that this is not recommended when running
mkillum from rad(1), which expects the output to be on the
standard output.
m=string Set the material identifier to string. This name will be
used not only as the new surface modifier, but it will also
be used to name the distribution pattern and the data files.
The distribution name will be string plus the suffix ".dist".
The data file will be named string plus possibly an integer
plus a ".dat" suffix. The integer is used to avoid
accidently writing over an existing file. If overwriting the
file is desired, use the f variable below.
f=string Set the data file name to string. The next data file will be
given this name plus a ".dat" suffix. Subsequent files will
be named string plus an integer plus the ".dat" suffix. An
existing file with the same name will be clobbered. This
variable may be unset by leaving off the value. (See also
the m variable above.)
a Produce secondary sources for all of the surfaces in the
input. This is the default.
e=string Produce secondary sources for all surfaces except those
modified by string. Surfaces modified by string will be
passed to the output unchanged.
i=string Only produce secondary sources for surfaces modified by
string.
n Do not produce any secondary sources. All input will be
passed to the output unaffected, except any void surfaces
will be removed.
b=real Do not produce a secondary source for a surface if its
average brightness (radiance) is less than the value real.
c={d|a|n} Use color information according to the given character. If
the character is d, then color information will be used in
three separate data files and the distribution will be fully
characterized in terms of color. If the character is a, then
only the average color is computed and the distribution will
not contain color information. If the character is n, even
the average distribution color will be thrown away, producing
secondary sources that are completely uncolored. This may be
desirable from a color-balancing point of view.
d=integer Set the number of direction samples per projected steradian
to integer. The number of directions stored in the
associated data file will be approximately this number
multiplied by pi for polygons and rings, and by 4pi for
spheres. If integer is zero, then a diffuse source is
assumed and no distribution is created.
d=string Set the surface Bidirectional Scattering Distribution
Function (BSDF) to the given file. The RADIANCE library path
will be searched if the file does not begin with a ’.’ or ’~’
character. This file must contain an LBNL Window 6 XML
specification of a valid BSDF for the given surface, and all
rays will be interpreted through this function. The
orientation of the BSDF may be controlled with the u setting,
described below. The thickness of the surface may be
controlled with the t setting. If this variable has no
setting or an integer is specified, mkillum returns to the
default behavior of computing the output distribution
directly.
s=integer Set the number of ray samples per direction to integer. This
variable affects the accuracy of the distribution value for
each direction as well as the computation time for mkillum.
l{+|-} Switch between light sources and illum sources. If this
switch is enabled (l+), mkillum will use the material type
"light" to represent surfaces. If disabled (l-), mkillum
will use the material type "illum" with the input surface
modifier as its alternate material. The default is l-.
u=[+|-]{X|Y|Z}
The given axis will be considered "up" for the purposes of
interpreting BSDF data specified with the d variable. The
BSDF will be reoriented relative to the surface as necessary
to keep the up vector in the vertical plane that contains
this axis and the surface normal, corresponding to an azimuth
of 90 degrees. The default up vector is +Z.
t=real Set the surface thickness to real in world coordinates. This
value is used for determining where to start rays that need
to begin on the opposite side of the surface, specifically to
compute the incoming distribution for a BSDF computation.
The default value is 0.
EXAMPLES
The following command generates illum’s corresponding to geometry in
the files "it1.rad" and "it2.rad":
mkillum -ab 2 -ad 1024 -av .1 .1 .1 basic.oct "<" it1.rad it2.rad >
illums.rad
The output file "illums.rad" would then be combined with the original
scene geometry to create a more easily rendered composite.
ENVIRONMENT
RAYPATH the directories to check for auxiliary files.
AUTHOR
Greg Ward
ACKNOWLEDGEMENT
Work on this program was initiated and sponsored by the LESO group at
EPFL in Switzerland.
SEE ALSO
oconv(1), rad(1), rpict(1), rtrace(1), rvu(1)