tmesh2rad - Online in the Cloud

This is the command tmesh2rad that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

PROGRAM:

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:

# 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 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.

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.

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

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.

Use tmesh2rad online using onworks.net services



Latest Linux & Windows online programs