ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/doc/man/man1/bsdf2ttree.1
Revision: 1.2
Committed: Fri Aug 2 20:56:19 2013 UTC (11 years, 9 months ago) by greg
Branch: MAIN
Changes since 1.1: +9 -2 lines
Log Message:
Added ability to use Dx, Dy and Dz instead of last 3 function parameters

File Contents

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