| |
tmesh2rad (1)
NAME
|
tmesh2rad - convert a triangular mesh to a RADIANCE scene description |
SYNOPSIS
|
tmesh2rad [ -o obj ][ -m mat ][ -p
pat ] [ input .. ] |
DESCRIPTION
|
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. |
FILE FORMAT
|
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: |
|
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. |
|
The white-space-delimited string name is used as a
prefix for all following output triangles. |
|
The white-space-delimited string material is used as
the modifier name for all following output
triangles. |
|
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.) |
|
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. |
|
Defines a surface normal vector with the 3-dimensional
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. |
|
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. |
|
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. |
EXAMPLE
|
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
|
|
# 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. |
AUTHOR
BUGS
|
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. |
SEE ALSO
|