logo
Up  Jvx  Bd  Byu  Obj  Off 

GeomView's .off Format

The .off file format was used by GeomView, the 3D viewer developed at the Geometry Center. Note, originally there was an .off file format developed at DEC which seems to be different. The following description is taken from the GeomView manual written by Mark Philips.

Syntax:

[ST][C][N][4][n]OFF         # Header keyword
[Ndim]                      # Space dimension of vertices, present only if nOFF
NVertices  NFaces  NEdges   # NEdges not used or checked

x[0]  y[0]  z[0]            # Vertices, possibly with normals, colors, and/or texture
                            # coordinates, in that order, if the prefixes N, C, ST are present.
                            # If 4OFF, each vertex has 4 components,
                            # including a final homogeneous component.
                            # If nOFF, each vertex has Ndim components.
                            # If 4nOFF, each vertex has Ndim+1 components.
...
x[NVertices-1]  y[NVertices-1]  z[NVertices-1]
Nv  v[0] v[1] ... v[Nv-1]  colorspec ...
                            # Faces, possibly with colors
                            # Nv = # vertices on this face
                            # v[0] ... v[Nv-1]: vertex indices
                            #		in range 0..NVertices-1
                            # colorspec continues past v[Nv-1]
                            # to end-of-line; may be 0 to 4 numbers
                            # nothing: default
                            # integer: colormap index
                            # 3 or 4 integers: RGB[A] values 0..255
                            # 3 or 4 floats: RGB[A] values 0..1

An OFF file may begin with the keyword OFF; it's recommended but optional, as many existing files lack this keyword.

Three ASCII integers follow: NVertices, NFaces, and NEdges. These are the number of vertices, faces, and edges, respectively. The parameter NEdges needn't be correct but must be present.

The vertex coordinates follow: dimension * Nvertices floating-point values. They're implicitly numbered 0 through NVertices-1. dimension is either 3 (default) or 4 (specified by the key character 4 directly before OFF in the keyword).

Following these are the face descriptions, typically written with one line per face. Each has the form

N  Vert1 Vert2 ... VertN  [color]

Here N is the number of vertices on this face, and Vert1 through VertN are indices into the list of vertices (in the range 0..NVertices-1).

The optional color may take several forms. Line breaks are significant here: the color description begins after VertN and ends with the end of the line (or the next # comment). A color may be:

nothing
the default color
one integer
index into "the" colormap; not supported by JavaView since it requires an additional color map.
three or four integers
RGB and possibly alpha values in the range 0..255
three or four floating-point numbers
RGB and possibly alpha values in the range 0..1

For the one-integer case, the colormap is currently read from the file `cmap.fmap' in Geomview's `data' directory. Some better mechanism for supplying a colormap is likely someday.

The meaning of "default color" varies. If no face of the object has a color, all inherit the environment's default material color. If some but not all faces have colors, the default is gray (R,G,B,A=.666).

A [ST][C][N][n]OFF BINARY format is accepted; See section Binary format. It resembles the ASCII format in almost the way you'd expect, with 32-bit integers for all counters and vertex indices and 32-bit floats for vertex positions (and texture coordinates or vertex colors or normals if COFF/NOFF/CNOFF/STCNOFF/etc. format).

© 1997-2017 Last modified: 22.06.2017 --- www.javaview.de --- The JavaView Project