Polygon File Format

From GICLWiki
(Difference between revisions)
Jump to: navigation, search
 
(8 intermediate revisions by one user not shown)
Line 1: Line 1:
 
[[Category:Engineering format]]
 
[[Category:Engineering format]]
'''Title(s):''' PLY - Polygon File Format
+
'''Title(s):''' Polygon File Format or Stanford Triangle Format
  
'''Version ID:''' version 1.0 PLY format
+
'''Version ID:''' 1.0 - Currently used version
  
'''Date released:''' [[Version Date released::]] - Date that the version was released.
+
'''Date released:''' 1994
  
'''Date:''' [[Format Date::]] - Date the format was created (YYYY-MM-DD)
+
'''Date:''' 1994
  
'''Creator(s):''' [[Creator::Entity Template]] - The creator or original author of the engineering format.
+
'''Creator(s):''' Stanford University
  
'''Contributor(s):''' [[Contributor::]] - The current maintainers of the engineering format.
+
'''Contributor(s):''' Stanford University
  
'''Relationships:''' - Relationships that the engineering format has with organizations, other formats, etc.
+
'''Relationships:'''  
 
+
* '''Previous Version(s):''' [[Previous Version::]] - Any engineering format that is a previous version format of this one.
+
 
+
* '''Contains:''' [[Contains::]] - Any engineering format that is contained by this format.
+
 
+
* '''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.
+
 
+
* '''Family Format(s):''' [[Family Format::]] - Any family formats to which the engineering format may belong.
+
 
+
'''Description:''' [[Description::]] - Main description of the format, which can give extra information not categorized.
+
 
+
'''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.
+
  
 
'''Example(s):'''  
 
'''Example(s):'''  
Line 61: Line 49:
 
* plydocs.txt [[http://local.wasp.uwa.edu.au/~pbourke/dataformats/ply/plydocs.txt]]
 
* plydocs.txt [[http://local.wasp.uwa.edu.au/~pbourke/dataformats/ply/plydocs.txt]]
  
'''Identifier:''' [[Identifier::]] - A URL or other identifier that refers to the engineering format.
+
'''Identifier:''' The Stanford 3D Scanning Repository [[http://graphics.stanford.edu/data/3Dscanrep/]]
  
'''Documentation:''' [[Documentation::Documentation Template]] - Information in general about the engineering format.
+
'''Documentation:'''  
 +
* Structure of a typical PLY file
 +
** Header
 +
** Vertex List
 +
** Face List
 +
** lists of other elements)
 +
* Scalar data types
 +
<pre>
 +
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
 +
</pre>
  
'''File Extensions:''' [[File Extension::]] - Extensions of the engineering format, excluding the dot.
+
'''Identifier:''' The Stanford 3D Scanning Repository [[http://graphics.stanford.edu/data/3Dscanrep/]]
 +
 
 +
'''File Extensions:''' .PLY
  
 
'''Applications:''' - Applications that the engineering format uses.
 
'''Applications:''' - Applications that the engineering format uses.
  
* '''Native application(s):''' [[Native Application::Engineering Format Application Template]] - Applications which are primarily designed to specifically run this engineering format.
+
'''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.
 
+
* '''Interoperable applications:''' [[Interoperable Application::Engineering Format Application Template]] - Applications which can read or write files of this format, but are not native applications for the format.
+
 
+
'''Magic numbers:''' The characters "ply" must be the first four characters of the file
+
 
+
'''Format(s):''' [[Format::]] - The MIME file types.
+
 
+
'''Rights:''' [[Rights::]] - The name or type of the license for the engineering format. Examples: BSD-style license, Apache License, Proprietary license
+
 
+
'''Sustainability Factors:''' - Facts about the sustainability of this particular engineering format.
+
 
+
* '''Standardization:''' [[Standardization::]] - Information regarding standardization attempts with this format.
+
 
+
* '''Adoption:''' [[Adoption::]] - Information about how this format has been adopted by other organizations.
+
 
+
** '''Licensing and patent claims:''' [[Licensing and patent claims::]] - Any licenses or patent claims that the engineering format makes.
+
 
+
* '''Self-documentation:''' [[Self-documentation::]] - Any self-documentation capabilities of the format.
+
 
+
* '''External dependencies:''' [[External dependencies::]] - Anything that the format depends on outside of its control to function.
+
  
* '''Technical protection considerations:''' [[Technical protection considerations::]] - Any considerations that are necessary when it comes to technical protection.
+
'''Format(s):''' application/octet-stream
  
'''Typical use:''' [[Typical use::]] - Keywords that describe the format's typical use. Examples: CAD and CAM
+
'''Typical use:'''CAD/CAM
  
'''File classification:''' - Specific properties that pertain to this engineering format.
+
'''File classification:'''  
 
* '''Type {Binary, Text}:''' Both
 
* '''Type {Binary, Text}:''' Both
* '''Raster data:''' - Section describes whether or not the engineering format supports raster data.
+
* '''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.
+
** '''Raster data 2D:'''
*** '''Is Supported:''' [[File Classification Raster Data 2D - Is Supported::]] - Is the feature supported in the engineering format?
+
*** '''Is Supported:''' No
*** '''Description:''' [[File Classification Raster Data 2D - Description::]] - This field is used to describe the support or lack of support of the feature.
+
*** '''Description:''' N/A
** '''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.
+
** '''Raster data 3D:'''  
*** '''Is Supported:''' [[File Classification Raster Data 3D - Is Supported::]] - Is the feature supported in the engineering format?
+
*** '''Is Supported:''' No
*** '''Description:''' [[File Classification Raster Data 3D - Description::]] - This field is used to describe the support or lack of support of the feature.
+
*** '''Description:''' N/A
* '''Geometric representation:''' - Section describes whether or not the engineering format supports geometric representations.
+
* '''Geometric representation:'''  
** '''Implicit representation:''' - Section describes whether or not the engineering format supports implicit representations.
+
** '''Implicit representation:'''  
*** '''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.
+
*** '''Implicit surfaces:'''  
**** '''Is Supported:''' [[File Classification Implicit Surfaces - Is Supported::]] - Is the feature supported in the engineering format?
+
**** '''Is Supported:''' No
**** '''Description:''' [[File Classification Implicit Surfaces - Description::]] - This field is used to describe the support or lack of support of the feature.
+
**** '''Description:''' N/A
*** '''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.
+
*** '''Implicit curves:'''
**** '''Is Supported:''' [[File Classification Implict Curves - Is Supported::]] - Is the feature supported in the engineering format?
+
**** '''Is Supported:''' No
**** '''Description:''' [[File Classification Implicit Curves - Description::]] - This field is used to describe the support or lack of support of the feature.
+
**** '''Description:''' None
*** '''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.
+
*** '''Point set:'''  
**** '''Is Supported:''' [[File Classification Point Set - Is Supported::]] - Is the feature supported in the engineering format?
+
**** '''Is Supported:''' Yes
**** '''Description:''' [[File Classification Point Set - Description::]] - This field is used to describe the support or lack of support of the feature.
+
**** '''Description:''' The typical information in a PLY file contains just two elements, the (x,y,z) triples for vertices and the vertex indices for each face.
** '''Mesh:''' - Section describes whether or not the engineering format supports mesh.
+
** '''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
+
*** '''Manifold surface meshes:'''  
**** '''Is Supported:''' [[File Classification Mainfold Surface Meshes - Is Supported::]] - Is the feature supported in the engineering format?
+
**** '''Is Supported:''' No
**** '''Description:''' [[File Classification Manifold Surface Meshes - Description::]] - This field is used to describe the support or lack of support of the feature.
+
**** '''Description:''' N/A
*** '''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
+
*** '''Manifold volume meshes:'''
**** '''Is Supported:''' [[File Classification Manifold Volume Meshes - Is Supported::]] - Is the feature supported in the engineering format?
+
**** '''Is Supported:''' No
**** '''Description:''' [[File Classification Manifold Volume Meshes - Description::]] - This field is used to describe the support or lack of support of the feature.
+
**** '''Description:''' N/A
*** '''Non-manifold meshes:''' - Can the format support non-manifold meshes? Example: A format that supports meshes that are not manifolds
+
*** '''Non-manifold meshes:'''
**** '''Is Supported:''' [[File Classification Non-manifold Meshes - Is Supported::]] - Is the feature supported in the engineering format?
+
**** '''Is Supported:''' No
**** '''Description:''' [[File Classification Non-manifold Meshes - Description::]] - This field is used to describe the support or lack of support of the feature.
+
**** '''Description:''' N/A
** '''Parametric representation:''' - Section describes whether or not the engineering format supports parametric representations.
+
** '''Parametric representation:'''
*** '''Parametric surfaces:''' - Can the format support parametric surfaces? Example: A format that can contain surfaces that are generated with parametric equations supports parametric surfaces.
+
*** '''Parametric surfaces:'''  
**** '''Is Supported:''' [[File Classification Parametric Surfaces - Is Supported::]] - Is the feature supported in the engineering format?
+
**** '''Is Supported:''' No
**** '''Description:''' [[File Classification Parametric Surfaces - Description::]] - This field is used to describe the support or lack of support of the feature.
+
**** '''Description:''' It does not include parametric patches, quadric surfaces, constructive solid geometry operations, triangle strips, polygons with holes, or texture descriptions.
*** '''Parametric curves:''' - Can the format support parametric curves? Example: A format that can contain curves that are generated with parametric equations supports parametric curves.
+
*** '''Parametric curves:'''
**** '''Is Supported:''' [[File Classification Parametric Curves - Is Supported::]] - Is the feature supported in the engineering format?
+
**** '''Is Supported:''' No
**** '''Description:''' [[File Classification Parametric Curves - Description::]] - This field is used to describe the support or lack of support of the feature.
+
**** '''Description:''' It does not include parametric patches, quadric surfaces, constructive solid geometry operations, triangle strips, polygons with holes, or texture descriptions.
** '''Contour sets:''' - Can the format support contour sets?
+
** '''Contour sets:'''
*** '''Is Supported:''' [[File Classification Contour Sets - Is Supported::]] - Is the feature supported in the engineering format?
+
*** '''Is Supported:''' No
*** '''Description:''' [[File Classification Contour Sets - Description::]] - This field is used to describe the support or lack of support of the feature.
+
*** '''Description:''' It does not include parametric patches, quadric surfaces, constructive solid geometry operations, triangle strips, polygons with holes, or texture descriptions.
** '''NURBS:''' - Can the format support Non Uniform Rational Basis Splines? Examples: The engineering formats IGES, STEP, ACIS, and PHIGS
+
** '''NURBS:'''  
*** '''Is Supported:''' [[File Classification NURBS - Is Supported::]] - Is the feature supported in the engineering format?
+
*** '''Is Supported:''' No
*** '''Description:''' [[File Classification NURBS - Description::]] - This field is used to describe the support or lack of support of the feature.
+
*** '''Description:''' N/A
* '''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.
+
* '''Multi-resolution models:'''
** '''Is Supported:''' [[File Classification Multi-resolution Models - Is Supported::]] - Is the feature supported in the engineering format?
+
** '''Is Supported:''' No
** '''Description:''' [[File Classification Multi-resolution Models - Description::]] - This field is used to describe the support or lack of support of the feature.
+
** '''Description:''' M/A
* '''Dynamics:''' - Section describes whether or not the engineering format supports dynamics.
+
* '''Dynamics:'''  
** '''Kinematics:''' - Can the format support kinematics? Example: Does the format allow model parts to rotate?
+
** '''Kinematics:'''  
*** '''Is Supported:''' [[File Classification Kinematics - Is Supported::]] - Is the feature supported in the engineering format?
+
*** '''Is Supported:''' No
*** '''Description:''' [[File Classification Kinematics - Description::]] - This field is used to describe the support or lack of support of the feature.
+
*** '''Description:''' N/A
** '''Assembly:''' - Can the format support assembly? Example: Does the format allow the assembly instructions to be explicitly specified with a model?
+
** '''Assembly:'''  
*** '''Is Supported:''' [[File Classification Assembly - Is Supported::]] - Is the feature supported in the engineering format?
+
*** '''Is Supported:''' No
*** '''Description:''' [[File Classification Assembly - Description::]] - This field is used to describe the support or lack of support of the feature.
+
*** '''Description:''' N/A
** '''Force(s):''' - Can the format support forces? Example: Does the format support acceleration forces?
+
** '''Force(s):'''  
*** '''Is Supported:''' [[File Classification Force - Is Supported::]] - Is the feature supported in the engineering format?
+
*** '''Is Supported:''' No
*** '''Description:''' [[File Classification Force - Description::]] - This field is used to describe the support or lack of support of the feature.
+
*** '''Description:''' N/A
* '''Boundary representation''' - Can the format support models with boundary representations?
+
* '''Boundary representation'''  
** '''Manifold surface boundary representations:''' - Can the format support manifold surface boundary representations? Example: The engineering format STEP
+
** '''Manifold surface boundary representations:'''
*** '''Is Supported:''' [[File Classification Manifold Surface Boundary Representation - Is Supported::]] - Is the feature supported in the engineering format?
+
*** '''Is Supported:''' No
*** '''Description:''' [[File Classification Manifold Surface Boundary Representation - Description::]] - This field is used to describe the support or lack of support of the feature.
+
*** '''Description:''' N/A
** '''Manifold volume boundary representations:''' - Can the format support manifold volume boundary representations? Example: The engineering format STEP
+
** '''Manifold volume boundary representations:'''
*** '''Is Supported:''' [[File Classification Manifold Volume Boundary Representation - Is Supported::]] - Is the feature supported in the engineering format?
+
*** '''Is Supported:''' No
*** '''Description:''' [[File Classification Manifold Volume Boundary Representation - Description::]] - This field is used to describe the support or lack of support of the feature.
+
*** '''Description:''' N/A
** '''Non-manifold boundary representations:''' - Can the format support non-manifold boundary representations? Example: The engineering format STEP
+
** '''Non-manifold boundary representations:'''  
*** '''Is Supported:''' [[File Classification Non-manifold Boundary Representation - Is Supported::]] - Is the feature supported in the engineering format?
+
*** '''Is Supported:''' No
*** '''Description:''' [[File Classification Non-manifold Boundary Representation - Description::]] - This field is used to describe the support or lack of support of the feature.
+
*** '''Description:''' N/A
* '''Material transparency:''' - Can the format support transparency? Example: Does the format allow models to have a clear window in a car?
+
* '''Material transparency:'''  
** '''Is Supported:''' [[File Classification Material Transparency - Is Supported::]] - Is the feature supported in the engineering format?
+
** '''Is Supported:''' Yes
** '''Description:''' [[File Classification Material Transparency - Description::]] - This field is used to describe the support or lack of support of the feature.
+
** '''Description:''' N/A
  
 
'''References:''' Paul Bourke, "The University of Western Australia", ["http://local.wasp.uwa.edu.au/~pbourke/dataformats/ply/", December 2010]
 
'''References:''' Paul Bourke, "The University of Western Australia", ["http://local.wasp.uwa.edu.au/~pbourke/dataformats/ply/", December 2010]

Latest revision as of 18:12, 15 February 2010

Title(s): 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:

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: The Stanford 3D Scanning Repository [[6]]

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 [[7]]

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

Typical use:CAD/CAM

File classification:

  • Type {Binary, Text}: Both
  • Raster data:
    • Raster data 2D:
      • Is Supported: No
      • Description: N/A
    • Raster data 3D:
      • Is Supported: No
      • Description: N/A
  • Geometric representation:
    • Implicit representation:
      • Implicit surfaces:
        • Is Supported: No
        • Description: N/A
      • Implicit curves:
        • Is Supported: No
        • Description: None
      • Point set:
        • Is Supported: Yes
        • Description: The typical information in a PLY file contains just two elements, the (x,y,z) triples for vertices and the vertex indices for each face.
    • Mesh:
      • Manifold surface meshes:
        • Is Supported: No
        • Description: N/A
      • Manifold volume meshes:
        • Is Supported: No
        • Description: N/A
      • Non-manifold meshes:
        • Is Supported: No
        • Description: N/A
    • Parametric representation:
      • Parametric surfaces:
        • Is Supported: No
        • Description: It does not include parametric patches, quadric surfaces, constructive solid geometry operations, triangle strips, polygons with holes, or texture descriptions.
      • Parametric curves:
        • Is Supported: No
        • Description: It does not include parametric patches, quadric surfaces, constructive solid geometry operations, triangle strips, polygons with holes, or texture descriptions.
    • Contour sets:
      • Is Supported: No
      • Description: It does not include parametric patches, quadric surfaces, constructive solid geometry operations, triangle strips, polygons with holes, or texture descriptions.
    • NURBS:
      • Is Supported: No
      • Description: N/A
  • Multi-resolution models:
    • Is Supported: No
    • Description: M/A
  • Dynamics:
    • Kinematics:
      • Is Supported: No
      • Description: N/A
    • Assembly:
      • Is Supported: No
      • Description: N/A
    • Force(s):
      • Is Supported: No
      • Description: N/A
  • Boundary representation
    • Manifold surface boundary representations:
      • Is Supported: No
      • Description: N/A
    • Manifold volume boundary representations:
      • Is Supported: No
      • Description: N/A
    • Non-manifold boundary representations:
      • Is Supported: No
      • Description: N/A
  • Material transparency:
    • Is Supported: Yes
    • Description: N/A

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

Personal tools