The OBJ file format is
a ASCII form. It supports a variety of geometry ranging from polygons
to high degree NURBS surfaces.
The following types of
data may be included in an OBJ file. In this list, the keyword (in parentheses)
follows the data type.
Vertex data
- geometric vertices (v)
- texture vertices (vt)
- vertex normals (vn)
- parameter space vertices (vp)
Free-form curve/surface
attributes
- rational or non-rational forms of curve
or surface type.
Basis matrix, Bezier, B-spline,
Cardinal, Taylor (cstype)
- degree (deg)
- basis matrix (bmat)
- step size (step)
Elements
- point (p)
- line (l)
- face (f)
- curve (curv)
- 2D curve (curv2)
- surface (surf)
Free-form curve/surface
body statements
- parameter values (parm)
- outer trimming loop (trim)
- inner trimming loop (hole)
- special curve (scrv)
- special point (sp)
- end statement (end)
Connectivity between free-form
surfaces
Grouping
- group name (g)
- smoothing group (s)
- merging group (mg)
- object name (o)
Display/render attributes
- bevel interpolation (bevel)
- color interpolation (c_interp)
- dissolve interpolation (d_interp)
- level of detail (lod)
- material name (usemtl)
- material library (mtllib)
- shadow casting (shadow_obj)
- ray tracing (trace_obj)
- curve approximation technique (ctech)
- surface approximation technique (stech)