Sometimes I have to put text on a path

Tuesday, June 3, 2008

Polygonal modeling and file format

In 3D computer graphics, polygonal modeling is an approach for modeling objects by representing or approximating their surfaces using polygons.

Polygonal modeling is well suited to scanline rendering.

Alternate methods of representing 3D objects include NURBS surfaces, subdivision surfaces, and equation-based representations used in ray tracers.

The basic object used in mesh modeling is a vertex, a point in three dimensional space.


Two vertices connected by a straight line become an edge.

Three vertices, connected to the each other by three edges, define a triangle, which is the simplest polygon in Euclidean space. More complex polygons can be created out of multiple triangles, or as a single object with more than 3 vertices. Four sided polygons (generally referred to as quads) and triangles are the most common shapes used in polygonal modeling. A group of polygons, connected to each other by shared vertices, is generally referred to as an element. Each of the polygons making up an element is called a face.

A group of polygons which are connected together by shared vertices is referred to as a mesh. In order for a mesh to appear attractive when rendered, it is desirable that it be non-self-intersecting, meaning that no edge passes through a polygon. Another way of looking at this is that the mesh cannot pierce itself. It is also desirable that the mesh not contain any errors such as doubled vertices, edges, or faces. For some purposes it is important that the mesh be a manifold – that is, that it does not contain holes or singularities (locations where two distinct sections of the mesh are connected by a single vertex).

There are many disadvantages to representing an object using polygons. Polygons are incapable of accurately representing curved surfaces, so a large number of them must be used to approximate curves in a visually appealing manner. The use of complex models has a cost in lowered speed. In scanline conversion, each polygon must be converted and displayed, regardless of size, and there are frequently a large number of models on the screen at any given time. Often, programmers must use multiple models at varying levels of detail to represent the same object in order to cut down on the number of polygons being rendered.

File formats

A variety of formats are available for storing 3d polygon data. The most popular are:

OBJ (or .OBJ) is a geometry definition file format first developed by Wavefront Technologies for its Advanced Visualizer animation package. The file format is open and has been adopted by other 3D graphics application vendors and can be imported/exported from e-Frontier's Poser, Autodesk's Maya, Avid's Softimage|XSI, Blender, MeshLab, Misfit Model 3D, 3D Studio Max, and Rhinoceros 3D, Hexagon, Newtek Lightwave, Art of Illusion, GLC_Player etc. For the most part it is a universally accepted format.

PLY is a computer file format known as the Polygon File Format or the Stanford Triangle Format. The The Digital Michelangelo Project at Stanford University used the PLY format for an extremely high resolution 3D scan of the Michelangelo "David" sculpture. The format was principally designed to store three dimensional data from 3D scanners. It supports a relatively simple description of a single object as a list of nominally flat polygons. A variety of properties can be stored including: color and transparency, surface normals, texture coordinates and data confidence values. The format permits one to have different properties for the front and back of a polygon. There are two versions of the file format, one in ASCII, the other in binary.

STL is a file format native to the stereolithography CAD software created by 3D Systems. This file format is supported by many other software packages; it is widely used for rapid prototyping and computer-aided manufacturing. STL files describe only the surface geometry of a three dimensional object without any representation of color, texture or other common CAD model attributes. The STL format specifies both ASCII and binary representations. Binary files are more common, since they are more compact. An STL file describes a raw unstructured triangulated surface by the unit normal and vertices (ordered by the right-hand rule) of the triangles using a three-dimensional Cartesian coordinate system

  • MeshLab is an open source Windows and Linux application for visualizing, processing and converting three dimensional meshes to or from the OBJ file format.

  • GLC_Player is an Open Source software used to view 3d models in OBJ Format and to navigate easily in these models.
  • 3DMLW is a markup language that shows OBJ files through common web browsers

RepRap is an OpenSource project that uses STL file input and generates solid objects as output.
  • The STL Format - Standard Data Format for Fabbers: The STL Format
  • How to Create an STL file Guide to exporting STL files from various CAD packages (courtesy of ProtoCAM)
  • SolidView SolidView is a commercial STL manipulation package that has a Lite version available (under provision of a business email address) for STL viewing.
  • Freesteel with a web-interface where you can upload an STL file and render it into an image in your browser.
  • ADMesh is a GPLed text-based program for processing triangulated solid meshes, and reads and writes the STL file format.


There are many other file formats capable of encoding triangles available (such as VRML,...) but they have the disadvantage that it's possible to put things other than triangles into it, and thus produce something ambiguous or unusable.

*.STL, *.OBJ, *.PLY are OK.

No comments:

Post a Comment