Polygon File Format

From GICLWiki
(Difference between revisions)
Jump to: navigation, search
Line 1: Line 1:
 
[[Category:Engineering format]]
 
[[Category:Engineering format]]
'''Title(s):''' PLY - Polygon File Format
+
'''Title(s):''' [[Title::PLY]] - Polygon File Format or Stanford Triangle Format
  
'''Version ID:''' version 1.0 PLY format
+
'''Version ID:''' [[Version ID::1.0]] - Currently used version
'''Creator(s):''' Stanford University, Georgia Tech
+
  
* '''Syntax Format(s):''' The PLY format describes an object as a collection of vertices, faces and other elements, along with properties such as color and normal direction that can be attached to these elements. A PLY file contains the description of exactly one object. Sources of such objects include: hand-digitized objects, polygon objects from modeling programs, range data, triangles from marching cubes (isosurfaces from volume data), terrain data, radiosity models. Properties that might be stored with the object include: color, surface normals, texture coordinates, transparency, range data confidence, and different properties for the front and back of a polygon.
+
'''Date released:''' [[Version Date released::1994]]
  
'''Description:''' The PLY format, also known as the Stanford Triangle Format, defines a flexible and systematic scheme for storing 3D data.
+
'''Date:''' [[Format Date::1994]]
  
'''History:''' The PLY file format is a simple object description that was designed for researchers working with polygonal models. Early versions of this file format were used at Stanford University and at UNC Chapel Hill.
+
'''Creator(s):''' [[Creator::Stanford University]]
 +
 
 +
'''Contributor(s):''' [[Contributor::Stanford University]]
 +
 
 +
'''Relationships:'''
 +
 
 +
* '''Previous Version(s):''' [[Previous Version::NONE]]
 +
 
 +
* '''Contains:''' [[Contains::NONE]]
 +
 
 +
* '''Syntax Format(s):''' [[Syntax Format::NONE]]
 +
 
 +
* '''Family Format(s):''' [[Family Format::NONE]]
  
 
'''Example(s):'''  
 
'''Example(s):'''  
Line 74: Line 85:
 
'''Applications:''' - Applications that the engineering format uses.
 
'''Applications:''' - Applications that the engineering format uses.
  
'''Magic numbers:''' The characters "ply" must be the first four characters of the file
+
'''Magic numbers:''' ply - Typically starts with "ply" as the header followed by either "format ascii 1.0", "format binary_little_endian 1.0", or "format binary_big_endian 1.0" as the next line.
  
'''Rights:''' [[Rights::]] - The name or type of the license for the engineering format. Examples: BSD-style license, Apache License, Proprietary license
+
'''Format(s):''' application/octet-stream
  
 
'''Sustainability Factors:''' - Facts about the sustainability of this particular engineering format.
 
'''Sustainability Factors:''' - Facts about the sustainability of this particular engineering format.

Revision as of 17:48, 15 February 2010

Title(s): PLY - Polygon File Format or Stanford Triangle Format

Version ID: 1.0 - Currently used version

Date released: 1994

Date: 1994

Creator(s): Stanford University

Contributor(s): Stanford University

Relationships:

  • Previous Version(s): NONE
  • Syntax Format(s): NONE
  • Family Format(s): NONE

Example(s):

ply
format ascii 1.0           { ascii/binary, format version number }
comment made by Greg Turk  { comments keyword specified, like all lines }
comment this file is a cube
element vertex 8           { define "vertex" element, 8 of them in file }
property float x           { vertex contains float "x" coordinate }
property float y           { y coordinate is also a vertex property }
property float z           { z coordinate, too }
element face 6             { there are 6 "face" elements in the file }
property list uchar int vertex_index { "vertex_indices" is a list of ints }
end_header                 { delimits the end of the header }
0 0 0                      { start of vertex list }
0 0 1
0 1 1
0 1 0
1 0 0
1 0 1
1 1 1
1 1 0
4 0 1 2 3                  { start of face list }
4 7 6 5 4
4 0 4 5 1
4 1 5 6 2
4 2 6 7 3
4 3 7 4 0

  • Sample ascii ply file [[1]]
  • ply.h [[2]]
  • plytest.c [[3]]
  • plyfile.c [[4]]
  • plydocs.txt [[5]]

Identifier: - A URL or other identifier that refers to the engineering format.

Documentation:

  • Structure of a typical PLY file
    • Header
    • Vertex List
    • Face List
    • lists of other elements)
  • Scalar data types
name        type        number of bytes
---------------------------------------
char       character                 1
uchar      unsigned character        1
short      short integer             2
ushort     unsigned short integer    2
int        integer                   4
uint       unsigned integer          4
float      single-precision float    4
double     double-precision float    8

Identifier: The Stanford 3D Scanning Repository [[6]]

File Extensions: .PLY

Applications: - Applications that the engineering format uses.

Magic numbers: ply - Typically starts with "ply" as the header followed by either "format ascii 1.0", "format binary_little_endian 1.0", or "format binary_big_endian 1.0" as the next line.

Format(s): application/octet-stream

Sustainability Factors: - Facts about the sustainability of this particular engineering format.

  • Standardization: - Information regarding standardization attempts with this format.
  • Adoption: - Information about how this format has been adopted by other organizations.
    • Licensing and patent claims: - Any licenses or patent claims that the engineering format makes.
  • Self-documentation: - Any self-documentation capabilities of the format.
  • External dependencies: - Anything that the format depends on outside of its control to function.
  • Technical protection considerations: - Any considerations that are necessary when it comes to technical protection.

Typical use:CAD/CAM

File classification: - Specific properties that pertain to this engineering format.

  • Type {Binary, Text}: Both
  • Raster data: - Section describes whether or not the engineering format supports raster data.
    • Raster data 2D: - Can the format support 2D raster data? Example: A format that can contain 2D pixelated data supports 2D raster data.
      • Is Supported: - Is the feature supported in the engineering format?
      • Description: - This field is used to describe the support or lack of support of the feature.
    • Raster data 3D: - Can the format support 3D raster data? Example: A format that can contain 2D pixelated data of a 3D model supports 3D raster data.
      • Is Supported: - Is the feature supported in the engineering format?
      • Description: - This field is used to describe the support or lack of support of the feature.
  • Geometric representation: - Section describes whether or not the engineering format supports geometric representations.
    • Implicit representation: - Section describes whether or not the engineering format supports implicit representations.
      • Implicit surfaces: - Can the format support implicit surfaces? Example: A format that can contain surfaces that are generated with mathematical equations that contain the independent variables x, y, and z, like x^2 + y^2 + z^2 * R^2 = 0, supports implicit surfaces.
        • Is Supported: - Is the feature supported in the engineering format?
        • Description: - This field is used to describe the support or lack of support of the feature.
      • Implicit curves: - Can the format support implicit curves? Example: A format that can contain curves that are generated with mathematical equations that contain the independent variables x, y, and z, supports implicit curves.
        • Is Supported: - Is the feature supported in the engineering format?
        • Description: - This field is used to describe the support or lack of support of the feature.
      • Point set: - Can the format support point sets? Example: A format that supports surfaces and lines that are generated by points that form triangles supports point sets.
        • Is Supported: - Is the feature supported in the engineering format?
        • Description: - This field is used to describe the support or lack of support of the feature.
    • Mesh: - Section describes whether or not the engineering format supports mesh.
      • Manifold surface meshes: - Can the format support manifold surface meshes? Example: A format that supports surfaces that are mathematical spaces in which every point has a neighborhood which resembles Euclidean space
        • Is Supported: - Is the feature supported in the engineering format?
        • Description: - This field is used to describe the support or lack of support of the feature.
      • Manifold volume meshes: - Can the format support manifold volume meshes? Example: A format that supports volumes that are mathematical spaces in which every point has a neighborhood which resembles Euclidean space
        • Is Supported: - Is the feature supported in the engineering format?
        • Description: - This field is used to describe the support or lack of support of the feature.
      • Non-manifold meshes: - Can the format support non-manifold meshes? Example: A format that supports meshes that are not manifolds
        • Is Supported: - Is the feature supported in the engineering format?
        • Description: - This field is used to describe the support or lack of support of the feature.
    • Parametric representation: - Section describes whether or not the engineering format supports parametric representations.
      • Parametric surfaces: - Can the format support parametric surfaces? Example: A format that can contain surfaces that are generated with parametric equations supports parametric surfaces.
        • Is Supported: - Is the feature supported in the engineering format?
        • Description: - This field is used to describe the support or lack of support of the feature.
      • Parametric curves: - Can the format support parametric curves? Example: A format that can contain curves that are generated with parametric equations supports parametric curves.
        • Is Supported: - Is the feature supported in the engineering format?
        • Description: - This field is used to describe the support or lack of support of the feature.
    • Contour sets: - Can the format support contour sets?
      • Is Supported: - Is the feature supported in the engineering format?
      • Description: - This field is used to describe the support or lack of support of the feature.
    • NURBS: - Can the format support Non Uniform Rational Basis Splines? Examples: The engineering formats IGES, STEP, ACIS, and PHIGS
      • Is Supported: - Is the feature supported in the engineering format?
      • Description: - This field is used to describe the support or lack of support of the feature.
  • Multi-resolution models: - Can the format support models with multiple resolutions? Examples: A format that supports a highly detailed and lowly detailed model simultaneously supports multi-resolution models.
    • Is Supported: - Is the feature supported in the engineering format?
    • Description: - This field is used to describe the support or lack of support of the feature.
  • Dynamics: - Section describes whether or not the engineering format supports dynamics.
    • Kinematics: - Can the format support kinematics? Example: Does the format allow model parts to rotate?
      • Is Supported: - Is the feature supported in the engineering format?
      • Description: - This field is used to describe the support or lack of support of the feature.
    • Assembly: - Can the format support assembly? Example: Does the format allow the assembly instructions to be explicitly specified with a model?
      • Is Supported: - Is the feature supported in the engineering format?
      • Description: - This field is used to describe the support or lack of support of the feature.
    • Force(s): - Can the format support forces? Example: Does the format support acceleration forces?
      • Is Supported: - Is the feature supported in the engineering format?
      • Description: - This field is used to describe the support or lack of support of the feature.
  • Boundary representation - Can the format support models with boundary representations?
    • Manifold surface boundary representations: - Can the format support manifold surface boundary representations? Example: The engineering format STEP
      • Is Supported: - Is the feature supported in the engineering format?
      • Description: - This field is used to describe the support or lack of support of the feature.
    • Manifold volume boundary representations: - Can the format support manifold volume boundary representations? Example: The engineering format STEP
      • Is Supported: - Is the feature supported in the engineering format?
      • Description: - This field is used to describe the support or lack of support of the feature.
    • Non-manifold boundary representations: - Can the format support non-manifold boundary representations? Example: The engineering format STEP
      • Is Supported: - Is the feature supported in the engineering format?
      • Description: - This field is used to describe the support or lack of support of the feature.
  • Material transparency: - Can the format support transparency? Example: Does the format allow models to have a clear window in a car?
    • Is Supported: - Is the feature supported in the engineering format?
    • Description: - This field is used to describe the support or lack of support of the feature.

References: Paul Bourke, "The University of Western Australia", ["http://local.wasp.uwa.edu.au/~pbourke/dataformats/ply/", December 2010]

Personal tools