| 1 | 
greg | 
1.24 | 
.\" RCSid "$Id: rtrace.1,v 1.23 2012/06/14 22:42:21 greg Exp $" | 
| 2 | 
greg | 
1.1 | 
.TH RTRACE 1 10/17/97 RADIANCE | 
| 3 | 
  | 
  | 
.SH NAME | 
| 4 | 
  | 
  | 
rtrace - trace rays in RADIANCE scene | 
| 5 | 
  | 
  | 
.SH SYNOPSIS | 
| 6 | 
  | 
  | 
.B rtrace | 
| 7 | 
  | 
  | 
[ | 
| 8 | 
  | 
  | 
.B options | 
| 9 | 
  | 
  | 
] | 
| 10 | 
  | 
  | 
[ | 
| 11 | 
  | 
  | 
.B $EVAR | 
| 12 | 
  | 
  | 
] | 
| 13 | 
  | 
  | 
[ | 
| 14 | 
  | 
  | 
.B @file | 
| 15 | 
  | 
  | 
] | 
| 16 | 
  | 
  | 
.B octree | 
| 17 | 
  | 
  | 
.br | 
| 18 | 
  | 
  | 
.B "rtrace [ options ] \-defaults" | 
| 19 | 
  | 
  | 
.SH DESCRIPTION | 
| 20 | 
  | 
  | 
.I Rtrace | 
| 21 | 
  | 
  | 
traces rays from the standard input through the RADIANCE scene given by | 
| 22 | 
  | 
  | 
.I octree | 
| 23 | 
  | 
  | 
and sends the results to the standard output. | 
| 24 | 
  | 
  | 
(The octree may be given as the output of a command enclosed in quotes | 
| 25 | 
  | 
  | 
and preceded by a `!'.)\0 | 
| 26 | 
  | 
  | 
Input for each ray is: | 
| 27 | 
  | 
  | 
 | 
| 28 | 
  | 
  | 
        xorg yorg zorg xdir ydir zdir | 
| 29 | 
  | 
  | 
 | 
| 30 | 
  | 
  | 
If the direction vector is (0,0,0), a bogus record | 
| 31 | 
  | 
  | 
is printed and the output is flushed if the | 
| 32 | 
  | 
  | 
.I -x | 
| 33 | 
greg | 
1.24 | 
value is one or zero. | 
| 34 | 
greg | 
1.1 | 
(See the notes on this option below.)\0 | 
| 35 | 
  | 
  | 
This may be useful for programs that run | 
| 36 | 
  | 
  | 
.I rtrace | 
| 37 | 
  | 
  | 
as a separate process. | 
| 38 | 
  | 
  | 
In the second form, the default values | 
| 39 | 
  | 
  | 
for the options (modified by those options present) | 
| 40 | 
  | 
  | 
are printed with a brief explanation. | 
| 41 | 
  | 
  | 
.PP | 
| 42 | 
  | 
  | 
Options may be given on the command line and/or read from the | 
| 43 | 
  | 
  | 
environment and/or read from a file. | 
| 44 | 
  | 
  | 
A command argument beginning with a dollar sign ('$') is immediately | 
| 45 | 
  | 
  | 
replaced by the contents of the given environment variable. | 
| 46 | 
  | 
  | 
A command argument beginning with an at sign ('@') is immediately | 
| 47 | 
  | 
  | 
replaced by the contents of the given file. | 
| 48 | 
  | 
  | 
Most options are followed by one or more arguments, which must be | 
| 49 | 
  | 
  | 
separated from the option and each other by white space. | 
| 50 | 
  | 
  | 
The exceptions to this rule are the boolean options. | 
| 51 | 
  | 
  | 
Normally, the appearance of a boolean option causes a feature to | 
| 52 | 
  | 
  | 
be "toggled", that is switched from off to on or on to off | 
| 53 | 
  | 
  | 
depending on its previous state. | 
| 54 | 
  | 
  | 
Boolean options may also be set | 
| 55 | 
  | 
  | 
explicitly by following them immediately with a '+' or '-', meaning | 
| 56 | 
  | 
  | 
on or off, respectively. | 
| 57 | 
  | 
  | 
Synonyms for '+' are any of the characters "yYtT1", and synonyms | 
| 58 | 
  | 
  | 
for '-' are any of the characters "nNfF0". | 
| 59 | 
  | 
  | 
All other characters will generate an error. | 
| 60 | 
  | 
  | 
.TP 10n | 
| 61 | 
  | 
  | 
.BI -f io | 
| 62 | 
  | 
  | 
Format input according to the character | 
| 63 | 
  | 
  | 
.I i | 
| 64 | 
  | 
  | 
and output according to the character | 
| 65 | 
  | 
  | 
.I o. | 
| 66 | 
  | 
  | 
.I Rtrace | 
| 67 | 
  | 
  | 
understands the following input and output formats:  'a' for | 
| 68 | 
  | 
  | 
ascii, 'f' for single-precision floating point, | 
| 69 | 
  | 
  | 
and 'd' for double-precision floating point. | 
| 70 | 
  | 
  | 
In addition to these three choices, the character 'c' may be used | 
| 71 | 
  | 
  | 
to denote 4-byte floating point (Radiance) color format | 
| 72 | 
  | 
  | 
for the output of values only | 
| 73 | 
  | 
  | 
.I (\-ov | 
| 74 | 
  | 
  | 
option, below). | 
| 75 | 
  | 
  | 
If the output character is missing, the input format is used. | 
| 76 | 
  | 
  | 
.IP | 
| 77 | 
  | 
  | 
Note that there is no space between this option and its argument. | 
| 78 | 
  | 
  | 
.TP | 
| 79 | 
  | 
  | 
.BI -o spec | 
| 80 | 
  | 
  | 
Produce output fields according to | 
| 81 | 
  | 
  | 
.I spec. | 
| 82 | 
  | 
  | 
Characters are interpreted as follows: | 
| 83 | 
  | 
  | 
.IP | 
| 84 | 
  | 
  | 
o       origin (input) | 
| 85 | 
  | 
  | 
.IP | 
| 86 | 
  | 
  | 
d       direction (normalized) | 
| 87 | 
  | 
  | 
.IP | 
| 88 | 
  | 
  | 
v       value (radiance) | 
| 89 | 
  | 
  | 
.IP | 
| 90 | 
greg | 
1.14 | 
V       contribution (radiance) | 
| 91 | 
  | 
  | 
.IP | 
| 92 | 
greg | 
1.1 | 
w       weight | 
| 93 | 
  | 
  | 
.IP | 
| 94 | 
greg | 
1.10 | 
W       color coefficient | 
| 95 | 
greg | 
1.7 | 
.IP | 
| 96 | 
greg | 
1.1 | 
l       effective length of ray | 
| 97 | 
  | 
  | 
.IP | 
| 98 | 
  | 
  | 
L       first intersection distance | 
| 99 | 
  | 
  | 
.IP | 
| 100 | 
greg | 
1.2 | 
c       local (u,v) coordinates | 
| 101 | 
  | 
  | 
.IP | 
| 102 | 
greg | 
1.1 | 
p       point of intersection | 
| 103 | 
  | 
  | 
.IP | 
| 104 | 
  | 
  | 
n       normal at intersection (perturbed) | 
| 105 | 
  | 
  | 
.IP | 
| 106 | 
  | 
  | 
N       normal at intersection (unperturbed) | 
| 107 | 
  | 
  | 
.IP | 
| 108 | 
  | 
  | 
s       surface name | 
| 109 | 
  | 
  | 
.IP | 
| 110 | 
  | 
  | 
m       modifier name | 
| 111 | 
  | 
  | 
.IP | 
| 112 | 
greg | 
1.6 | 
M       material name | 
| 113 | 
  | 
  | 
.IP | 
| 114 | 
greg | 
1.9 | 
~       tilde (end of trace marker) | 
| 115 | 
greg | 
1.8 | 
.IP | 
| 116 | 
greg | 
1.1 | 
If the letter 't' appears in | 
| 117 | 
  | 
  | 
.I spec, | 
| 118 | 
  | 
  | 
then the fields following will be printed for every ray traced, | 
| 119 | 
  | 
  | 
not just the final result. | 
| 120 | 
greg | 
1.7 | 
If the capital letter 'T' is given instead of 't', then all rays will | 
| 121 | 
  | 
  | 
be reported, including shadow testing rays to light sources. | 
| 122 | 
greg | 
1.1 | 
Spawned rays are indented one tab for each level. | 
| 123 | 
greg | 
1.9 | 
The tilde marker ('~') is a handy way of differentiating the final ray | 
| 124 | 
  | 
  | 
value from daughter values in a traced ray tree, and usually appears | 
| 125 | 
  | 
  | 
right before the 't' or 'T' output flags. | 
| 126 | 
greg | 
1.8 | 
E.g., | 
| 127 | 
greg | 
1.9 | 
.I \-ov~TmW | 
| 128 | 
  | 
  | 
will emit a tilde followed by a tab at the end of each trace, | 
| 129 | 
  | 
  | 
which can be easily distinguished even in binary output. | 
| 130 | 
greg | 
1.1 | 
.IP | 
| 131 | 
  | 
  | 
Note that there is no space between this option and its argument. | 
| 132 | 
  | 
  | 
.TP | 
| 133 | 
greg | 
1.6 | 
.BI -te \ mod | 
| 134 | 
greg | 
1.1 | 
Append | 
| 135 | 
greg | 
1.6 | 
.I mod | 
| 136 | 
greg | 
1.1 | 
to the trace exclude list, | 
| 137 | 
  | 
  | 
so that it will not be reported by the trace option | 
| 138 | 
  | 
  | 
.I (\-o*t*). | 
| 139 | 
  | 
  | 
Any ray striking an object having | 
| 140 | 
greg | 
1.6 | 
.I mod | 
| 141 | 
greg | 
1.1 | 
as its modifier will not be reported to the standard output with | 
| 142 | 
  | 
  | 
the rest of the rays being traced. | 
| 143 | 
greg | 
1.7 | 
This option has no effect unless either the 't' or 'T' | 
| 144 | 
  | 
  | 
option has been given as part of the output specifier. | 
| 145 | 
greg | 
1.6 | 
Any number of excluded modifiers may be given, but each | 
| 146 | 
greg | 
1.1 | 
must appear in a separate option. | 
| 147 | 
  | 
  | 
.TP | 
| 148 | 
greg | 
1.6 | 
.BI -ti \ mod | 
| 149 | 
greg | 
1.1 | 
Add | 
| 150 | 
greg | 
1.6 | 
.I mod | 
| 151 | 
greg | 
1.1 | 
to the trace include list, | 
| 152 | 
greg | 
1.8 | 
so that it will be reported by the trace option. | 
| 153 | 
greg | 
1.1 | 
The program can use either an include list or an exclude | 
| 154 | 
  | 
  | 
list, but not both. | 
| 155 | 
  | 
  | 
.TP | 
| 156 | 
  | 
  | 
.BI -tE \ file | 
| 157 | 
  | 
  | 
Same as | 
| 158 | 
  | 
  | 
.I \-te, | 
| 159 | 
greg | 
1.6 | 
except read modifiers to be excluded from | 
| 160 | 
greg | 
1.1 | 
.I file. | 
| 161 | 
  | 
  | 
The RAYPATH environment variable determines which directories are | 
| 162 | 
  | 
  | 
searched for this file. | 
| 163 | 
greg | 
1.6 | 
The modifier names are separated by white space in the file. | 
| 164 | 
greg | 
1.1 | 
.TP | 
| 165 | 
  | 
  | 
.BI -tI \ file | 
| 166 | 
  | 
  | 
Same as | 
| 167 | 
  | 
  | 
.I \-ti, | 
| 168 | 
greg | 
1.6 | 
except read modifiers to be included from | 
| 169 | 
greg | 
1.1 | 
.I file. | 
| 170 | 
  | 
  | 
.TP | 
| 171 | 
  | 
  | 
.BR \-i | 
| 172 | 
  | 
  | 
Boolean switch to compute irradiance rather than radiance values. | 
| 173 | 
  | 
  | 
This only affects the final result, substituting a Lambertian | 
| 174 | 
  | 
  | 
surface and multiplying the radiance by pi. | 
| 175 | 
  | 
  | 
Glass and other transparent surfaces are ignored during this stage. | 
| 176 | 
  | 
  | 
Light sources still appear with their original radiance values, | 
| 177 | 
  | 
  | 
though the | 
| 178 | 
  | 
  | 
.I \-dv | 
| 179 | 
  | 
  | 
option (below) may be used to override this. | 
| 180 | 
  | 
  | 
This option is especially useful in | 
| 181 | 
  | 
  | 
conjunction with ximage(1) for computing illuminance at scene points. | 
| 182 | 
  | 
  | 
.TP | 
| 183 | 
greg | 
1.13 | 
.BR \-u | 
| 184 | 
  | 
  | 
Boolean switch to control uncorrelated random sampling. | 
| 185 | 
greg | 
1.12 | 
When "off", a low-discrepancy sequence is used, which reduces | 
| 186 | 
  | 
  | 
variance but can result in a brushed appearance in specular highlights. | 
| 187 | 
  | 
  | 
When "on", pure Monte Carlo sampling is used in all calculations. | 
| 188 | 
  | 
  | 
.TP | 
| 189 | 
greg | 
1.1 | 
.BR \-I | 
| 190 | 
  | 
  | 
Boolean switch to compute irradiance rather than radiance, | 
| 191 | 
  | 
  | 
with the input origin and direction interpreted instead | 
| 192 | 
  | 
  | 
as measurement point and orientation. | 
| 193 | 
  | 
  | 
.TP | 
| 194 | 
  | 
  | 
.BR \-h | 
| 195 | 
  | 
  | 
Boolean switch for information header on output. | 
| 196 | 
  | 
  | 
.TP | 
| 197 | 
  | 
  | 
.BI -x \ res | 
| 198 | 
  | 
  | 
Set the x resolution to | 
| 199 | 
  | 
  | 
.I res. | 
| 200 | 
  | 
  | 
The output will be flushed after every | 
| 201 | 
  | 
  | 
.I res | 
| 202 | 
greg | 
1.21 | 
input rays if | 
| 203 | 
  | 
  | 
.I \-y | 
| 204 | 
  | 
  | 
is set to zero. | 
| 205 | 
  | 
  | 
A value of one means that every ray will be flushed, whatever | 
| 206 | 
  | 
  | 
the setting of | 
| 207 | 
  | 
  | 
.I \-y. | 
| 208 | 
greg | 
1.1 | 
A value of zero means that no output flushing will take place. | 
| 209 | 
  | 
  | 
.TP | 
| 210 | 
  | 
  | 
.BI -y \ res | 
| 211 | 
  | 
  | 
Set the y resolution to | 
| 212 | 
  | 
  | 
.I res. | 
| 213 | 
  | 
  | 
The program will exit after | 
| 214 | 
  | 
  | 
.I res | 
| 215 | 
  | 
  | 
scanlines have been processed, where a scanline is the number of rays | 
| 216 | 
  | 
  | 
given by the | 
| 217 | 
  | 
  | 
.I \-x | 
| 218 | 
  | 
  | 
option, or 1 if | 
| 219 | 
  | 
  | 
.I \-x | 
| 220 | 
  | 
  | 
is zero. | 
| 221 | 
  | 
  | 
A value of zero means the program will not halt until the end | 
| 222 | 
  | 
  | 
of file is reached. | 
| 223 | 
  | 
  | 
.IP | 
| 224 | 
  | 
  | 
If both | 
| 225 | 
  | 
  | 
.I \-x | 
| 226 | 
  | 
  | 
and | 
| 227 | 
  | 
  | 
.I \-y | 
| 228 | 
  | 
  | 
options are given, a resolution string is printed at the beginning | 
| 229 | 
  | 
  | 
of the output. | 
| 230 | 
  | 
  | 
This is mostly useful for recovering image dimensions with | 
| 231 | 
  | 
  | 
.I pvalue(1), | 
| 232 | 
  | 
  | 
and for creating valid Radiance picture files using the color output | 
| 233 | 
  | 
  | 
format. | 
| 234 | 
  | 
  | 
(See the | 
| 235 | 
  | 
  | 
.I \-f | 
| 236 | 
  | 
  | 
option, above.) | 
| 237 | 
  | 
  | 
.TP | 
| 238 | 
greg | 
1.18 | 
.BI -n \ nproc | 
| 239 | 
  | 
  | 
Execute in parallel on | 
| 240 | 
  | 
  | 
.I nproc | 
| 241 | 
  | 
  | 
local processes. | 
| 242 | 
greg | 
1.19 | 
This option is incompatible with the | 
| 243 | 
greg | 
1.18 | 
.I \-P | 
| 244 | 
  | 
  | 
and | 
| 245 | 
  | 
  | 
.I \-PP, | 
| 246 | 
greg | 
1.19 | 
options. | 
| 247 | 
greg | 
1.18 | 
Multiple processes also do not work properly with ray tree output | 
| 248 | 
  | 
  | 
using any of the | 
| 249 | 
  | 
  | 
.I \-o*t* | 
| 250 | 
  | 
  | 
options. | 
| 251 | 
  | 
  | 
There is no benefit from specifying more processes than there are | 
| 252 | 
  | 
  | 
cores available on the system or the | 
| 253 | 
  | 
  | 
.I \-x | 
| 254 | 
  | 
  | 
setting, which forces a wait at each flush. | 
| 255 | 
  | 
  | 
.TP | 
| 256 | 
greg | 
1.1 | 
.BI -dj \ frac | 
| 257 | 
  | 
  | 
Set the direct jittering to | 
| 258 | 
  | 
  | 
.I frac. | 
| 259 | 
  | 
  | 
A value of zero samples each source at specific sample points | 
| 260 | 
  | 
  | 
(see the | 
| 261 | 
  | 
  | 
.I \-ds | 
| 262 | 
  | 
  | 
option below), giving a smoother but somewhat less accurate | 
| 263 | 
  | 
  | 
rendering. | 
| 264 | 
  | 
  | 
A positive value causes rays to be distributed over each | 
| 265 | 
  | 
  | 
source sample according to its size, resulting in more accurate | 
| 266 | 
  | 
  | 
penumbras. | 
| 267 | 
  | 
  | 
This option should never be greater than 1, and may even | 
| 268 | 
  | 
  | 
cause problems (such as speckle) when the value is smaller. | 
| 269 | 
  | 
  | 
A warning about aiming failure will issued if | 
| 270 | 
  | 
  | 
.I frac | 
| 271 | 
  | 
  | 
is too large. | 
| 272 | 
  | 
  | 
.TP | 
| 273 | 
  | 
  | 
.BI -ds \ frac | 
| 274 | 
  | 
  | 
Set the direct sampling ratio to | 
| 275 | 
  | 
  | 
.I frac. | 
| 276 | 
  | 
  | 
A light source will be subdivided until | 
| 277 | 
  | 
  | 
the width of each sample area divided by the distance | 
| 278 | 
  | 
  | 
to the illuminated point is below this ratio. | 
| 279 | 
  | 
  | 
This assures accuracy in regions close to large area sources | 
| 280 | 
  | 
  | 
at a slight computational expense. | 
| 281 | 
  | 
  | 
A value of zero turns source subdivision off, sending at most one | 
| 282 | 
  | 
  | 
shadow ray to each light source. | 
| 283 | 
  | 
  | 
.TP | 
| 284 | 
  | 
  | 
.BI -dt \ frac | 
| 285 | 
  | 
  | 
Set the direct threshold to | 
| 286 | 
  | 
  | 
.I frac. | 
| 287 | 
  | 
  | 
Shadow testing will stop when the potential contribution of at least | 
| 288 | 
  | 
  | 
the next and at most all remaining light sources is less than | 
| 289 | 
  | 
  | 
this fraction of the accumulated value. | 
| 290 | 
  | 
  | 
(See the | 
| 291 | 
  | 
  | 
.I \-dc | 
| 292 | 
  | 
  | 
option below.) | 
| 293 | 
  | 
  | 
The remaining light source contributions are approximated | 
| 294 | 
  | 
  | 
statistically. | 
| 295 | 
  | 
  | 
A value of zero means that all light sources will be tested for shadow. | 
| 296 | 
  | 
  | 
.TP | 
| 297 | 
  | 
  | 
.BI \-dc \ frac | 
| 298 | 
  | 
  | 
Set the direct certainty to | 
| 299 | 
  | 
  | 
.I frac. | 
| 300 | 
  | 
  | 
A value of one guarantees that the absolute accuracy of the direct calculation | 
| 301 | 
  | 
  | 
will be equal to or better than that given in the | 
| 302 | 
  | 
  | 
.I \-dt | 
| 303 | 
  | 
  | 
specification. | 
| 304 | 
  | 
  | 
A value of zero only insures that all shadow lines resulting in a contrast | 
| 305 | 
  | 
  | 
change greater than the | 
| 306 | 
  | 
  | 
.I \-dt | 
| 307 | 
  | 
  | 
specification will be calculated. | 
| 308 | 
  | 
  | 
.TP | 
| 309 | 
  | 
  | 
.BI -dr \ N | 
| 310 | 
  | 
  | 
Set the number of relays for secondary sources to | 
| 311 | 
  | 
  | 
.I N. | 
| 312 | 
  | 
  | 
A value of 0 means that secondary sources will be ignored. | 
| 313 | 
  | 
  | 
A value of 1 means that sources will be made into first generation | 
| 314 | 
  | 
  | 
secondary sources; a value of 2 means that first generation | 
| 315 | 
  | 
  | 
secondary sources will also be made into second generation secondary | 
| 316 | 
  | 
  | 
sources, and so on. | 
| 317 | 
  | 
  | 
.TP | 
| 318 | 
  | 
  | 
.BI -dp \ D | 
| 319 | 
  | 
  | 
Set the secondary source presampling density to D. | 
| 320 | 
  | 
  | 
This is the number of samples per steradian  | 
| 321 | 
  | 
  | 
that will be used to determine ahead of time whether or not | 
| 322 | 
  | 
  | 
it is worth following shadow rays through all the reflections and/or | 
| 323 | 
  | 
  | 
transmissions associated with a secondary source path. | 
| 324 | 
  | 
  | 
A value of 0 means that the full secondary source path will always | 
| 325 | 
  | 
  | 
be tested for shadows if it is tested at all. | 
| 326 | 
  | 
  | 
.TP | 
| 327 | 
  | 
  | 
.BR \-dv | 
| 328 | 
  | 
  | 
Boolean switch for light source visibility. | 
| 329 | 
  | 
  | 
With this switch off, sources will be black when viewed directly | 
| 330 | 
  | 
  | 
although they will still participate in the direct calculation. | 
| 331 | 
  | 
  | 
This option is mostly for the program | 
| 332 | 
  | 
  | 
.I mkillum(1) | 
| 333 | 
  | 
  | 
to avoid inappropriate counting of light sources, but it | 
| 334 | 
  | 
  | 
may also be desirable in conjunction with the | 
| 335 | 
  | 
  | 
.I \-i | 
| 336 | 
  | 
  | 
option. | 
| 337 | 
  | 
  | 
.TP | 
| 338 | 
greg | 
1.22 | 
.BI -ss \ samp | 
| 339 | 
  | 
  | 
Set the specular sampling to | 
| 340 | 
  | 
  | 
.I samp. | 
| 341 | 
  | 
  | 
For values less than 1, this is the degree to which the highlights | 
| 342 | 
  | 
  | 
are sampled for rough specular materials. | 
| 343 | 
  | 
  | 
A value greater than one causes multiple ray samples to be sent | 
| 344 | 
  | 
  | 
to reduce noise at a commmesurate cost. | 
| 345 | 
greg | 
1.1 | 
A value of zero means that no jittering will take place, and all | 
| 346 | 
  | 
  | 
reflections will appear sharp even when they should be diffuse. | 
| 347 | 
  | 
  | 
.TP | 
| 348 | 
  | 
  | 
.BI -st \ frac | 
| 349 | 
  | 
  | 
Set the specular sampling threshold to | 
| 350 | 
  | 
  | 
.I frac. | 
| 351 | 
  | 
  | 
This is the minimum fraction of reflection or transmission, under which  | 
| 352 | 
  | 
  | 
no specular sampling is performed. | 
| 353 | 
  | 
  | 
A value of zero means that highlights will always be sampled by | 
| 354 | 
  | 
  | 
tracing reflected or transmitted rays. | 
| 355 | 
  | 
  | 
A value of one means that specular sampling is never used. | 
| 356 | 
  | 
  | 
Highlights from light sources will always be correct, but | 
| 357 | 
  | 
  | 
reflections from other surfaces will be approximated using an | 
| 358 | 
  | 
  | 
ambient value. | 
| 359 | 
  | 
  | 
A sampling threshold between zero and one offers a compromise between image | 
| 360 | 
  | 
  | 
accuracy and rendering time. | 
| 361 | 
  | 
  | 
.TP | 
| 362 | 
  | 
  | 
.BR -bv | 
| 363 | 
  | 
  | 
Boolean switch for back face visibility. | 
| 364 | 
  | 
  | 
With this switch off, back faces of opaque objects will be invisible | 
| 365 | 
  | 
  | 
to all rays. | 
| 366 | 
  | 
  | 
This is dangerous unless the model was constructed such that | 
| 367 | 
  | 
  | 
all surface normals on opaque objects face outward. | 
| 368 | 
  | 
  | 
Although turning off back face visibility does not save much | 
| 369 | 
  | 
  | 
computation time under most circumstances, it may be useful as a | 
| 370 | 
  | 
  | 
tool for scene debugging, or for seeing through one-sided walls from | 
| 371 | 
  | 
  | 
the outside. | 
| 372 | 
  | 
  | 
This option has no effect on transparent or translucent materials. | 
| 373 | 
  | 
  | 
.TP | 
| 374 | 
  | 
  | 
.BI -av " red grn blu" | 
| 375 | 
  | 
  | 
Set the ambient value to a radiance of | 
| 376 | 
  | 
  | 
.I "red grn blu". | 
| 377 | 
  | 
  | 
This is the final value used in place of an | 
| 378 | 
  | 
  | 
indirect light calculation. | 
| 379 | 
  | 
  | 
If the number of ambient bounces is one or greater and the ambient | 
| 380 | 
  | 
  | 
value weight is non-zero (see | 
| 381 | 
  | 
  | 
.I -aw | 
| 382 | 
  | 
  | 
and | 
| 383 | 
  | 
  | 
.I -ab | 
| 384 | 
  | 
  | 
below), this value may be modified by the computed indirect values | 
| 385 | 
  | 
  | 
to improve overall accuracy. | 
| 386 | 
  | 
  | 
.TP | 
| 387 | 
  | 
  | 
.BI -aw \ N | 
| 388 | 
  | 
  | 
Set the relative weight of the ambient value given with the | 
| 389 | 
  | 
  | 
.I -av | 
| 390 | 
  | 
  | 
option to | 
| 391 | 
  | 
  | 
.I N. | 
| 392 | 
  | 
  | 
As new indirect irradiances are computed, they will modify the | 
| 393 | 
  | 
  | 
default ambient value in a moving average, with the specified weight | 
| 394 | 
  | 
  | 
assigned to the initial value given on the command and all other | 
| 395 | 
  | 
  | 
weights set to 1. | 
| 396 | 
  | 
  | 
If a value of 0 is given with this option, then the initial ambient | 
| 397 | 
  | 
  | 
value is never modified. | 
| 398 | 
  | 
  | 
This is the safest value for scenes with large differences in | 
| 399 | 
  | 
  | 
indirect contributions, such as when both indoor and outdoor | 
| 400 | 
  | 
  | 
(daylight) areas are visible. | 
| 401 | 
  | 
  | 
.TP | 
| 402 | 
  | 
  | 
.BI -ab \ N | 
| 403 | 
  | 
  | 
Set the number of ambient bounces to | 
| 404 | 
  | 
  | 
.I N. | 
| 405 | 
  | 
  | 
This is the maximum number of diffuse bounces  | 
| 406 | 
  | 
  | 
computed by the indirect calculation. | 
| 407 | 
  | 
  | 
A value of zero implies no indirect calculation. | 
| 408 | 
  | 
  | 
.TP | 
| 409 | 
  | 
  | 
.BI -ar \ res | 
| 410 | 
  | 
  | 
Set the ambient resolution to | 
| 411 | 
  | 
  | 
.I res. | 
| 412 | 
  | 
  | 
This number will determine the maximum density of ambient values | 
| 413 | 
  | 
  | 
used in interpolation. | 
| 414 | 
  | 
  | 
Error will start to increase on surfaces spaced closer than | 
| 415 | 
  | 
  | 
the scene size divided by the ambient resolution. | 
| 416 | 
  | 
  | 
The maximum ambient value density is the scene size times the | 
| 417 | 
  | 
  | 
ambient accuracy (see the | 
| 418 | 
  | 
  | 
.I \-aa | 
| 419 | 
  | 
  | 
option below) divided by the ambient resolution. | 
| 420 | 
  | 
  | 
The scene size can be determined using | 
| 421 | 
  | 
  | 
.I getinfo(1) | 
| 422 | 
  | 
  | 
with the | 
| 423 | 
  | 
  | 
.I \-d | 
| 424 | 
  | 
  | 
option on the input octree. | 
| 425 | 
  | 
  | 
.TP | 
| 426 | 
  | 
  | 
.BI -aa \ acc | 
| 427 | 
  | 
  | 
Set the ambient accuracy to | 
| 428 | 
  | 
  | 
.I acc. | 
| 429 | 
  | 
  | 
This value will approximately equal the error | 
| 430 | 
  | 
  | 
from indirect illuminance interpolation. | 
| 431 | 
  | 
  | 
A value of zero implies no interpolation. | 
| 432 | 
  | 
  | 
.TP | 
| 433 | 
  | 
  | 
.BI -ad \ N | 
| 434 | 
  | 
  | 
Set the number of ambient divisions to | 
| 435 | 
  | 
  | 
.I N. | 
| 436 | 
  | 
  | 
The error in the Monte Carlo calculation of indirect | 
| 437 | 
  | 
  | 
illuminance will be inversely proportional to the square | 
| 438 | 
  | 
  | 
root of this number. | 
| 439 | 
  | 
  | 
A value of zero implies no indirect calculation. | 
| 440 | 
  | 
  | 
.TP | 
| 441 | 
  | 
  | 
.BI -as \ N | 
| 442 | 
  | 
  | 
Set the number of ambient super-samples to | 
| 443 | 
  | 
  | 
.I N. | 
| 444 | 
  | 
  | 
Super-samples are applied only to the ambient divisions which | 
| 445 | 
  | 
  | 
show a significant change. | 
| 446 | 
  | 
  | 
.TP | 
| 447 | 
  | 
  | 
.BI -af \ fname | 
| 448 | 
  | 
  | 
Set the ambient file to | 
| 449 | 
  | 
  | 
.I fname. | 
| 450 | 
  | 
  | 
This is where indirect illuminance will be stored and retrieved. | 
| 451 | 
  | 
  | 
Normally, indirect illuminance values are kept in memory and | 
| 452 | 
  | 
  | 
lost when the program finishes or dies. | 
| 453 | 
  | 
  | 
By using a file, different invocations can share illuminance | 
| 454 | 
  | 
  | 
values, saving time in the computation. | 
| 455 | 
  | 
  | 
The ambient file is in a machine-independent binary format | 
| 456 | 
  | 
  | 
which can be examined with | 
| 457 | 
  | 
  | 
.I lookamb(1). | 
| 458 | 
  | 
  | 
.IP | 
| 459 | 
  | 
  | 
The ambient file may also be used as a means of communication and | 
| 460 | 
  | 
  | 
data sharing between simultaneously executing processes. | 
| 461 | 
  | 
  | 
The same file may be used by multiple processes, possibly running on | 
| 462 | 
  | 
  | 
different machines and accessing the file via the network (ie. | 
| 463 | 
  | 
  | 
.I nfs(4)). | 
| 464 | 
  | 
  | 
The network lock manager | 
| 465 | 
  | 
  | 
.I lockd(8) | 
| 466 | 
  | 
  | 
is used to insure that this information is used consistently. | 
| 467 | 
  | 
  | 
.IP | 
| 468 | 
  | 
  | 
If any calculation parameters are changed or the scene | 
| 469 | 
  | 
  | 
is modified, the old ambient file should be removed so that | 
| 470 | 
  | 
  | 
the calculation can start over from scratch. | 
| 471 | 
  | 
  | 
For convenience, the original ambient parameters are listed in the | 
| 472 | 
  | 
  | 
header of the ambient file. | 
| 473 | 
  | 
  | 
.I Getinfo(1) | 
| 474 | 
  | 
  | 
may be used to print out this information. | 
| 475 | 
  | 
  | 
.TP | 
| 476 | 
greg | 
1.6 | 
.BI -ae \ mod | 
| 477 | 
greg | 
1.1 | 
Append | 
| 478 | 
greg | 
1.6 | 
.I mod | 
| 479 | 
greg | 
1.1 | 
to the ambient exclude list, | 
| 480 | 
  | 
  | 
so that it will not be considered during the indirect calculation. | 
| 481 | 
  | 
  | 
This is a hack for speeding the indirect computation by | 
| 482 | 
  | 
  | 
ignoring certain objects. | 
| 483 | 
  | 
  | 
Any object having | 
| 484 | 
greg | 
1.6 | 
.I mod | 
| 485 | 
greg | 
1.1 | 
as its modifier will get the default ambient | 
| 486 | 
  | 
  | 
level rather than a calculated value. | 
| 487 | 
greg | 
1.6 | 
Any number of excluded modifiers may be given, but each | 
| 488 | 
greg | 
1.1 | 
must appear in a separate option. | 
| 489 | 
  | 
  | 
.TP | 
| 490 | 
greg | 
1.6 | 
.BI -ai \ mod | 
| 491 | 
greg | 
1.1 | 
Add | 
| 492 | 
greg | 
1.6 | 
.I mod | 
| 493 | 
greg | 
1.1 | 
to the ambient include list, | 
| 494 | 
  | 
  | 
so that it will be considered during the indirect calculation. | 
| 495 | 
  | 
  | 
The program can use either an include list or an exclude | 
| 496 | 
  | 
  | 
list, but not both. | 
| 497 | 
  | 
  | 
.TP | 
| 498 | 
  | 
  | 
.BI -aE \ file | 
| 499 | 
  | 
  | 
Same as | 
| 500 | 
  | 
  | 
.I \-ae, | 
| 501 | 
greg | 
1.6 | 
except read modifiers to be excluded from | 
| 502 | 
greg | 
1.1 | 
.I file. | 
| 503 | 
  | 
  | 
The RAYPATH environment variable determines which directories are | 
| 504 | 
  | 
  | 
searched for this file. | 
| 505 | 
greg | 
1.6 | 
The modifier names are separated by white space in the file. | 
| 506 | 
greg | 
1.1 | 
.TP | 
| 507 | 
  | 
  | 
.BI -aI \ file | 
| 508 | 
  | 
  | 
Same as | 
| 509 | 
  | 
  | 
.I \-ai, | 
| 510 | 
greg | 
1.6 | 
except read modifiers to be included from | 
| 511 | 
greg | 
1.1 | 
.I file. | 
| 512 | 
  | 
  | 
.TP | 
| 513 | 
  | 
  | 
.BI -me " rext gext bext" | 
| 514 | 
  | 
  | 
Set the global medium extinction coefficient to the indicated color, | 
| 515 | 
  | 
  | 
in units of 1/distance (distance in world coordinates). | 
| 516 | 
  | 
  | 
Light will be scattered or absorbed over distance according to | 
| 517 | 
  | 
  | 
this value. | 
| 518 | 
  | 
  | 
The ratio of scattering to total scattering plus absorption is set | 
| 519 | 
  | 
  | 
by the albedo parameter, described below. | 
| 520 | 
  | 
  | 
.TP | 
| 521 | 
  | 
  | 
.BI -ma " ralb galb balb" | 
| 522 | 
  | 
  | 
Set the global medium albedo to the given value between 0\00\00 | 
| 523 | 
  | 
  | 
and 1\01\01. | 
| 524 | 
  | 
  | 
A zero value means that all light not transmitted by the medium | 
| 525 | 
  | 
  | 
is absorbed. | 
| 526 | 
  | 
  | 
A unitary value means that all light not transmitted by the medium | 
| 527 | 
  | 
  | 
is scattered in some new direction. | 
| 528 | 
  | 
  | 
The isotropy of scattering is determined by the Heyney-Greenstein | 
| 529 | 
  | 
  | 
parameter, described below. | 
| 530 | 
  | 
  | 
.TP | 
| 531 | 
  | 
  | 
.BI \-mg \ gecc | 
| 532 | 
  | 
  | 
Set the medium Heyney-Greenstein eccentricity parameter to | 
| 533 | 
  | 
  | 
.I gecc. | 
| 534 | 
  | 
  | 
This parameter determines how strongly scattering favors the forward | 
| 535 | 
  | 
  | 
direction. | 
| 536 | 
  | 
  | 
A value of 0 indicates perfectly isotropic scattering. | 
| 537 | 
  | 
  | 
As this parameter approaches 1, scattering tends to prefer the | 
| 538 | 
  | 
  | 
forward direction. | 
| 539 | 
  | 
  | 
.TP | 
| 540 | 
  | 
  | 
.BI \-ms \ sampdist | 
| 541 | 
  | 
  | 
Set the medium sampling distance to | 
| 542 | 
  | 
  | 
.I sampdist, | 
| 543 | 
  | 
  | 
in world coordinate units. | 
| 544 | 
  | 
  | 
During source scattering, this will be the average distance between | 
| 545 | 
  | 
  | 
adjacent samples. | 
| 546 | 
  | 
  | 
A value of 0 means that only one sample will be taken per light | 
| 547 | 
  | 
  | 
source within a given scattering volume. | 
| 548 | 
  | 
  | 
.TP | 
| 549 | 
  | 
  | 
.BI -lr \ N | 
| 550 | 
  | 
  | 
Limit reflections to a maximum of | 
| 551 | 
greg | 
1.20 | 
.I N, | 
| 552 | 
  | 
  | 
if N is a positive integer. | 
| 553 | 
greg | 
1.11 | 
If | 
| 554 | 
  | 
  | 
.I N | 
| 555 | 
  | 
  | 
is zero or negative, then Russian roulette is used for ray | 
| 556 | 
  | 
  | 
termination, and the | 
| 557 | 
  | 
  | 
.I -lw | 
| 558 | 
  | 
  | 
setting (below) must be positive. | 
| 559 | 
  | 
  | 
If N is a negative integer, then this sets the upper limit | 
| 560 | 
greg | 
1.20 | 
of reflections past which Russian roulette will be used. | 
| 561 | 
greg | 
1.11 | 
In scenes with dielectrics and total internal reflection, | 
| 562 | 
  | 
  | 
a setting of 0 (no limit) may cause a stack overflow. | 
| 563 | 
greg | 
1.1 | 
.TP | 
| 564 | 
  | 
  | 
.BI -lw \ frac | 
| 565 | 
  | 
  | 
Limit the weight of each ray to a minimum of | 
| 566 | 
  | 
  | 
.I frac. | 
| 567 | 
greg | 
1.11 | 
During ray-tracing, a record is kept of the estimated contribution | 
| 568 | 
  | 
  | 
(weight) a ray would have in the image. | 
| 569 | 
  | 
  | 
If this weight is less than the specified minimum and the | 
| 570 | 
  | 
  | 
.I -lr | 
| 571 | 
  | 
  | 
setting (above) is positive, the ray is not traced. | 
| 572 | 
  | 
  | 
Otherwise, Russian roulette is used to | 
| 573 | 
  | 
  | 
continue rays with a probability equal to the ray weight | 
| 574 | 
  | 
  | 
divided by the given | 
| 575 | 
  | 
  | 
.I frac. | 
| 576 | 
greg | 
1.1 | 
.TP | 
| 577 | 
  | 
  | 
.BR -ld | 
| 578 | 
  | 
  | 
Boolean switch to limit ray distance. | 
| 579 | 
  | 
  | 
If this option is set, then rays will only be traced as far as the | 
| 580 | 
  | 
  | 
magnitude of each direction vector. | 
| 581 | 
  | 
  | 
Otherwise, vector magnitude is ignored and rays are traced to infinity. | 
| 582 | 
  | 
  | 
.TP | 
| 583 | 
  | 
  | 
.BI -e \ efile | 
| 584 | 
  | 
  | 
Send error messages and progress reports to | 
| 585 | 
  | 
  | 
.I efile | 
| 586 | 
  | 
  | 
instead of the standard error. | 
| 587 | 
  | 
  | 
.TP | 
| 588 | 
  | 
  | 
.BR \-w | 
| 589 | 
  | 
  | 
Boolean switch to suppress warning messages. | 
| 590 | 
  | 
  | 
.TP | 
| 591 | 
  | 
  | 
.BI \-P \ pfile | 
| 592 | 
  | 
  | 
Execute in a persistent mode, using | 
| 593 | 
  | 
  | 
.I pfile | 
| 594 | 
  | 
  | 
as the control file. | 
| 595 | 
  | 
  | 
Persistent execution means that after reaching end-of-file on | 
| 596 | 
  | 
  | 
its input, | 
| 597 | 
  | 
  | 
.I rtrace | 
| 598 | 
  | 
  | 
will fork a child process that will wait for another | 
| 599 | 
  | 
  | 
.I rtrace | 
| 600 | 
  | 
  | 
command with the same | 
| 601 | 
  | 
  | 
.I \-P | 
| 602 | 
  | 
  | 
option to attach to it. | 
| 603 | 
  | 
  | 
(Note that since the rest of the command line options will be those | 
| 604 | 
  | 
  | 
of the original invocation, it is not necessary to give any arguments | 
| 605 | 
  | 
  | 
besides | 
| 606 | 
  | 
  | 
.I \-P | 
| 607 | 
  | 
  | 
for subsequent calls.) | 
| 608 | 
  | 
  | 
Killing the process is achieved with the | 
| 609 | 
  | 
  | 
.I kill(1) | 
| 610 | 
  | 
  | 
command. | 
| 611 | 
  | 
  | 
(The process ID in the first line of | 
| 612 | 
  | 
  | 
.I pfile | 
| 613 | 
  | 
  | 
may be used to identify the waiting | 
| 614 | 
  | 
  | 
.I rtrace | 
| 615 | 
  | 
  | 
process.) | 
| 616 | 
  | 
  | 
This option may be used with the | 
| 617 | 
  | 
  | 
.I \-fr | 
| 618 | 
  | 
  | 
option of | 
| 619 | 
  | 
  | 
.I pinterp(1) | 
| 620 | 
  | 
  | 
to avoid the cost of starting up | 
| 621 | 
  | 
  | 
.I rtrace | 
| 622 | 
  | 
  | 
many times. | 
| 623 | 
  | 
  | 
.TP | 
| 624 | 
  | 
  | 
.BI \-PP \ pfile | 
| 625 | 
  | 
  | 
Execute in continuous-forking persistent mode, using | 
| 626 | 
  | 
  | 
.I pfile | 
| 627 | 
  | 
  | 
as the control file. | 
| 628 | 
  | 
  | 
The difference between this option and the | 
| 629 | 
  | 
  | 
.I \-P | 
| 630 | 
  | 
  | 
option described above is the creation of multiple duplicate | 
| 631 | 
  | 
  | 
processes to handle any number of attaches. | 
| 632 | 
  | 
  | 
This provides a simple and reliable mechanism of memory sharing | 
| 633 | 
  | 
  | 
on most multiprocessing platforms, since the | 
| 634 | 
  | 
  | 
.I fork(2) | 
| 635 | 
  | 
  | 
system call will share memory on a copy-on-write basis. | 
| 636 | 
  | 
  | 
.SH EXAMPLES | 
| 637 | 
  | 
  | 
To compute radiance values for the rays listed in samples.inp: | 
| 638 | 
  | 
  | 
.IP "" .2i | 
| 639 | 
greg | 
1.15 | 
rtrace \-ov scene.oct < samples.inp > radiance.out | 
| 640 | 
greg | 
1.1 | 
.PP | 
| 641 | 
  | 
  | 
To compute illuminance values at locations selected with the 't' | 
| 642 | 
  | 
  | 
command of | 
| 643 | 
  | 
  | 
.I ximage(1): | 
| 644 | 
  | 
  | 
.IP "" .2i | 
| 645 | 
greg | 
1.16 | 
ximage scene.hdr | rtrace \-h \-x 1 \-i scene.oct | rcalc \-e '$1=47.4*$1+120*$2+11.6*$3' | 
| 646 | 
greg | 
1.1 | 
.PP | 
| 647 | 
  | 
  | 
To record the object identifier corresponding to each pixel in an image: | 
| 648 | 
  | 
  | 
.IP "" .2i | 
| 649 | 
greg | 
1.16 | 
vwrays \-fd scene.hdr | rtrace \-fda `vwrays \-d scene.hdr` \-os scene.oct | 
| 650 | 
greg | 
1.1 | 
.PP | 
| 651 | 
  | 
  | 
To compute an image with an unusual view mapping: | 
| 652 | 
  | 
  | 
.IP "" .2i | 
| 653 | 
greg | 
1.17 | 
cnt 480 640 | rcalc \-e 'xr:640;yr:480' \-f unusual_view.cal | rtrace | 
| 654 | 
greg | 
1.16 | 
\-x 640 \-y 480 \-fac scene.oct > unusual.hdr | 
| 655 | 
greg | 
1.1 | 
.SH ENVIRONMENT | 
| 656 | 
  | 
  | 
RAYPATH         the directories to check for auxiliary files. | 
| 657 | 
  | 
  | 
.SH FILES | 
| 658 | 
greg | 
1.5 | 
/tmp/rtXXXXXX           common header information for picture sequence | 
| 659 | 
greg | 
1.1 | 
.SH DIAGNOSTICS | 
| 660 | 
  | 
  | 
If the program terminates from an input related error, the exit status | 
| 661 | 
  | 
  | 
will be 1. | 
| 662 | 
  | 
  | 
A system related error results in an exit status of 2. | 
| 663 | 
  | 
  | 
If the program receives a signal that is caught, it will exit with a status | 
| 664 | 
  | 
  | 
of 3. | 
| 665 | 
  | 
  | 
In each case, an error message will be printed to the standard error, or | 
| 666 | 
  | 
  | 
to the file designated by the | 
| 667 | 
  | 
  | 
.I \-e | 
| 668 | 
  | 
  | 
option. | 
| 669 | 
  | 
  | 
.SH AUTHOR | 
| 670 | 
  | 
  | 
Greg Ward | 
| 671 | 
  | 
  | 
.SH "SEE ALSO" | 
| 672 | 
  | 
  | 
getinfo(1), lookamb(1), oconv(1), pfilt(1), pinterp(1), | 
| 673 | 
greg | 
1.23 | 
pvalue(1), rpict(1), rcontrib(1), rvu(1), vwrays(1), ximage(1) |