stringtranslate.com

PLY (formato de archivo)

PLY es un formato de archivo informático conocido como formato de archivo de polígonos o formato de triángulo de Stanford . Fue diseñado principalmente para almacenar datos tridimensionales de escáneres 3D. El formato de almacenamiento de datos admite una descripción relativamente simple de un solo objeto como una lista de polígonos nominalmente planos. Se puede almacenar una variedad de propiedades, incluidos el color y la transparencia, las normales de superficie, las coordenadas de textura y los valores de confianza de los datos. El formato permite tener diferentes propiedades para la parte frontal y posterior de un polígono.

Hay dos versiones del formato de archivo , una en ASCII y la otra en binario .

El formato del archivo

Un archivo Ply comienza con el atributo "header", que especifica los elementos de una malla y sus tipos, seguido de la lista de elementos en sí. Los elementos suelen ser vértices y caras, pero pueden incluir otras entidades como bordes, muestras de mapas de rango y tiras de triángulos.

El encabezado de los archivos ASCII y binarios es texto ASCII. Solo los datos numéricos que siguen al encabezado son diferentes entre las dos versiones. El encabezado siempre comienza con un " número mágico ", una línea que contiene:

capa

que identifica el archivo como un archivo PLY. La segunda línea indica de qué variación del formato PLY se trata. Debe ser una de las siguientes:

formato ascii 1.0formato binary_little_endian 1.0formato binary_big_endian 1.0

Las futuras versiones del estándar cambiarán el número de revisión al final, pero la 1.0 es la única versión actualmente en uso.

Los comentarios se pueden colocar en el encabezado utilizando la palabra commentque aparece al principio de la línea. Todo lo que se encuentre desde allí hasta el final de la línea se debe ignorar. Por ejemplo:

comentario ¡Esto es un comentario!

La elementpalabra clave introduce una descripción de cómo se almacenan algunos elementos de datos particulares y cuántos hay. Por lo tanto, en un archivo donde hay 12 vértices, cada uno representado como un triple de punto flotante (X, Y, Z), uno esperaría ver:

vértice del elemento 12propiedad flotante xpropiedad flotante ypropiedad flotante z

Otras propertylíneas pueden indicar que los colores u otros elementos de datos se almacenan en cada vértice e indicar el tipo de datos de esa información. En cuanto al tipo de datos, existen dos variantes según la fuente del archivo ply. El tipo se puede especificar con uno de char uchar short ushort int uint float double, o uno de int8 uint8 int16 uint16 int32 uint32 float32 float64. Para un objeto con diez caras poligonales, se podría ver:

elemento cara 10lista de propiedades uchar int vertex_index

Las implementaciones de PLY varían enormemente en los nombres de las propiedades. vertex_indicesse utiliza con más frecuencia que vertex_index, por ejemplo, en Blender y VTK . La especificación extendida enumera una "Lista principal (obligatoria)", una "Segunda lista (usada con frecuencia)" y una "Tercera lista (extensiones sugeridas)" de nombres de propiedades. [2]

La palabra listindica que los datos son una lista de valores, el primero de los cuales es el número de entradas de la lista (representado como 'uchar' en este caso). En este ejemplo, cada entrada de la lista se representa como un 'int'. Al final del encabezado, siempre debe haber la línea:

fin_encabezado

Formato ASCII o binario

En la versión ASCII del formato, los vértices y las caras se describen uno por línea con los números separados por un espacio en blanco. En la versión binaria, los datos simplemente se empaquetan juntos en el orden endiannessespecificado en el encabezado y con los tipos de datos indicados en los propertyregistros. Para la property list...representación común de polígonos, el primer número para ese elemento es el número de vértices que tiene el polígono y los números restantes son los índices de esos vértices en la lista de vértices anterior.

Historia

El formato PLY fue desarrollado a mediados de los años 90 por Greg Turk y otros en el laboratorio de gráficos de Stanford bajo la dirección de Marc Levoy. Su diseño se inspiró en el formato .obj de Wavefront . Sin embargo, el formato Obj carecía de extensibilidad para propiedades y agrupaciones arbitrarias, por lo que se idearon las propertypalabras elementclave y para generalizar las nociones de vértices, caras, datos asociados y otros grupos.

Archivo de ejemplo

El siguiente es un ejemplo completo de un archivo PLY que describe una malla de cubo exportada desde la versión 4.0.2 de Blender :

capaformato ascii 1.0Comentario Creado en Blender versión 4.0.2elemento vértice 14propiedad flotante xpropiedad flotante ypropiedad flotante zpropiedad flotante nxpropiedad flotante nyPropiedad flotante en Nueva Zelandapropiedad flotante spropiedad flotante telemento cara 6lista de propiedades uchar uint vertex_indicesfin_encabezado1 1 1 0,5773503 0,5773503 0,5773503 0,625 0,5-1 1 1 -0,5773503 0,5773503 0,5773503 0,875 0,5-1 -1 1 -0,5773503 -0,5773503 0,5773503 0,875 0,751-1 1 0,5773503 -0,5773503 0,5773503 0,625 0,751 -1 -1 0,5773503 -0,5773503 -0,5773503 0,375 0,75-1 -1 1 -0,5773503 -0,5773503 0,5773503 0,625 1-1 -1 -1 -0,5773503 -0,5773503 -0,5773503 0,375 1-1 -1 -1 -0,5773503 -0,5773503 -0,5773503 0,375 0-1 -1 1 -0,5773503 -0,5773503 0,5773503 0,625 0-1 1 1 -0,5773503 0,5773503 0,5773503 0,625 0,25-1 1 -1 -0,5773503 0,5773503 -0,5773503 0,375 0,25-1 1 -1 -0,5773503 0,5773503 -0,5773503 0,125 0,51 1 -1 0,5773503 0,5773503 -0,5773503 0,375 0,5-1 -1 -1 -0,5773503 -0,5773503 -0,5773503 0,125 0,754 0 1 2 34 4 3 5 64 7 8 9 104 11 12 4 134 12 0 3 44 10 9 0 12

El archivo comienza con el encabezado que define un archivo en formato ASCII. Hay 14 vértices (6 caras * 4 vértices - 10 vértices guardados debido a la fusión) y 6 caras en total. Después del encabezado, se enumeran los datos de vértices y caras. La lista de vértices contiene la posición (x, y, z), las normales (nx, ny, nz) y las coordenadas de textura (s, t) para cada uno de los 14 vértices. La lista de caras contiene el recuento de vértices (4) y los índices de vértices para cada una de las 6 caras cuadriláteras.

Véase también

Software de código abierto

Referencias

  1. ^ Greg Turk. "El formato de archivo de polígonos PLY". Archivado desde el original el 4 de diciembre de 2016.
  2. ^ Greg Turk. "El formato de archivo de polígono PLY (extendido)" (PDF) .

Enlaces externos