ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/doc/man/man1/pabopto2bsdf.1
Revision: 1.7
Committed: Wed Apr 14 15:23:12 2021 UTC (4 years ago) by greg
Branch: MAIN
Changes since 1.6: +3 -3 lines
Log Message:
docs(pabopto2bsdf): missing word

File Contents

# Content
1 .\" RCSid "$Id: pabopto2bsdf.1,v 1.6 2021/04/05 20:08:41 greg Exp $"
2 .TH PABOPTO2BSDF 1 2/24/2021 RADIANCE
3 .SH NAME
4 pabopto2bsdf - convert BSDF measurements to a scattering interpolant representation
5 .SH SYNOPSIS
6 .B pabopto2bsdf
7 [
8 .B \-t
9 ][
10 .B "\-n nproc"
11 ][
12 .B "\-s symmetry"
13 ][
14 .B "\-g angle | 'A'"
15 ]
16 .B "meas1 meas2 .."
17 .SH DESCRIPTION
18 .I Pabopto2bsdf
19 takes two or more pab-opto
20 .I Mountain
21 files, each corresponding
22 to a different incident beam angle, and produces a
23 Scattering Interpolant Representation (SIR)
24 on the standard output for further processing.
25 The binary SIR contains a Radial Basis Function fitting
26 each incident BSDF data file
27 and a "transport plan" between neighboring RBF
28 directions in a spherical Delaunay mesh.
29 .PP
30 The SIR provides a complete 4-dimensional
31 BSDF description that may be resampled for other
32 formats such as Klems and tensor tree.
33 However, a separate run of
34 .I pabopto2bsdf
35 is needed to produce an SIR for each
36 incident and scattered hemisphere pair.
37 At most, there will be 4 such hemisphere pairs for
38 front reflection, back reflection, front transmission,
39 and back transmission.
40 Theoretically, only one transmission direction is required,
41 but it is often safest to measure both if they are to
42 be used in a simulation.
43 (See
44 .I bsdf2klems(1)
45 and
46 .I bsdf2ttree(1)
47 for details.
48 The
49 .I bsdf2rad(1)
50 and
51 .I bsdfview(1)
52 tools are also useful for visualizaing SIR and XML files.)
53 .PP
54 The
55 .I pabopto2bsdf
56 .I \-t
57 option reverses the assumed sample orientation front-to-back,
58 and is discussed below under the "#intheta" header entry.
59 Multi-processing may be used to accelerate the program
60 on systems that support it via the
61 .I \-n
62 option.
63 .PP
64 BSDF symmetry may be specified with the
65 .I \-s
66 option, which is one of "isotropic", "quadrilateral",
67 "bilateral", "up", or "anisotropic".
68 Any of these may be abbreviated with as little as a single
69 letter, and case is ignored.
70 .PP
71 Normally,
72 .I pabopto2bsdf
73 will assume a BSDF symmetry from the incident phi angles provided.
74 If every input data file uses the same incident phi angle, the
75 BSDF is assumed to be "isotropic", or rotationally symmetric.
76 If input phi angles only cover one quarter of the incident hemisphere,
77 then the sample is assumed to have quadrilateral symmetry.
78 Similarly, half-hemisphere coverage implies "bilateral" symmetry,
79 although it is also compatible with "up" symmetry, which must be specified
80 on the command line.
81 The difference is crucial.
82 Similar to quadrilateral symmetry, bilateral symmetry is "mirrored,"
83 meaning that the sample material looks identical when viewed in a mirror.
84 However, "up" symmetry means that the sample looks the same when
85 rotated by 180-degree (upside-down), but does not look the same in a mirror.
86 The "up" symmetry was a late addition, and involves rotating and copying the
87 input data, treating the result as anisotropic.
88 It is therefore less efficient, and should only be used when necessary.
89 Finally, if the incident hemisphere is fully covered, the final BSDF
90 is anisotropic.
91 .PP
92 If a
93 .I \-s
94 symmetry option is specified and it does not agree with the input
95 data provided, an error message is issued and no output is produced.
96 Note that only the "up" and "bilateral" symmetry options have
97 identical input coverage, so this is the only time the
98 .I \-s
99 option must be specified if the default mirroring is not appropriate.
100 .PP
101 If a
102 .I \-g
103 option is present, it will cull scattered measurements that are nearer
104 to grazing than the given angle in degrees.
105 If the word "auto" (which can be abbreviated as 'a' or 'A') is given
106 instead of an angle, then the near-grazing angle will be determined
107 by the lowest incident angle measurement present in the input data.
108 This is sometimes necessary to eliminate noise and edge effects that
109 some measurements exhibit near grazing.
110 .PP
111 The
112 .I Mountain
113 software operates the pg2 goniophotometer to
114 capture BSDF scattering data in separate text files for each incident
115 angle, beginning with a header
116 whose lines each start with a pound sign ('#').
117 Some header settings require colons and others do not, as indicated below.
118 The
119 .i pabopto2bsdf
120 program understands the following lines from each header and ignores
121 the rest:
122 .TP
123 .BR #sample_name
124 A double-quoted string containing the name associated with this sample.
125 If input files contain different sample names, the final sample name read
126 will be the one passed to the SIR output.
127 .TP
128 .BR #format:
129 The data format, typically one of "theta phi DSF" or "theta phi BSDF".
130 These differ only in their inclusion of a cosine factor.
131 The word "BRDF" or "BTDF" is accepted in place of "BSDF".
132 Any other specification or a format missing generates an error.
133 .TP
134 .BR #intheta
135 The incident theta (polar) angle in degrees, measured from the sample's
136 surface normal.
137 Theta values should be between 0 and 180, where values less than 90
138 are considered incident to the "front" side of the sample, and
139 theta values greater than 90 are incident to the "back" side in
140 the standard coordinate system.
141 Notions of "front" and "back" may be reversed using the
142 .I -t
143 option if desired.
144 .TP
145 .BR #inphi
146 The incident phi (azimuthal) angle in degrees counter-clockwise as
147 seen from the "front" side of the sample.
148 .TP
149 .BR #incident_angle
150 The incident theta and phi angles are each given in this header
151 line, offered as an alternative to separate "#intheta" and "#inphi"
152 angles.
153 The interpretation is the same as above.
154 .TP
155 .BR #upphi
156 If present, this phi angle that corresponds to
157 the sample "up" orientation.
158 By default, it is assumed to be 0, meaning that "up"
159 is phi=0.
160 To get the standard RADIANCE coordinates for BSDFs, "#upphi" should
161 be set to 90 (degrees).
162 .TP
163 .BR #colorimetry:
164 Two colorimetry values are currently understood: "CIE-Y" and "CIE-XYZ".
165 The default "CIE-Y" colorimetry
166 takes each DSF or BSDF value as photometric.
167 If "CIE-XYZ" is specified, then the DSF or BSDF values must be triplets
168 corresponding to CIE XYZ values.
169 Such files are typically produced by the
170 .I pabopto2xyz(1)
171 tool rather than
172 .I Mountain,
173 directly.
174 .PP
175 The BSDF scattering data follows the header in unspecified order,
176 where each line in the file
177 contains the scattered theta and phi angles measured in the same
178 coordinate system as incident theta and phi, followed by the DSF
179 or BSDF value, which may either be a single photometric quantity
180 for "CIE-Y" colorimetry or a triplet if the colorimetry is "CIE-XYZ".
181 A minimal incident BSDF data file might contain:
182 .sp
183 .nf
184 #incident_angle 82.5 180
185 #format: theta phi DSF
186 84.968 125.790 0.009744
187 84.889 125.610 0.007737
188 84.805 125.427 0.008569
189 ...
190 .fi
191 .sp
192 The above header is equivalent to the more complete version below:
193 .sp
194 .nf
195 #format: theta phi DSF
196 #incident_angle 82.5 180
197 #intheta 82.5
198 #inphi 180
199 #upphi 0
200 #colorimetry: CIE-Y
201 84.968 125.790 0.009744
202 84.889 125.610 0.007737
203 84.805 125.427 0.008569
204 ...
205 .fi
206 .sp
207 The ordering of the header and data lines is unimportant,
208 but all header lines must precede all data lines in each input file.
209 .SH EXAMPLE
210 To generate an SIR file from a collection of transmission measurements
211 of a material with 180-degree symmetry using 4 processes:
212 .IP "" .2i
213 pabopto2bsdf -n 4 -s up f*_Tvis.txt > front_trans.sir
214 .PP
215 To combine this with front reflection measurements into a Klems BSDF file:
216 .IP "" .2i
217 pabopto2bsdf -n 4 -s up f*_Rvis.txt > front_refl.sir
218 .br
219 bsdf2klems front_trans.sir front_refl.sir > Klems_bsdf.xml
220 .SH NOTES
221 If the BSDF is being mirrored and there is no measured theta=0 incident
222 angle data file, this part of the distribution is filled in
223 by a special procedure.
224 This is important because there is no way to extrapolate missing
225 data at normal incidence.
226 .PP
227 The BSDF is extrapolated past the last measured theta angles towards
228 grazing using a constant value plus a single Gaussian lobe if one can
229 be reasonably fit to the near-grazing data.
230 This lobe will always be in the mirror direction in the case of
231 reflection, or the "through" direction in the case
232 of transmission.
233 The magnitude and width of this lobe is stored in the output header,
234 along with the constant value.
235 Both the lobe and the constant are neutral values, even with CIE-XYZ
236 colorimetry.
237 .PP
238 While there is no explicit handling of infrared or solar radiometry,
239 any single-channel BSDF will be created the same, and the final XML
240 file generated by
241 .I bsdf2klems
242 or
243 .I bsdf2ttree
244 can be edited to specify a different radiometry.
245 The interpolation process in
246 .I pabopto2bsdf
247 is not affected by this.
248 .PP
249 The standard BSDF coordinates in RADIANCE have the theta=0 direction
250 corresponding to the front-side surface normal.
251 The phi=0 direction points to the right as seen from the front, and
252 phi=90 degrees corresponds to the "up" orientation for the sample.
253 The same theta and phi are used for incoming and scattered angles,
254 so theta=180 is the opposite side surface normal.
255 This differs from the WINDOW, which use separate
256 coordinate systems for the front and the back.
257 To confusing things further, notions of "front" and "back" are
258 opposite in WINDOW and RADIANCE.
259 In RADIANCE, the normal of a window surface usually faces the
260 interior of a space.
261 .PP
262 In the
263 .I genBSDF(1)
264 utility, the world coordinate system follows trigonometric
265 conventions with theta=0 aligning to the Z-axis,
266 the X-axis matches (theta,phi)=(90,0), and the Y-axis
267 corresponds to (theta,phi)=(90,90).
268 The latter is thought of as the "up" direction for the sample.
269 This usually needs to be rotated into position, since most
270 RADIANCE models use the Z-axis as the world "up" direction.
271 .SH AUTHOR
272 Greg Ward
273 .SH "SEE ALSO"
274 bsdf2klems(1), bsdf2rad(1), bsdf2ttree(1), bsdfview(1), genBSDF(1),
275 pabopto2xyz(1)