Table of Contents
tmesh2rad - convert a triangular mesh to a RADIANCE scene
description
tmesh2rad [ -o obj ][ -m mat ][ -p pat ] [ input .. ]
Tmesh2rad converts one or more triangle-mesh files to a
RADIANCE scene description. The -o option may be used to
assign a default object name. The single letter "T" is used
if no name is given on the command line or in the file. The
-m option may be used to assign a default material name.
The non-material "void" is used as a default if none is
given on the command line or in the file. The -p option may
be used to assign a default picture for a surface pattern.
If none is given on the command line or in the file, the
surface will not have an associated pattern.
A triangle-mesh is a free-format ASCII file composed of the
following eight primitive types. Each primitive is begun
with a single, white-space-delimited letter:
# Comment Whatever follows up until the end of line is
passed as a comment to the output. Note that
there must be at least one space or tab following
the pound-sign.
- o name
- The white-space-delimited string name is used as a
prefix for all following output triangles.
m material
The white-space-delimited string material is used
as the modifier name for all following output
triangles.
p picture The white-space-delimited string picture is used
as the name of the RADIANCE picture file to be
used as a pattern for all following output
triangles with properly defined vertices. (See i
primitive below.)
v id x y z
Defines the vertex id with 3-dimensional
coordinates x, y and z. The identifier, id must be
some small, non-negative integer value. If the
same integer is used for a later vertex
definition, this definition will be lost, though
any triangles using the vertex prior to its
redefinition will be unaffected.
n nx ny nz
Defines a surface normal vector with the 3dimensional
components nx, ny and nz. This vector
will be associated with the most recently defined
vertex, and is often placed on the same line as
the vertex definition for clarity. The vector
need not be normalized.
- i u v
- Defines a picture index for the most recently
defined vertex. The u value will be used to
lookup the horizontal pixel coordinate in the
currently defined picture. The v value will be
used to lookup the vertical pixel coordinate.
(See the RADIANCE reference manual for details on
picture coordinate values.) As with associated
surface normals, picture indices are interpolated
using barycentric coordinates based on the
triangle vertices. If these coordinates are
calculated correctly, this should result in a
smooth mapping of a pattern onto the surface mesh.
t id1 id2 id3
Create a triangle connecting the three vertices
identified by id1, id2 and id3. The right-hand
rule is used to determine the default surface
normal orientation, and this should not be too far
from the associated vertex normals (if any). All
three vertices must have an associated normal if
the triangle is to be smoothed. If a picture file
is defined and all three vertices have pattern
indices associated with them, then this picture
will be used as a pattern to modify the triangle's
color.
We realize there are many similar T-mesh file formats in
existence, and that it would have been just as easy to
support one of these formats directly. The disadvantage to
supporting an existing format is that conversion from other
formats might prove difficult. It was our hope to provide a
"greatest common multiple" format that would support all
similar T-mesh formats, rather than supporting WaveFront's
.obj format (for example) and being unable to associate a
pattern with an object. Converting from other formats
should be relatively straightforward. In many cases, an
awk(1), rcalc(1) or even a sed(1) script should be
sufficient.
Here is an example T-mesh file:
# Our object name:
o test_object
# Our material:
m puce
# Our vertices:
v 1 10 15 5
v 2 10 -15 5
v 3 0 -15 0
v 4 -10 15 -5
# Two triangles joined together:
t 1 2 3
t 2 3 4
Which generates the following output:
## T-mesh read from: <stdin>
# Our material:
# Our vertices:
# Two triangles joined together:
puce polygon test_object.1
0
0
9
10 15 5
10 -15 5
0 -15 0
puce polygon test_object.2
0
0
9
10 -15 5
0 -15 0
- -10
- 15 -5
Here is another example:
# A partial cylinder:
m BluePlastic
- v 1 -14.673 -3.119
- 50 n -0.95677 -0.203374 1.17936e-10
- v 2 -12.136 -8.817
- -50 n -0.791363 -0.574922 4.84915e-10
- v 3 -12.136 -8.817
- 50 n -0.791363 -0.574922 4.84915e-10
t 1 2 3
m OrangePlastic
- v 1 -7.501 -12.991
- 50 n -0.549094 -0.812427 -1.45812e-09
- v 2 -12.136 -8.817
- 50 n -0.791363 -0.574922 4.84915e-10
- v 3 -12.136 -8.817
- -50 n -0.791363 -0.574922 4.84915e-10
t 1 2 3
m BluePlastic
- v 1 -1.568 -14.918
- 50 n -0.171094 -0.965568 -5.69788e-09
- v 2 -7.501 -12.991
- 50 n -0.549094 -0.812427 -1.45812e-09
- v 3 -7.501 -12.991
- -50 n -0.429001 -0.881759 -3.6502e-09
t 1 2 3
Note that the same three vertices were used repeatedly, and
intermingled with the triangle definitions.
Greg Ward
Triangle smoothing doesn't work very well for glass or trans
material types in Radiance, since textures cause distorted
transmission through these materials. It is best to use the
dielectric material type if smooth transmission is desired.
arch2rad(1), awk(1), ies2rad(1), thf2rad(1), oconv(1),
rcalc(1), sed(1), xform(1)
Header and Footer
TMESH2RAD(1) RADIANCE (3/18/96) TMESH2RAD(1)
Page 1 (printed 7/17/96)
Table of Contents