The Wavefront .obj file format is a standard 3D object file format created
for use with Wavefront's Advanced Visualizer™ and available for purchase
from Viewpoint DataLabs, as well as other 3D model companies. Object Files are
text based files supporting both polygonal and free-form geometry (curves and
surfaces). The Java 3D .obj file loader supports a subset of the file format,
but it is enough to load almost all commonly available Object Files. Free-form
geometry is not supported.
The following text is close to the description of the .obj file
format in the Sun Java3D documentation.
The Object File tokens currently supported by the JavaView loader are
listed below. Unknown tokens are skipped without affecting the reading
process.
# some text
- Line is a comment until the end of the line
v float float float
- A single vertex's geometric position in space. The first vertex listed
in the file has index 1, and subsequent vertices are numbered
sequentially.
vn float float float
- A normal. The first normal in the file is index 1, and subsequent
normals are numbered sequentially.
vt float float
- A texture coordinate. The first texture coordinate in the file is
index 1, and subsequent textures are numbered sequentially.
f int int int ...
- or
f int/int int/int int/int
. . .
- or
f int/int/int int/int/int
int/int/int ...
- A polygonal face. The numbers are indexes into the arrays of vertex
positions, texture coordinates, and normals respectively.A number may be
omitted if, for example, texture coordinates are not being defined in
the model.
There is no maximum number of vertices that a single polygon may
contain. The .obj file specification says that each face must be flat
and convex. In JavaView polygonal face may be triangulated.
The example file sample.obj is
given below (its a cube):