ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/doc/man/man1/mkpmap.1
Revision: 1.15
Committed: Tue Mar 23 21:42:47 2021 UTC (4 years, 1 month ago) by rschregle
Branch: MAIN
Changes since 1.14: +3 -3 lines
Log Message:
docs(mkpmap): increased-->reduced in description of -ds.

File Contents

# Content
1 .\" RCSid "$Id: mkpmap.1,v 1.14 2021/03/23 21:31:56 rschregle Exp $"
2 .TH MKPMAP 1 "$Date: 2021/03/23 21:31:56 $ $Revision: 1.14 $" RADIANCE
3
4 .SH NAME
5 mkpmap - generate RADIANCE photon map
6
7 .SH SYNOPSIS
8 mkpmap \fB\-apg\fR|\fB\-apc\fR|\fB\-apv\fR|\fB\-apd\fR|\fB\-app\fR|\fB\-apC\fR
9 \fIfile nphotons\fR [\fIbwidth\fR] ...
10 [options] \fIoctree\fR
11
12 .SH DESCRIPTION
13 \fIMkpmap\fR takes a RADIANCE scene description as an octree and
14 performs Monte Carlo forward path tracing from the light sources,
15 depositing indirect ray hitpoints along with their energy (flux) as
16 "photons". The resulting localised energy distribution represents a
17 global illumination solution which is written to a file for subsequent
18 evaluation by \fIrpict(1), rtrace(1)\fR and \fIrvu(1)\fR in a backward
19 raytracing pass. The photon map(s) can be reused for multiple viewpoints
20 and sensor locations as long as the geometry remains unchanged.
21
22 .SH OPTIONS
23 \fIMkpmap\fR can generate different types of photon maps depending on
24 the materials present in the scene. In most cases, these can be
25 specified independently or in combination on the command line. If
26 multiple photon maps of the same type are specified, the last instance
27 takes precedence.
28
29 .IP "\fB\-apg \fIfile nphotons\fR"
30 Generate a global photon map containing approximately \fInphotons\fR
31 photons, and output to \fIfile\fR. This accounts for all
32 indirect illumination, from both specular and diffuse scattering, on
33 surfaces with a diffuse component. This is the most general type of
34 photon map and replaces the ambient calculation in \fIrpict(1),
35 rtrace(1)\fR and \fIrvu(1)\fR.
36
37 .IP "\fB\-apc \fIfile nphotons\fR"
38 Generate a separate caustic photon map containing approximately
39 \fInphotons\fR photons, and output to file \fIfile\fR. This is a
40 subset of the global photon map intended for direct visualisation at
41 primary rays, This accounts for all indirect illumination on diffuse
42 surfaces from specular scattering, which usually exhibits a large
43 gradient and requires a higher resolution than the global photon map,
44 typically containing the tenfold number of photons.
45
46 .IP "\fB\-apv \fIfile nphotons\fR"
47 Generate a volume photon map containing approximately \fInphotons\fR
48 photons, and output to file \fIfile\fR. These account for indirect
49 inscattering in participating media such as \fBmist\fR and complement
50 the direct inscattering computed by \fIrpict(1), rtrace(1)\fR and
51 \fIrvu(1)\fR. See also the \fB\-me\fR, \fB\-ma\fR and \fB\-mg\fR options
52 below.
53
54 .IP "\fB\-apd \fIfile nphotons\fR"
55 Generate a direct photon map containing approximately \fInphotons\fR
56 photons, and output to file \fIfile\fR. This only accounts for direct
57 illumination and is intended for debugging and validation of photon emission
58 from the light sources, as the quality is too low for actual rendering.
59
60 .IP "\fB\-apC \fIfile nphotons\fR"
61 Generate a contribution photon map containing approximately
62 \fInphotons\fR photons, and output to file \fIfile\fR. This may then be
63 used by \fIrcontrib(1)\fR to compute light source contributions. When used
64 with \fIrtrace(1)\fR or \fIrpict(1)\fR, contribution photon maps behave as
65 regular global photon maps and yield cumulative contributions from all light
66 sources.
67 .IP
68 With this option, \fImkpmap\fR uses a modified photon distribution
69 algorithm that ensures all light sources contribute approximately the
70 same number of photons. Each photon indexes a primary hitpoint, incident
71 direction, and emitting light source which can be used to bin
72 contributions per light source and direction.
73 .IP
74 \fIMkpmap\fR cannot generate a contribution photon map in combination with
75 others in a single run, as it uses a different distribution algorithm. Other
76 photon maps specified on the command line will be ignored.
77
78 .IP "\fB\-app \fIfile nphotons bwidth\fR"
79 Generate a precomputed global photon map containing a fraction of
80 \fInphotons\fR photons (specified with the \fB\-apP\fR option, see
81 below), and output to file \fIfile\fR. This is a special case of the
82 global photon map where the irradiance is evaluated for a fraction of
83 the photon positions using \fIbwidth\fR nearest photons, and stored as
84 photon flux; the remaining photons are discarded as their contributions
85 have been accounted for.
86 .IP
87 This obviates the explicit irradiance evaluation by \fIrpict(1),
88 rtrace(1)\fR and \fIrvu(1)\fR, thus providing a speedup at the expense of
89 accuracy. The resulting error is tolerable if the indirect illumination has
90 a low gradient, as is usually the case with diffuse illumination.
91
92 .IP "\fB\-apD \fIpredistrib\fR"
93 Photon predistribution factor; this is the fraction of \fInphotons\fR
94 which are emitted in a distribution prepass in order to estimate the
95 remaining number of photons to emit in the main pass to approximately
96 yield a photon map of size \fInphotons\fR.
97 .IP
98 Setting this too high may yield more than \fInphotons\fR in the initial pass
99 with highly reflective geometry. Note that this value may exceed 1, which
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 interest 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.
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\-apm \fImaxbounce\fR"
116 Synonymous with \fB\-lr\fR for backwards compatibility. May be removed in
117 future releases.
118
119 .IP "\fB\-apM \fImaxprepass\fR"
120 Maximum number of iterations of the distribution prepass before terminating
121 if some photon maps are still empty. This option is rarely needed as
122 an aborted prepass may indicate an anomaly in the geometry or an
123 incompatibility with the specified photon map types (see \fBNOTES\fR below).
124
125 .IP "\fB\-apo\fR[\fB+\fR|\fB-\fR|\fB0\fR] \fImod\fR"
126 Specifies a modifier \fImod\fR to act as a \fIphoton port\fR. All
127 objects using this modifier will emit photons directly in lieu of any
128 light sources defined with the \fIsource\fR material. This greatly
129 accelerates photon distribution in scenes where photons have to enter a
130 space which separates them from the emitting light source via an
131 aperture (e.g. fenestration, skylight) acting as a port.
132 .IP
133 In a typical daylight simulation scenario, a fenestration acts as a port to
134 admit photons into an interior after emission from sky and solar sources.
135 Multiple instances of this option may be specified.
136 .IP
137 By default, ports are oriented to emit in the halfspace defined
138 by their associated surface normal. This can be overridden by
139 specifying a trivalent suffix as follows:
140 .RS
141 .IP \fB+\fR:
142 Forward emission; this is equivalent to the abovementioned default behaviour.
143 .IP \fB-\fR:
144 Backward emission; the port is reversed and photons are emitted into the
145 halfspace facing away from the surface normal.
146 .IP \fB0\fR:
147 Bidirectional emission; photons are emitted from both sides of the port.
148 .RE
149 .IP
150 Some typical situations that call for a reversed photon port include, for
151 example:
152 .RS
153 .IP (a)
154 Using fenestrations as ports that were (for whatever
155 reason) defined with outward facing normals,
156 .IP (b)
157 Using a \fBmist\fR
158 primitive as a port, since this requires outward facing normals in order to
159 register the photons as having entered the volume,
160 .IP (c)
161 Reorienting a port associated with a \fBbsdf\fR modifier, since inverting
162 its normal would also reorient the BSDF and alter its behaviour.
163 .RE
164 .IP
165 Other oddball scenarios are conceivable. If in doubt, specify a
166 bidirectional port orientation for a slight performance penalty,
167 as photon emission is attempted from both sides. For well-defined
168 port geometry with inward-facing normals, just use the default;
169 doan' mess with da normalz.
170 .IP
171 Photon port geometry is discretised according to the
172 \fB\-dp\fR and \fB\-ds\fR options. These parameters aid in resolving
173 spatially and directionally varying illuminance received by the port
174 from distant light sources, e.g due to partial occlusion
175 or when using climate-based sky models.
176
177 .IP "\fB\-apO \fImodfile\fR"
178 Read photon port modifiers from the file \fImodfile\fR as a more convenient
179 alternative to multiple instances of \fB\-apo\fR.
180
181 .IP "\fB\-apP \fIprecomp\fR"
182 Fraction of global photons to precompute in the range ]0,1] when using the
183 \fB\-app\fR option.
184
185 .IP "\fB\-apr \fIseed\fR"
186 Seed for the random number generator. This is useful for generating
187 different photon distributions for the same octree and photon map size,
188 notably in progressive applications.
189
190 .IP "\fB\-aps \fImod\fR"
191 Specifies a modifier \fImod\fR defined as \fIantimatter\fR material to act
192 as a virtual (i.e. invisible) receiver surface. Photons will be deposited on
193 all surfaces using this modifier, just like regular materials, but will then
194 be transferred through the surface without undergoing scattering; the
195 surface therefore does not affect the light transport and simply acts as an
196 invisible photon receiver. This is useful when photon irradiance is to be
197 evaluated at points which do not lie on regular geometry, e.g. at workplane
198 height with \fIrtrace\fR's \fB-I\fR option. Without this workaround,
199 photons would be collected from parallel but distant planes, leading to
200 underestimation. Note that photons are only deposited when incident from
201 the front side of the sensor surface, i.e. when entering the
202 \fIantimatter\fR, thus the surface normal is relevant. \fIMkpmap\fR reports
203 an error if the specified modifier is not an \fIantimatter\fR material.
204
205 .IP "\fB\-apS \fImodfile\fR"
206 Read virtual receiver surface modifiers from the file \fImodfile\fR as a more
207 convenient alternative to multiple instances of \fB\-aps\fR.
208
209 .IP "\fB\-ae \fImod\fR"
210 Add \fImod\fR to the ambient exclude list, so that it will be ignored by the
211 photon map. Objects having \fImod\fR as their modifier will not have
212 photons deposited on them. Multiple modifiers may be given, each as separate
213 instances of this option.
214 .IP
215 \fBWARNING: this is an optimisation option for advanced users and may yield
216 biased results. It may also significantly increase photon distribution
217 times. Use with caution!\fR
218
219 .IP "\fB\-aE \fIfile\fR"
220 Same as \fI-ae\fR, except modifiers to be exluded are read from \fIfile\fR,
221 separated by whitespace. The RAYPATH environment variable determines which
222 directories are searched for this file.
223
224 .IP "\fB\-ai \fImod\fR"
225 Add \fImod\fR to the ambient include list, so that it will contribute to the
226 photon map. Only objects having \fImod\fR as their modifier will have
227 photons deposited on them. Multiple modifiers may be given, each as separate
228 instances of this option. Note that the ambient include and exclude options
229 are mutually exclusive.
230 .IP
231 \fBWARNING: this is an optimisation option for advanced users and may yield
232 biased results. It may also significantly increase photon distribution
233 times. Use with caution!\fR
234
235 .IP "\fB\-aI \fIfile\fR"
236 Same as \fI-ai\fR, except modifiers to be included are read from \fIfile\fR,
237 separated by whitespace. The RAYPATH environment variable determines which
238 directories are searched for this file.
239
240 .IP "\fB\-bv\fR[\fB+\fR|\fB-\fR]"
241 Toggles backface visibility; enabling this causes photons to be stored and
242 possibly scattered if they strike the back of a surface, otherwise they
243 are unconditionally absorbed and discarded.
244
245 .IP "\fB\-dp \fIsampleres\fR"
246 Angular resolution for sampling the spatial emission distribution of a
247 modified light source or photon port (e.g. via \fIbrightfunc\fR), in samples
248 per steradian.
249 This is required to numerically integrate the flux emitted by the light
250 source and construct a probability density function for photon emission.
251 The accuracy of photon emission from a modified source or port
252 therefore depends on this parameter. The resolution may need to be increased
253 with complex emission distributions in combination with caustics.
254
255 .IP "\fB\-ds \fIpartsize\fR"
256 Light source partition size ratio; a local light source object (or photon
257 port in case of a distant source) is spatially partitioned to distribute the
258 photon emission over its surface. This parameter specifies the ratio of the
259 size (per dimension) of each partition to the scene cube, and may need
260 to be reduced for modified light sources (e.g. via \fIbrightfunc\fR) with
261 high spatial variance, or for partially occluded photon ports.
262
263 .IP "\fB\-e \fIfile\fR"
264 Redirect diagnostics and progress reports to \fIfile\fR instead of the
265 console.
266
267 .IP "\fB\-fo\fR[\fB+\fR|\fB-\fR]"
268 Toggles overwriting of output files. By default, \fImkpmap\fR will not
269 overwrite an already existing photon map file. This is to prevent
270 inadvertently destroying the results of potentially lengthy photon
271 mapping runs.
272
273 .IP "\fB\-ld \fImaxdist\fR"
274 Limit cumulative distance travelled by a photon along its path to
275 \fImaxdist\fR. Photon hits within this distance will be stored, and the
276 photon is terminated once its path length exceeds this limit. This is
277 useful for setting radial regions of interest around emitting/reflecting
278 geometry, but may increase the photon distribution time.
279 .IP
280 \fBWARNING: this is an optimisation option for advanced users (an elite
281 group collectively known as \fIZe Ekspertz\fB) and may yield biased results.
282 Use with caution!\fR
283
284 .IP "\fB\-lr \fImaxbounce\fR"
285 Limit number of bounces (scattering events) along a photon path to
286 \fImaxbounce\fR before being considered "runaway" and terminated. Photons
287 paths are normally terminated via \fIRussian Roulette\fR, depending on their
288 albedo. With unrealistically high albedos, this is not guaranteed, and this
289 option imposes a hard limit to avoid an infinite loop.
290 .IP
291 \fBWARNING: this is an optimisation option for advanced users (an elite
292 group collectively known as \fIZe Ekspertz\fB) and may yield biased results.
293 Use with caution!\fR
294
295 .IP "\fB\-ma \fIralb galb balb\fR"
296 Set the global scattering albedo for participating media in conjunction
297 with the \fB\-apv\fR option. See \fIrpict(1)\fR for details.
298
299 .IP "\fB\-me \fIrext gext bext\fR"
300 Set the global extinction coefficient for participating media in conjunction
301 with the \fB\-apv\fR option. See \fIrpict(1)\fR for details.
302
303 .IP "\fB\-mg \fIgecc\fR"
304 Set the global scattering eccentricity for participating media in conjunction
305 with the \fB\-apv\fR option. See \fIrpict(1)\fR for details.
306
307 .IP "\fB\-n \fInproc\fR"
308 Use \fInproc\fR processes for parallel photon distribution. There is no
309 benefit in specifying more than the number of physical CPU cores available
310 (so doan' even try). This option is currently not available on Windows --
311 so there, tuff luck.
312
313 .IP "\fB\-t \fIinterval\fR"
314 Output a progress report every \fIinterval\fR seconds. This includes
315 statistics about the currently emitting light source (including number of
316 partitions), the total number of photons emitted, the number of each type
317 stored, the percentage of the completed pass (pre or main), and the elapsed
318 time.
319
320 .SH NOTES
321
322 .SS Parametrisation
323 \fIMkpmap\fR recognises multiplier suffixes (k = 1000, m = 1000000) to
324 facilitate the specification of \fInphotons\fR, both in upper and lower
325 case.
326 .PP
327
328 .SS Distribution Algorithm
329 The photon distribution algorithm estimates the number of required
330 photons to emit to arrive at the specified target count \fInphotons\fR
331 per photon map using a distribution prepass followed by a main pass.
332 As a result, \fImkpmap\fR generates the \fBapproximate\fR number of photons
333 specified, which can vary by up to 10% for typical scenes, but can be
334 higher for scenes with unusually high or low reflectance. In this case,
335 the predistribution factor \fB\-apD\fR should be increased for scenes
336 with low reflectance, and reduced for those with high reflectance.
337 .PP
338 There are situations which may prevent certain (or any)
339 photon types from being generated, depending on the light source and material
340 configuration. This typically occurs when attempting to generate a caustic
341 photon map without specular materials present in the scene, or a volume
342 photon map without participating media. Ill-configured light sources may also
343 prevent indirect rays from reaching a surface, and thus no photons being
344 deposited. In these cases, \fImkpmap\fR will make a number of distribution
345 attempts before terminating with an error. This can be adjusted with the
346 \fB\-apM\fR option.
347
348 .SS Material Support
349 Not all materials are fully supported by the photon map extension. The
350 \fIplasfunc\fR, \fImetfunc\fR, \fItransfunc\fR, \fIplasdata\fR,
351 \fImetdata\fR and \fItransdata\fR materials currently only scatter photons
352 diffusely, and will not produce caustics. The \fIbrtdfunc\fR material only
353 produces caustics via ideal (mirror) specular reflection and transmission.
354 For more realistic scattering behaviour, use the newer \fIbsdf\fR material
355 instead.
356 .PP
357 Virtual light sources (normally enabled with the \fImirror\fR material) are
358 disabled with the photon map, as the resulting caustics are already accounted
359 for.
360
361 .SS Virtual Receiver Surfaces
362 Since photons are surface bound, the density estimate is only asymptotically
363 correct when performed at points which lie on the scene geometry. The
364 irradiance is underestimated for arbitrarily placed points when photons are
365 collected from distant surfaces. \fIMkpmap\fR offers a workaround with a
366 virtual receiver surface using the \fIantimatter\fR material; see the \fB-aps\fR
367 and \fB-apS\fR options for details.
368
369 .SH EXAMPLES
370 The following command generates a global photon map \fIbonzo.gpm\fR and a
371 caustic photon map \fIbonzo.cpm\fR containing approximately 10000 and 100000
372 photons, respectively, with progress report every 5 seconds:
373 .IP
374 mkpmap \-apg bonzo.gpm 10k \-apc bonzo.cpm 100k -t 5 bonzo.oct
375 .PP
376 Generate a global photon map containing 80000 photons, then precompute the
377 diffuse irradiance for 1/4 of these with a bandwidth of 40 photons:
378 .IP
379 mkpmap \-app bonzo-precomp.gpm 80k 40 \-apP 0.25 bonzo.oct
380 .PP
381 Generate 1 million global photons by emitting them from external light
382 sources of type \fIsource\fR into a reference room via a fenestration
383 with modifier \fIglazingMat\fR acting as photon port, with inward-facing
384 normal:
385 .IP
386 mkpmap \-apg refRoom.gpm 1m \-apo glazingMat refRoom.oct
387 .PP
388 Generate a contribution photon map containing 10 million photons to bin
389 light source contributions with \fIrcontrib(1)\fR:
390 .IP
391 mkpmap \-apC bonzo-contrib.gpm 10m bonzo.oct
392
393 .SH BUGS
394 The focus of a spotlight source, as defined by the length of its direction
395 vector, is ignored by the photon map; photons are unconditionally emitted
396 from the light source surface, which can lead to deviations from standard
397 RADIANCE.
398 .PP
399 Light sources simply absorb incoming photons.
400
401 .SH AUTHOR
402 Roland Schregle (roland.schregle@{hslu.ch,gmail.com})
403
404 .SH COPYRIGHT
405 (c) Fraunhofer Institute for Solar Energy Systems,
406 .br
407 (c) Lucerne University of Applied Sciences and Arts,
408 .br
409 (c) Tokyo University of Science.
410
411 .SH ACKNOWLEDGEMENTS
412 Development of the RADIANCE photon mapping extension was supported by:
413
414 .RS
415 \fIFraunhofer Institute for Solar Energy Systems\fR funded by
416 the German Research Foundation (\fIDFG LU-204/10-2\fR, "Fassadenintegrierte
417 Regelsysteme (FARESYS)"),
418
419 \fILucerne University of Applied Sciences and Arts\fR funded by
420 the Swiss National Science Foundation (\fISNSF 147053\fR, "Daylight redirecting components"),
421
422 \fITokyo University of Science\fR funded by the JSPS Grants-in-Aid for Scientific
423 Research Programme (\fIKAKENHI JP19KK0115\fR, "Three-dimensional light flow").
424 .RE
425
426 Many thanks also to the many individuals who tested the code and provided
427 valuable feedback. Special greetz to Don Gregorio, PAB and Capt.\~B!
428
429 .SH "SEE ALSO"
430 rpict(1), rtrace(1), rvu(1), rcontrib(1),
431 .br
432 \fIThe RADIANCE Photon Map Manual\fR,
433 .br
434 \fIDevelopment and Integration of the RADIANCE Photon Map Extension:
435 Technical Report\fR,
436 .br
437 \fIThe RADIANCE Out-of-Core Photon Map: Technical Report\fR,
438 .br
439 \fIBonzo Daylighting Tool a.k.a. EvilDRC [TM]\fR
440