[4]OFF # Header keyword NVertices NFaces NEdges # NEdges not used or checked x[0] y[0] z[0] # Vertices, possibly with colors # If 4OFF, each vertex has 4 components, # including a final homogeneous component. ... x[NVertices-1] y[NVertices-1] z[NVertices-1] # Faces # Nv = # vertices on this face # v[0] ... v[Nv-1]: vertex indices # in range 0..NVertices-1 Nv v[0] v[1] ... v[Nv-1] colorspec ... # colorspec continues past v[Nv-1] # to end-of-line; may be 0 to 4 numbers # nothing: default # 1 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. Thse are the number of vertices, faces, and edges, respectively. Current software does not use nor check NEdges; it 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:
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).
Example 1: OFF = cube
Example 2: OFF = cylinder