| 100 | 
  | 
may be useful if the resulting photon map size greatly deviates from | 
| 101 | 
  | 
\fInphotons\fR with a very low average reflectance. | 
| 102 | 
  | 
 | 
| 103 | 
< | 
.IP "\fB\-api \fIxmin ymin zmin xmax ymax zmax\fR" | 
| 104 | 
< | 
Define a region of interested within which to store photons exclusively; | 
| 105 | 
< | 
photons will only be stored within the volume bounded by the given minimum | 
| 106 | 
< | 
and maximum coordinates.  Multiple instances of this option may be specified | 
| 107 | 
< | 
with cumulative effect to define compound regions of interest.  This is | 
| 108 | 
< | 
useful for constraining photons to only the relevant regions of a scene, but | 
| 109 | 
< | 
may increase the photon distribution time. | 
| 103 | 
> | 
.IP "\fB\-api \fImin_x min_y min_z max_x max_y max_z\fR" | 
| 104 | 
> | 
Define a rectangular region of interest within which to store photons | 
| 105 | 
> | 
exclusively; photons will only be stored within the volume bounded by the  | 
| 106 | 
> | 
given minimum and maximum coordinates. Multiple instances of this option may  | 
| 107 | 
> | 
be specified with cumulative effect to define compound regions of interest. | 
| 108 | 
> | 
This is useful for constraining photons to only the relevant regions of a | 
| 109 | 
> | 
scene, but may increase the photon distribution time. | 
| 110 | 
  | 
.IP | 
| 111 | 
  | 
\fBWARNING: this is an optimisation option for advanced users (an elite | 
| 112 | 
  | 
group collectively known as \fIZe Ekspertz\fB) and may yield biased results.  | 
| 113 | 
  | 
Use with caution!\fR | 
| 114 | 
  | 
 | 
| 115 | 
+ | 
.IP "\fB-apI \fIpos_x pos_y pos_z rad\fR" | 
| 116 | 
+ | 
Similar to \fB\-api\fR, but with a spherical region of interest of given | 
| 117 | 
+ | 
radius, centred at the given coordinates. | 
| 118 | 
+ | 
 | 
| 119 | 
  | 
.IP "\fB\-apm \fImaxbounce\fR" | 
| 120 | 
  | 
Synonymous with \fB\-lr\fR for backwards compatibility. May be removed in | 
| 121 | 
  | 
future releases. | 
| 122 | 
  | 
 | 
| 123 | 
  | 
.IP "\fB\-apM \fImaxprepass\fR" | 
| 124 | 
  | 
Maximum number of iterations of the distribution prepass before terminating | 
| 125 | 
< | 
if some photon maps are still empty. This option is rarely needed as a | 
| 126 | 
< | 
an aborted prepass indicates an anomaly in the geometry or an | 
| 125 | 
> | 
if some photon maps are still empty. This option is rarely needed as | 
| 126 | 
> | 
an aborted prepass may indicate an anomaly in the geometry or an | 
| 127 | 
  | 
incompatibility with the specified photon map types (see \fBNOTES\fR below). | 
| 128 | 
  | 
 | 
| 129 | 
< | 
.IP "\fB\-apo \fImod\fR" | 
| 129 | 
> | 
.IP "\fB\-apo\fR[\fB+\fR|\fB-\fR|\fB0\fR] \fImod\fR" | 
| 130 | 
  | 
Specifies a modifier \fImod\fR to act as a \fIphoton port\fR. All | 
| 131 | 
  | 
objects using this modifier will emit photons directly in lieu of any | 
| 132 | 
  | 
light sources defined with the \fIsource\fR material. This greatly | 
| 133 | 
  | 
accelerates photon distribution in scenes where photons have to enter a | 
| 134 | 
  | 
space which separates them from the emitting light source via an | 
| 135 | 
< | 
opening, or port.  | 
| 135 | 
> | 
aperture (e.g. fenestration, skylight) acting as a port.  | 
| 136 | 
  | 
.IP | 
| 137 | 
< | 
A typical application is daylight simulation, where a fenestration acts as | 
| 138 | 
< | 
port to admit photons into an interior after emission from an external light | 
| 139 | 
< | 
source.  Multiple instances of this option may be specified. | 
| 137 | 
> | 
In a typical daylight simulation scenario, a fenestration acts as a port to | 
| 138 | 
> | 
admit photons into an interior after emission from sky and solar sources.  | 
| 139 | 
> | 
Multiple instances of this option may be specified. | 
| 140 | 
  | 
.IP | 
| 141 | 
< | 
Note that port objects must be defined with their surface normals | 
| 142 | 
< | 
pointing \fIinside\fR as per \fImkillum\fR convention. | 
| 143 | 
< | 
 | 
| 141 | 
> | 
By default, ports are oriented to emit in the halfspace defined | 
| 142 | 
> | 
by their associated surface normal. This can be overridden by | 
| 143 | 
> | 
specifying a trivalent suffix as follows: | 
| 144 | 
> | 
.RS | 
| 145 | 
> | 
.IP \fB+\fR:  | 
| 146 | 
> | 
Forward emission; this is equivalent to the abovementioned default behaviour. | 
| 147 | 
> | 
.IP \fB-\fR:  | 
| 148 | 
> | 
Backward emission; the port is reversed and photons are emitted into the  | 
| 149 | 
> | 
halfspace facing away from the surface normal. | 
| 150 | 
> | 
.IP \fB0\fR:  | 
| 151 | 
> | 
Bidirectional emission; photons are emitted from both sides of the port. | 
| 152 | 
> | 
.RE | 
| 153 | 
> | 
.IP | 
| 154 | 
> | 
Some typical situations that call for a reversed photon port include, for | 
| 155 | 
> | 
example: | 
| 156 | 
> | 
.RS | 
| 157 | 
> | 
.IP (a) | 
| 158 | 
> | 
Using fenestrations as ports that were (for whatever | 
| 159 | 
> | 
reason) defined with outward facing normals, | 
| 160 | 
> | 
.IP (b) | 
| 161 | 
> | 
Using a \fBmist\fR  | 
| 162 | 
> | 
primitive as a port, since this requires outward facing normals in order to  | 
| 163 | 
> | 
register the photons as having entered the volume, | 
| 164 | 
> | 
.IP (c) | 
| 165 | 
> | 
Reorienting a port associated with a \fBbsdf\fR modifier, since inverting | 
| 166 | 
> | 
its normal would also reorient the BSDF and alter its behaviour. | 
| 167 | 
> | 
.RE | 
| 168 | 
> | 
.IP | 
| 169 | 
> | 
Other oddball scenarios are conceivable. If in doubt, specify a | 
| 170 | 
> | 
bidirectional port orientation for a slight performance penalty, | 
| 171 | 
> | 
as photon emission is attempted from both sides. For well-defined | 
| 172 | 
> | 
port geometry with inward-facing normals, just use the default; | 
| 173 | 
> | 
doan' mess with da normalz. | 
| 174 | 
> | 
.IP | 
| 175 | 
> | 
Photon port geometry is discretised according to the  | 
| 176 | 
> | 
\fB\-dp\fR and \fB\-ds\fR options. These parameters aid in resolving | 
| 177 | 
> | 
spatially and directionally varying illuminance received by the port | 
| 178 | 
> | 
from distant light sources, e.g due to partial occlusion | 
| 179 | 
> | 
or when using climate-based sky models. | 
| 180 | 
> | 
    | 
| 181 | 
  | 
.IP "\fB\-apO \fImodfile\fR" | 
| 182 | 
  | 
Read photon port modifiers from the file \fImodfile\fR as a more convenient | 
| 183 | 
  | 
alternative to multiple instances of \fB\-apo\fR. | 
| 187 | 
  | 
\fB\-app\fR option. | 
| 188 | 
  | 
 | 
| 189 | 
  | 
.IP "\fB\-apr \fIseed\fR" | 
| 190 | 
< | 
Seed for the random number generator. This is necessary for generating  | 
| 191 | 
< | 
different photon distributions for the same octree and photon map size. | 
| 190 | 
> | 
Seed for the random number generator. This is useful for generating  | 
| 191 | 
> | 
different photon distributions for the same octree and photon map size, | 
| 192 | 
> | 
notably in progressive applications. | 
| 193 | 
  | 
 | 
| 194 | 
  | 
.IP "\fB\-aps \fImod\fR" | 
| 195 | 
  | 
Specifies a modifier \fImod\fR defined as \fIantimatter\fR material to act | 
| 210 | 
  | 
Read virtual receiver surface modifiers from the file \fImodfile\fR as a more | 
| 211 | 
  | 
convenient alternative to multiple instances of \fB\-aps\fR. | 
| 212 | 
  | 
 | 
| 213 | 
+ | 
.IP "\fB\-ae \fImod\fR" | 
| 214 | 
+ | 
Add \fImod\fR to the ambient exclude list, so that it will be ignored by the | 
| 215 | 
+ | 
photon map.  Objects having \fImod\fR as their modifier will not have | 
| 216 | 
+ | 
photons deposited on them.  Multiple modifiers may be given, each as separate | 
| 217 | 
+ | 
instances of this option. | 
| 218 | 
+ | 
.IP | 
| 219 | 
+ | 
\fBWARNING: this is an optimisation option for advanced users and may yield | 
| 220 | 
+ | 
biased results. It may also significantly increase photon distribution | 
| 221 | 
+ | 
times. Use with caution!\fR | 
| 222 | 
+ | 
 | 
| 223 | 
+ | 
.IP "\fB\-aE \fIfile\fR" | 
| 224 | 
+ | 
Same as \fI-ae\fR, except modifiers to be exluded are read from \fIfile\fR, | 
| 225 | 
+ | 
separated by whitespace.  The RAYPATH environment variable determines which | 
| 226 | 
+ | 
directories are searched for this file. | 
| 227 | 
+ | 
 | 
| 228 | 
+ | 
.IP "\fB\-ai \fImod\fR" | 
| 229 | 
+ | 
Add \fImod\fR to the ambient include list, so that it will contribute to the | 
| 230 | 
+ | 
photon map. Only objects having \fImod\fR as their modifier will have | 
| 231 | 
+ | 
photons deposited on them. Multiple modifiers may be given, each as separate | 
| 232 | 
+ | 
instances of this option. Note that the ambient include and exclude options | 
| 233 | 
+ | 
are mutually exclusive.  | 
| 234 | 
+ | 
.IP | 
| 235 | 
+ | 
\fBWARNING: this is an optimisation option for advanced users and may yield | 
| 236 | 
+ | 
biased results. It may also significantly increase photon distribution | 
| 237 | 
+ | 
times. Use with caution!\fR | 
| 238 | 
+ | 
 | 
| 239 | 
+ | 
.IP "\fB\-aI \fIfile\fR" | 
| 240 | 
+ | 
Same as \fI-ai\fR, except modifiers to be included are read from \fIfile\fR, | 
| 241 | 
+ | 
separated by whitespace. The RAYPATH environment variable determines which | 
| 242 | 
+ | 
directories are searched for this file. | 
| 243 | 
+ | 
 | 
| 244 | 
  | 
.IP "\fB\-bv\fR[\fB+\fR|\fB-\fR]" | 
| 245 | 
  | 
Toggles backface visibility; enabling this causes photons to be stored and | 
| 246 | 
  | 
possibly scattered if they strike the back of a surface, otherwise they | 
| 247 | 
  | 
are unconditionally absorbed and discarded. | 
| 248 | 
  | 
 | 
| 249 | 
  | 
.IP "\fB\-dp \fIsampleres\fR" | 
| 250 | 
< | 
Resolution for sampling the spatial emission distribution of a modified | 
| 251 | 
< | 
light source (e.g. via \fIbrightfunc\fR), in samples per steradian. This | 
| 252 | 
< | 
is required for numerically integrating the flux emitted by the light | 
| 253 | 
< | 
source and for constructing a probability density function for photon | 
| 254 | 
< | 
emission. The accuracy of photon emission from modified sources | 
| 255 | 
< | 
therefore depends on this parameter. This parameter may need increasing | 
| 250 | 
> | 
Angular resolution for sampling the spatial emission distribution of a  | 
| 251 | 
> | 
modified light source or photon port (e.g. via \fIbrightfunc\fR), in samples | 
| 252 | 
> | 
per steradian.  | 
| 253 | 
> | 
This is required to numerically integrate the flux emitted by the light | 
| 254 | 
> | 
source and construct a probability density function for photon emission.  | 
| 255 | 
> | 
The accuracy of photon emission from a modified source or port | 
| 256 | 
> | 
therefore depends on this parameter. The resolution may need to be increased | 
| 257 | 
  | 
with complex emission distributions in combination with caustics. | 
| 258 | 
  | 
 | 
| 259 | 
  | 
.IP "\fB\-ds \fIpartsize\fR" | 
| 260 | 
< | 
Light source partition size ratio; a light source object is spatially  | 
| 261 | 
< | 
partitioned to distribute the photon emission over its surface. This | 
| 262 | 
< | 
parameter specifies the ratio of the size (per dimension) of each | 
| 263 | 
< | 
partition to the scene cube, and may need increasing for modified light  | 
| 264 | 
< | 
sources (e.g. via \fIbrightfunc\fR) with high spatial variation. | 
| 260 | 
> | 
Light source partition size ratio; a local light source object (or photon  | 
| 261 | 
> | 
port in case of a distant source) is spatially partitioned to distribute the | 
| 262 | 
> | 
photon emission over its surface. This parameter specifies the ratio of the  | 
| 263 | 
> | 
size (per dimension) of each partition to the scene cube, and may need  | 
| 264 | 
> | 
to be reduced for modified light sources (e.g. via \fIbrightfunc\fR) with  | 
| 265 | 
> | 
high spatial variance, or for partially occluded photon ports. | 
| 266 | 
  | 
 | 
| 267 | 
  | 
.IP "\fB\-e \fIfile\fR" | 
| 268 | 
  | 
Redirect diagnostics and progress reports to \fIfile\fR instead of the | 
| 310 | 
  | 
 | 
| 311 | 
  | 
.IP "\fB\-n \fInproc\fR" | 
| 312 | 
  | 
Use \fInproc\fR processes for parallel photon distribution. There is no | 
| 313 | 
< | 
benefit in specifying more than the number of physical CPU cores available. | 
| 314 | 
< | 
This option is currently not available on Windows. | 
| 313 | 
> | 
benefit in specifying more than the number of physical CPU cores available | 
| 314 | 
> | 
(so doan' even try). This option is currently not available on Windows --  | 
| 315 | 
> | 
so there, tuff luck. | 
| 316 | 
  | 
 | 
| 317 | 
  | 
.IP "\fB\-t \fIinterval\fR" | 
| 318 | 
  | 
Output a progress report every \fIinterval\fR seconds. This includes  | 
| 350 | 
  | 
\fB\-apM\fR option. | 
| 351 | 
  | 
 | 
| 352 | 
  | 
.SS Material Support | 
| 353 | 
< | 
The \fIplasfunc\fR, \fImetfunc\fR, \fItransfunc\fR, \fIbrtdfunc\fR, | 
| 354 | 
< | 
\fIplasdata\fR, \fImetdata\fR and \fItransdata\fR materials are not | 
| 355 | 
< | 
supported by the photon mapping extension. Use the newer \fIbsdf\fR material | 
| 353 | 
> | 
Not all materials are fully supported by the photon map extension.  The | 
| 354 | 
> | 
\fIplasfunc\fR, \fImetfunc\fR, \fItransfunc\fR, \fIplasdata\fR, | 
| 355 | 
> | 
\fImetdata\fR and \fItransdata\fR materials currently only scatter photons | 
| 356 | 
> | 
diffusely, and will not produce caustics.  The \fIbrtdfunc\fR material only | 
| 357 | 
> | 
produces caustics via ideal (mirror) specular reflection and transmission.  | 
| 358 | 
> | 
For more realistic scattering behaviour, use the newer \fIbsdf\fR material | 
| 359 | 
  | 
instead. | 
| 360 | 
  | 
.PP | 
| 361 | 
  | 
Virtual light sources (normally enabled with the \fImirror\fR material) are | 
| 384 | 
  | 
.PP | 
| 385 | 
  | 
Generate 1 million global photons by emitting them from external light  | 
| 386 | 
  | 
sources of type \fIsource\fR into a reference room via a fenestration  | 
| 387 | 
< | 
with modifier \fIglazingMat\fR: | 
| 387 | 
> | 
with modifier \fIglazingMat\fR acting as photon port, with inward-facing  | 
| 388 | 
> | 
normal: | 
| 389 | 
  | 
.IP | 
| 390 | 
  | 
mkpmap \-apg refRoom.gpm 1m \-apo glazingMat refRoom.oct | 
| 391 | 
  | 
.PP | 
| 392 | 
< | 
Generate a contribution photon map containing 200000 photons suitable for  | 
| 393 | 
< | 
obtaining light source contributions with \fIrcontrib(1)\fR: | 
| 392 | 
> | 
Generate a contribution photon map containing 10 million photons to bin  | 
| 393 | 
> | 
light source contributions with \fIrcontrib(1)\fR: | 
| 394 | 
  | 
.IP | 
| 395 | 
< | 
mkpmap \-apC bonzo-contrib.gpm 200k bonzo.oct | 
| 395 | 
> | 
mkpmap \-apC bonzo-contrib.gpm 10m bonzo.oct | 
| 396 | 
  | 
 | 
| 397 | 
  | 
.SH BUGS | 
| 398 | 
  | 
The focus of a spotlight source, as defined by the length of its direction | 
| 406 | 
  | 
Roland Schregle (roland.schregle@{hslu.ch,gmail.com}) | 
| 407 | 
  | 
 | 
| 408 | 
  | 
.SH COPYRIGHT | 
| 409 | 
< | 
(c) Fraunhofer Institute for Solar Energy Systems, Lucerne University of  | 
| 410 | 
< | 
Applied Sciences and Arts. | 
| 409 | 
> | 
(c) Fraunhofer Institute for Solar Energy Systems, | 
| 410 | 
> | 
.br | 
| 411 | 
> | 
(c) Lucerne University of Applied Sciences and Arts, | 
| 412 | 
> | 
.br | 
| 413 | 
> | 
(c) Tokyo University of Science. | 
| 414 | 
  | 
 | 
| 415 | 
< | 
.SH ACKNOWLEDGEMENT | 
| 416 | 
< | 
Development of the RADIANCE photon mapping extension was sponsored by the  | 
| 334 | 
< | 
German Research Foundation (DFG) and the Swiss National Science Foundation  | 
| 335 | 
< | 
(SNF).  | 
| 415 | 
> | 
.SH ACKNOWLEDGEMENTS | 
| 416 | 
> | 
Development of the RADIANCE photon mapping extension was supported by: | 
| 417 | 
  | 
 | 
| 418 | 
+ | 
.RS | 
| 419 | 
+ | 
\fIFraunhofer Institute for Solar Energy Systems\fR funded by | 
| 420 | 
+ | 
the German Research Foundation (\fIDFG LU-204/10-2\fR, "Fassadenintegrierte  | 
| 421 | 
+ | 
Regelsysteme (FARESYS)"),  | 
| 422 | 
+ | 
 | 
| 423 | 
+ | 
\fILucerne University of Applied Sciences and Arts\fR funded by | 
| 424 | 
+ | 
the Swiss National Science Foundation (\fISNSF 147053\fR, "Daylight redirecting components"), | 
| 425 | 
+ | 
 | 
| 426 | 
+ | 
\fITokyo University of Science\fR funded by the JSPS Grants-in-Aid for Scientific  | 
| 427 | 
+ | 
Research Programme (\fIKAKENHI JP19KK0115\fR, "Three-dimensional light flow").  | 
| 428 | 
+ | 
.RE | 
| 429 | 
+ | 
 | 
| 430 | 
+ | 
Many thanks also to the many individuals who tested the code and provided | 
| 431 | 
+ | 
valuable feedback. Special greetz to Don Gregorio, PAB and Capt.\~B! | 
| 432 | 
+ | 
 | 
| 433 | 
  | 
.SH "SEE ALSO" | 
| 434 | 
< | 
rpict(1), rtrace(1), rvu(1), rcontrib(1), \fIThe RADIANCE Photon Map | 
| 435 | 
< | 
Manual\fR, \fIDevelopment and Integration of the RADIANCE Photon Map | 
| 436 | 
< | 
Extension: Technical Report\fR | 
| 434 | 
> | 
rpict(1), rtrace(1), rvu(1), rcontrib(1),  | 
| 435 | 
> | 
.br | 
| 436 | 
> | 
\fIThe RADIANCE Photon Map Manual\fR, | 
| 437 | 
> | 
.br | 
| 438 | 
> | 
\fIDevelopment and Integration of the RADIANCE Photon Map Extension:  | 
| 439 | 
> | 
Technical Report\fR, | 
| 440 | 
> | 
.br | 
| 441 | 
> | 
\fIThe RADIANCE Out-of-Core Photon Map: Technical Report\fR, | 
| 442 | 
> | 
.br | 
| 443 | 
> | 
\fIBonzo Daylighting Tool a.k.a. EvilDRC [TM]\fR | 
| 444 | 
> | 
 |