ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/doc/man/man1/bsdf2ttree.1
Revision: 1.4
Committed: Wed Mar 12 21:15:31 2014 UTC (11 years, 1 month ago) by greg
Branch: MAIN
CVS Tags: rad4R2P2, rad4R2, rad4R2P1
Changes since 1.3: +11 -1 lines
Log Message:
Disabled DEBUG statements in BSDF programs and added progress bars

File Contents

# Content
1 .\" RCSid $Id: bsdf2ttree.1,v 1.3 2013/09/26 17:05:00 greg Exp $
2 .TH BSDF2TTREE 1 4/24/2013 RADIANCE
3 .SH NAME
4 bsdf2ttree - generate XML tensor tree description of a BSDF
5 .SH SYNOPSIS
6 .B bsdf2ttree
7 [
8 .B "\-pC"
9 ][
10 .B "\-g Nlog2"
11 ][
12 .B "\-t pctcull"
13 ][
14 .B "\-l maxlobes"
15 ]
16 [
17 .B "bsdf.sir .."
18 ]
19 .br
20 or
21 .br
22 .B bsdf2ttree
23 .B "\-t{3|4}"
24 [
25 .B "\-pC"
26 ][
27 .B "\-g Nlog2"
28 ][
29 .B "\-t pctcull"
30 ][
31 .B "{+|-}forward"
32 ][
33 .B "{+|-}backward"
34 ][
35 .B "\-e expr"
36 ][
37 .B "\-f file"
38 ]
39 .B bsdf_func
40 .SH DESCRIPTION
41 .I Bsdf2ttree
42 produces a tensor tree representation of a
43 bidirectional scattering distribution function (BSDF)
44 based on an intermediate representation (in the first form) or
45 a functional description (in the second form).
46 A complete XML description is written to the standard output,
47 which is normally redirected to a file.
48 .PP
49 The
50 .I \-p
51 option by itself turns off the progress bar, whose length may be set
52 by an immediately following integer argument.
53 (The default progress bar length is 79 characters.)\0
54 .PP
55 The maximum resolution of the tensor tree may be controlled by the
56 .I \-g
57 option, which defaults to a value of 6.
58 This corresponds to a peak resolution of 2^6 (64) in each dimension.
59 Due to memory and time constraints, it is not recommended to set
60 .I \-g
61 higher than 7, which corresponds to a 128x128x128x128 initial sampling,
62 or 268 million values.
63 .PP
64 The initial sampling is pared down by the percentage specified with the
65 .I \-t
66 option, which defaults to 90.
67 Setting this parameter to -1 turns culling off entirely, which may be
68 useful for comparisons.
69 .PP
70 The first invocation form takes a intermediate scattering representation
71 as produced by
72 .I pabopto2bsdf(1)
73 or similar, and produces a tensor tree representation with as many
74 components as there are independent input distributions.
75 Each intermediate scattering file contains one of
76 the four components, and if the first component
77 is isotropic, all components must be isotropic.
78 A similar rule holds for anisotropic inputs.
79 The
80 .I \-l
81 option may be used to specify the maximum number of lobes in any
82 interpolated radial basis function.
83 The default value is 15000, which generally keeps the interpolation tractable.
84 Setting the value to 0 turns off this limit.
85 .PP
86 In the second invocation form,
87 .I bsdf2ttree
88 takes a functional specification of a BSDF.
89 The named function should accept 6 parameters corresponding to the
90 normalized incident and exiting vectors, respectively.
91 By convention, these vectors point away from the surface, and a positive
92 Z-component corresponds to the front side.
93 The Y-component corresponds to the "up" orientation of the surface,
94 as specified in the eventual scene description that references the XML
95 output.
96 If the function only takes 3 parameters, then the variables "Dx", "Dy",
97 and "Dz" will be assigned to the reverse of the outgoing direction at
98 each evaluation.
99 (I.e., the vector will point into the surface and
100 Dz will be negative on the front side.)\0
101 This simplifies conversion of functional BSDF specifications using the
102 legacy material primitives "plasfunc", "metfunc", and "transfunc".
103 .PP
104 The function is defined by one or more
105 .I \-e
106 and
107 .I \-f
108 options, and should obey both Helmholtz reciprocity and
109 integrate to less than 1 over each projected incident hemisphere
110 for energy conservation.
111 If the
112 .I \-t3
113 option is specified, the defined function is assumed to be isotropic.
114 If the
115 .I \-t4
116 option is given, the function is assumed to be anisotropic.
117 .PP
118 Similar to the
119 .I genBSDF(1)
120 command,
121 the
122 .I \+backward
123 option (default) specifies that rays arriving from the front side of
124 the surface will be tested for reflection and transmission.
125 If both forward and backward (front and back) distributions are needed, the
126 .I \+forward
127 option may be given.
128 To turn off the backward components, use the
129 .I \-backward
130 option.
131 Computing both incident hemispheres takes about twice as long as one, but
132 is recommended when rays will be impinging from either side.
133 .SH EXAMPLE
134 To take two components of an intermediate BSDF representation and create
135 a high-resolution tensor tree with 85% culling:
136 .IP "" .2i
137 bsdf2ttree -g 7 -t 85 transmitted.sir reflected.sir > combined.xml
138 .PP
139 To create a low-res BSDF corresponding to a one-sided,
140 isotropic Phong distribution:
141 .IP "" .2i
142 bsdf2ttree -g 5 -t3 -e 'phong(ix,iy,iz,ox,oy,oz) = if(iz, .1+((iz+oz)/sqrt((ix+ox)^2+(iy+oy)^2+(iz+oz)^2))^50, 0)' phong > phong.xml
143 .SH AUTHOR
144 Greg Ward
145 .SH "SEE ALSO"
146 bsdf2klems(1), icalc(1), genBSDF(1), pkgBSDF(1)