ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/cv/mgflib/spec.txt
(Generate patch)

Comparing ray/src/cv/mgflib/spec.txt (file contents):
Revision 1.1 by greg, Sat Jun 25 09:46:58 1994 UTC vs.
Revision 1.9 by greg, Fri Feb 28 20:19:26 2003 UTC

# Line 1 | Line 1
1                  MATERIALS AND GEOMETRY FORMAT
2 <                SCCSid "$SunId$ LBL"
2 >                RCSid "$Id$"
3  
4   Introduction
5   ============
# Line 27 | Line 27 | current transform and the current object name.
27   Each entity is given by a short keyword, followed by space- or tab-
28   delimited arguments on a single line.  A single entity may be extended
29   over multiple lines using a backslash ('\') character right before the
30 < end of line, though no extended line may exceed 512 characters in total
31 < length.  (Given the current set of entities, even approaching 80
32 < characters would be highly unusual.)
30 > end of line, though no extended line may exceed 4096 characters in total
31 > length.
32  
33   Entities and Contexts
34   =====================
# Line 37 | Line 36 | There are three contexts in effect at all times, curre
36   current color and current material.  Initially, these contexts are
37   unnamed, and have specific default values.  The unnamed vertex is the
38   origin.  The unnamed color is neutral gray.  The unnamed material is a
39 < perfect absorber.  The unnamed contexts may be modified, but those
40 < modifications will not be saved.  Thus, reestablishing an unnamed
41 < context always gets its initial default value.  To save a new context
42 < or modify an old one, it must first be named.  Entities associated with
43 < named contexts (i.e. "v", "c" and "m") may be followed by an identifier
44 < and an equals sign ('='), indicating a new context.  If there is no
45 < equals, then the context must already be defined, and the appearance of
46 < the entity merely reestablishes this context.  If the context id is
47 < followed by an equals, then a new context is defined, destroying any
48 < previous instance of that context name.  Redefining or changing values
49 < of a context does not affect earlier uses of the same name, however.
50 < Contexts are always associated with a name id, which is any non-blank
51 < sequence of printing ASCII characters.  An optional template may be
52 < given following the equals, which is a previously defined context to
53 < use as a source of default values for this definition.  If no template
54 < is given, then the unnamed context of that type is used to set initial
55 < values.  Named contexts continue until the next context definition of
56 < the same type.
39 > perfect (two-sided) absorber.  The unnamed contexts may be modified,
40 > but those modifications will not be saved.  Thus, reestablishing an
41 > unnamed context always gets its initial default value.  To save a new
42 > context or modify an old one, it must first be named.  Entities
43 > associated with named contexts (i.e. "v", "c" and "m") may be followed
44 > by an identifier and an equals sign ('='), indicating a new context.
45 > If there is no equals, then the context must already be defined, and
46 > the appearance of the entity merely reestablishes this context.  If the
47 > context id is followed by an equals, then a new context is defined,
48 > destroying any previous instance of that context name.  Redefining or
49 > changing values of a context does not affect earlier uses of the same
50 > name, however.  Contexts are always associated with a name id, which is
51 > any non-blank sequence of printing ASCII characters.  An optional
52 > template may be given following the equals, which is a previously
53 > defined context to use as a source of default values for this
54 > definition.  If no template is given, then the unnamed context of that
55 > type is used to set initial values.  Named contexts continue until the
56 > next context definition of the same type.
57  
58   Hierarchical Contexts
59   =====================
# Line 68 | Line 67 | can be thought of as parts and subparts of an enclosin
67   Note that this is strictly for ease of identification, and has no
68   real meaning as far as the geometric description goes.  In contrast,
69   the transform entity is very significant as it determines how enclosing
70 < objects are to be scaled and placed in the final description.
70 > objects are to be scaled and placed in the final description.  Hierarchical
71 > contexts may be nested in any way, but should not overlap.
72  
73   Without further ado, here are the proposed entities and their interpretations:
74  
# Line 83 | Line 83 | n      dx dy dz                set surface normal for current vertex
83   c       [id [= [template]]]     get/set color context
84   cxy     x y                     set CIE (x,y) chromaticity for current color
85   cspec   l_min l_max v1 v2 ..    set relative spectrum for current color
86 + cct     temperature             set spectrum based on black body temperature
87   cmix    w1 c1 w2 c2 ..          mix named colors to make current color
88   m       [id [= [template]]]     get/set material context
89 + sides   {1|2}                   set number of sides for current material
90   rd      rho_d                   set diffuse reflectance for current material
91   td      tau_d                   set diffuse transmittance for current material
92   ed      epsilon_d               set diffuse emittance for current material
93   rs      rho_s alpha_r           set specular reflectance for current material
94   ts      tau_s alpha_t           set specular transmittance for current material
95 + ir      n_real n_imag           set index of refraction for current material
96   o       [name]                  begin/end object context
97   f       v1 v2 v3 ..             polygon using current material, spec. vertices
98   sph     vc radius               sphere
99   cyl     v1 radius v2            truncated right cylinder (open-ended)
100   cone    v1 rad1 v2 rad2         truncated right cone (open-ended)
101 < prism   v1 v2 v3 .. length      right prism (closed solid)
101 > prism   v1 v2 v3 .. length      truncated right prism (closed solid)
102   ring    vc rmin rmax            circular ring with inner and outer radii
103   torus   vc rmin rmax            circular torus with inner and outer radii
104   xf      [xform]                 begin/end transformation context
# Line 106 | Line 109 | Entities                               Contexts
109   --------                                --------
110   p, n                                    vertex
111   cxy, cspec, cmix                        color
112 + sides                                   material
113   rd, td, ed, rs, ts                      color, material
114   f, sph, cyl, cone, ring, torus, prism   material, object, transformation
115  
# Line 142 | Line 146 | Rotations are given in degrees counter-clockwise about
146   That is, with the thumb of the right hand pointing in the direction
147   of the axis, rotation follows the curl of the fingers.
148  
149 < The transform command itself is also cumulative, and a transform
150 < command with no arguments is used to return to the previous
151 < condition.  It is best if transforms and their end statements
152 < ("xf" by itself) are balanced in a file, so that later or enclosing
153 < files are not affected.
149 > The transform command itself is also cumulative, but in the reverse
150 > order.  That is, later transformations (i.e. enclosed transformations)
151 > are prepended to existing (i.e. enclosing) ones.  A transform command
152 > with no arguments is used to return to the previous condition.  It is
153 > necessary that transforms and their end statements ("xf" by itself) be
154 > balanced in a file, so that later or enclosing files are not affected.
155  
156   Transformations apply only to geometric types, e.g. polygons, spheres, etc.
157   Vertices and the components that go into geometry are not directly affected.
# Line 157 | Line 162 | Arrays
162   ======
163   The -a N transform specification causes the following transform
164   arguments to be repeated along with the contents of the included
165 < file N times.  (Note that this option is supported only for included
166 < files.)  The first instance of the geometry will be in its initial
167 < location; the second instance will be repositioned according to the
163 < named transformation; the third instance will be repositioned by
165 > objects N times.  The first instance of the geometry will be in its
166 > initial location; the second instance will be repositioned according
167 > to the named transformation; the third instance will be repositioned by
168   applying this transformation twice, and so on up to N-1 applications.
169  
170   Multi-dimensional arrays may be specified with a single include
# Line 207 | Line 211 | saturation.  Intensity, such as reflectance or emittan
211   included in the other material parameters.  All colors are absolute,
212   e.g. spectral reflectance or transmittance under uniform white light.
213  
214 < A CIE xy chromaticity pair is the most basic color specification.
215 < A full spectrum is the most general specification, and the starting
216 < (i.e. minimum) and ending (i.e. maximum) wavelengths are given along
217 < with a set of evenly spaced values.  Wavelengths are given in nanometers,
218 < and must be within the range of 380-780.  The spectral values themselves
219 < are located starting at the first wavelength and proceeding at even
220 < increments to the ending wavelength.  The values in between will be
221 < interpolated as necessary, so there must be at least two specified points.
222 < The color mixing entity is intended not only for the mixing of named
223 < colors, but also for color specifications  using an arbitrary set
224 < of basis functions.  The actual totals for spectral and mixing
225 < coefficients is irrelevant, since the results will be normalized.
214 > A CIE xy chromaticity pair is the most basic color specification.  A
215 > full spectrum is the most general specification, and the starting (i.e.
216 > minimum) and ending (i.e. maximum) wavelengths are given along with a
217 > set of evenly spaced values.  Wavelengths are given in nanometers, and
218 > should be within the range of 380-780.  The spectral values themselves,
219 > which can be thought of as relative power density per nanometer, start
220 > at the first wavelength and proceed at even increments to the last
221 > wavelength.  The values in between will be interpolated as necessary,
222 > so there must be at least two specified points.  The color temperature
223 > entity corresponds to the spectrum of a black body at the specified
224 > temperature (in degrees Kelvin).  The color mixing entity is intended
225 > not only for the mixing of named colors, but also for color
226 > specifications  using an arbitrary set of basis functions.  The mixing
227 > coefficients are in effect relative luminances for each color
228 > "primary."  The actual total of the mixing coefficients or spectral
229 > values is irrelevant, since the results will always be normalized.
230  
231   Diffuse emittance is always given in SI units of lumens/meter^2.  Note that
232   this is emittance, not exitance, and does not include light reflected or
# Line 231 | Line 239 | be scattered.
239  
240   The sum of the diffuse and specular reflectances and transmittances
241   must be strictly less than one (with no negative values, obviously).
242 + These values are assumed to be measured at normal incidence.  If an
243 + index of refraction is given, this may modify the balance between
244 + diffuse and specular reflectance at other incident angles.  If the
245 + material is one-sided (see below), then it may be a dielectric interface.
246 + In this case, the specular transmittance given is that which would be
247 + measured at normal incidence for a pane of the material 5 mm thick.
248 + This is important for figuring the actual transmittance for non-planar
249 + geometries assuming a uniformly absorbing medium.  If the index of
250 + refraction has an imaginary part, then the surface is a metal and this
251 + implies other properties according to physics.  The default index of
252 + refraction is that of a vacuum, i.e. (1,0).
253  
254   The object entity establishes a hierarchical context, consisting of
255   this identifier and all those preceding.  It has no real meaning except
256   to group the following surfaces up until an empty object statement
257   under a descriptive name for improved file readability.
258  
259 < Surfaces are one-sided, and appear invisible when viewed from the
260 < back side.  This means that a transmitting object will affect the
261 < light coming in through the front surface and ignore the characteristics
262 < of the back surface.  As long as the characteristics are the same,
263 < the results should be correct.  If the rendering technique does not
264 < allow for one-sided surfaces, an approximately correct result can
265 < be obtained for transmitting surfaces by using the square root of
266 < the given tau_s and half the given alpha_t.
259 > Surfaces are two-sided unless the "sides" entity is used to set the
260 > number of sides for a material to one.  If a surface is one-sided,
261 > then it appears invisible when viewed from the back side.  This means
262 > that a transmitting object will affect the light coming in through the
263 > front surface and ignore the characteristics of the back surface.  As
264 > long as the transmission characteristics are the same, the results should
265 > be correct.  If the rendering technique does not allow for one-sided
266 > surfaces, an approximately correct result can be obtained for one-sided
267 > transmitting surfaces by using the square root of the given tau_s and
268 > half the given alpha_t.  If a rendering technique does not permit
269 > two-sided surfaces, then each surface must be made into two for
270 > full compliance if "sides" is set to 2 (the default).
271  
272   The surface normal of a face is oriented by the right-hand rule.
273   Specifically, the surface normal faces towards the viewer when the
# Line 256 | Line 279 | A prism consists of a set of coplanar vertices specify
279   and a length value.  The prism will be extruded so that the end-face
280   points outward, unless the length value is negative, in which case the
281   object is extruded in the opposite direction, resulting in inward-
282 < directed surface normals.
282 > directed surface normals.  If surface normals are specified for the
283 > vertices, they will be applied to the side faces but not the end
284 > faces, and they must generally point in the appropriate direction
285 > (i.e. in or out depending on whether extrusion is negative or positive).
286  
287   A sphere, cylinder or cone with negative radii is interpreted as having
288   an inward facing surface normal.  Otherwise, the normal is assumed

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines