Convertir PLY a GLTF

Aquí puedes convertir PLY a GLTF gratis y sin cuenta: suelta el archivo arriba y en un par de segundos tienes el resultado listo para descargar. La conversión ocurre en tu propio navegador, así que el archivo no se sube nunca. Funciona igual en Windows, macOS y Linux que en iPhone y Android, y sigue funcionando aunque cortes la conexión.

  • Dónde se ejecuta En tu navegador. El archivo no se sube.
  • Reconstruido GLTF funciona de otra manera que PLY. No es la degradación gradual de un códec con pérdida: lo que GLTF puede expresar se reproduce fielmente, y lo que no tiene equivalente allí no sobrevive en absoluto.
  • Límite de tamaño Hasta 100 MB por archivo, gratis y sin cuenta.
  • Conviene saberlo Solo la geometría. Los materiales, los colores, las texturas y la animación no viajan, y un modelo colocado varias veces vuelve con cada copia fijada en su propia posición.

Hasta 100 archivos a la vez. Mezclar formatos no es problema.

Ningún navegador abre un PLY, y ese es todo el motivo

Si navegas hasta un archivo PLY, el navegador lo descarga. No hay ninguna etiqueta, ningún atributo ni ningún visor incorporado que lo muestre. glTF es el formato en el que se puso de acuerdo la web para el 3D, y three.js, Babylon.js y el elemento model-viewer lo cargan como primera opción.

Es una decisión de destino y no de calidad. El PLY no es un archivo peor: es un archivo para otra sala. Los escáneres, CloudCompare, MeshLab y cualquier biblioteca de procesado geométrico lo hablan con fluidez, y nada de eso sirve cuando el requisito es una página que alguien abre en el móvil.

El color que hizo que fuera un PLY no llega al glTF

Hay que decirlo antes que nada porque decide si merece la pena continuar. Un escaneo por fotogrametría o por luz estructurada se guarda como PLY en buena medida porque el formato admite propiedades de color rojo, verde y azul en cada vértice, que es como una captura lleva su apariencia sin necesitar un mapa de textura.

El lector que se usa aquí toma las coordenadas x, y y z de cada vértice e ignora todas las demás propiedades, y el escritor emite posiciones e índices y nada más. La estructura intermedia por la que pasa el modelo no tiene sitio donde poner un color, una coordenada de textura, una normal ni un fotograma de animación. Así que una cerámica policromada llega al visor como una superficie gris sin textura.

Cuándo esa pérdida da igual y cuándo lo estropea todo

Da exactamente igual en un escaneo geométrico: una pieza de recambio, un molde, una comprobación dimensional, un modelo para imprimir. Ahí la forma es toda la información y no se ha perdido nada en absoluto.

Lo estropea todo en una digitalización de patrimonio, que es la razón más habitual por la que en español alguien tiene un PLY delante. Un museo, un archivo o un equipo de un yacimiento escanean un objeto precisamente porque su superficie —el vidriado, el pigmento, la pátina, la policromía de un retablo— es la mitad del objeto. Si ese es tu caso, la ruta no es una conversión de geometría, sino una exportación con textura horneada desde tu programa de escaneo o desde MeshLab.

Una nube de puntos se rechaza en lugar de convertirse

Un escáner produce puntos antes de producir superficies, y un PLY con vértices y sin elemento de caras es una nube de puntos. La conversión se detiene y explica el motivo: el archivo contiene puntos pero no caras, y convertir puntos en una superficie es reconstrucción y no conversión, así que hace falta una herramienta de modelado.

Es un rechazo y no un fallo, y es la respuesta honesta. La reconstrucción implica decisiones sobre suavizado, profundidad y relleno de agujeros que cambian el resultado de forma sustancial, y ningún conversor debería tomarlas en silencio. La reconstrucción de superficie de Poisson de MeshLab es el camino habitual y tarda unos minutos; la mayoría de las aplicaciones de escaneo también exportan directamente una malla reconstruida. Convierte esa.

La densidad del escaneo contra lo que una página puede cargar

Las capturas en bruto son densas por diseño: un escáner de mano produce con normalidad entre uno y cinco millones de triángulos para un objeto del tamaño de un zapato, porque la malla se deriva de la frecuencia de muestreo y no de lo que la forma necesita. Una página web tiene un presupuesto muy distinto, medido en decenas de miles de triángulos y no en millones.

Simplifica antes de convertir, no después. La decimación por colapso de aristas de MeshLab con un número de caras objetivo, o el modificador de decimación de Blender, conservan bien la silueta en una sola pasada. Apunta a una cifra y comprueba el resultado al tamaño real al que aparecerá en la página: un escaneo reducido en un noventa y cinco por ciento es con frecuencia indistinguible a 600 píxeles de ancho. Hacerlo primero acelera además todos los pasos posteriores, incluido este.

El documento glTF que sale de un PLY

Una malla, una primitiva, modo de triángulos. Las posiciones se escriben como un accesor de vectores de tres componentes en coma flotante y los índices como un accesor escalar de enteros sin signo, cada uno con su vista de búfer y ambos apoyados en un único búfer.

El accesor de posiciones lleva además sus valores mínimo y máximo, porque la especificación los exige y porque los visores los usan para encuadrar el modelo: un archivo sin ellos se abre reducido a nada en varios de ellos. Esos seis números son también la comprobación más rápida que existe: abre el JSON, léelos y ya tienes la caja envolvente en las unidades del origen sin haber cargado nada.

Los vértices no se sueldan, porque un PLY ya viene indexado

Algunos orígenes de este sitio se sueldan al entrar. Un STL guarda tres vértices sin compartir por triángulo y produciría, si no se hiciera nada, un archivo varias veces mayor de lo necesario. Un PLY ya guarda una lista de vértices indexada, así que las posiciones y las caras se copian tal cual estaban.

La consecuencia útil es que el número de vértices del glTF coincide con el que declara la cabecera del PLY, lo cual hace que la conversión sea fácil de verificar de un vistazo. También significa que cualquier duplicado que el escáner o la reconstrucción hayan dejado ahí sigue estando. Las caras con más de tres esquinas se triangulan en abanico, que es correcto para los cuadriláteros convexos que produce una reconstrucción y puede dar problemas con un polígono cóncavo: raro en datos de escaneo, y conviene saberlo si la malla venía de un programa de modelado.

Toma el GLB para publicar y el glTF para leer

Esta conversión produce un único archivo autónomo, porque una conversión produce una descarga y un .gltf con un .bin al lado serían dos. Los datos de vértices van por tanto codificados en base64 dentro de una URI de datos, y base64 cuesta cuatro caracteres por cada tres bytes, en torno a un tercio más, sobre un JSON escrito con sangría de dos espacios.

Para un archivo que vas a abrir en un editor es un precio razonable. Para un archivo que descarga cada visitante no lo es, y la conversión a GLB entrega la misma geometría en un solo archivo binario sin ese sobrecoste. Usa glTF cuando quieras leer los accesores, validar el documento o pasárselo a una herramienta de línea de órdenes; usa GLB cuando el destino sea una página.

Ni el PLY ni el glTF dicen la escala ni cuál es el arriba

El PLY no declara unidad ni orientación. El glTF tampoco declara unidad, aunque todo su ecosistema da por supuesto que una unidad es un metro y que el eje vertical es el Y. Los programas de escaneo no son coherentes en ninguna de las dos cosas: los milímetros son frecuentes, el eje Z hacia arriba también, y unos centran el modelo mientras otros lo dejan donde ocurrió la captura.

Cuenta con rotar y escalar al llegar, y hazlo en la escena del visor y no editando el archivo, lo cual mantiene el origen honesto. En model-viewer se resuelve con un atributo de orientación y otro de escala; en three.js son dos llamadas sobre el objeto cargado. Establece los números una vez contra una medida que puedas verificar en la pieza real y anótalos: todos los escaneos del mismo aparato necesitarán la misma pareja.

Iluminar una malla gris para que siga pareciendo un objeto

Como el glTF no lleva material, todo lo que ve el visitante procede de la iluminación del visor. Un gris plano bajo una sola luz parece una mancha; la misma malla bajo un mapa de entorno con algo de oclusión ambiental parece una pieza tallada, y esa diferencia está entera en la página y no en el archivo.

El elemento model-viewer trae iluminación de entorno neutra y un atributo de intensidad de sombra que cuesta una línea y hace casi todo el trabajo. En three.js el equivalente es un mapa de entorno más una luz de hemisferio. Como la malla convertida no lleva normales de vértice, el visor las calcula, lo cual produce un sombreado facetado en un escaneo decimado: normalmente es deseable porque enseña la superficie, y si prefieres lo contrario se activa el suavizado en el visor.

Lo que queda fuera además del color

Merece la pena enumerarlo de una vez, porque la lista es más larga de lo que la gente supone. No viajan los materiales, las texturas ni sus coordenadas, las normales de vértice o de cara, los colores por vértice, las cámaras, las luces, las animaciones, los esqueletos, las formas de mezcla ni el grafo de escena.

Lo que sí se conserva es la geometría de triángulos y, cuando el formato de destino tiene un sitio donde ponerlo, el nombre de cada malla. Dicho de otro modo: esta conversión responde a la pregunta «dónde están los triángulos» y a ninguna otra. Si tu archivo llevaba más que eso, ese excedente hay que llevarlo por otra ruta y con otra herramienta.

Dónde se lee el PLY mientras se convierte en glTF

En esta pestaña del navegador y con JavaScript corriente. No se descarga ningún módulo de WebAssembly, no se sube nada, no hay cuenta ni cupo diario, y la pestaña de red durante una conversión es la forma de comprobarlo en lugar de creerse esta frase.

Los escaneos son una categoría inusualmente delicada. La captura de una pieza de museo suele estar sujeta a un acuerdo sobre a dónde pueden ir los datos; la captura de una persona es biométrica en todo salvo en el nombre; y el escaneo de un componente es el diseño de alguien. El límite gratuito es de 100 MB por archivo, que es una malla decimada grande y una captura en bruto pequeña: otra razón más para simplificar antes de convertir.

Cómo convertir PLY a GLTF

  1. Suelta tu archivo PLY en esta página, o haz clic para elegir uno.
  2. Elige GLTF como destino. La conversión ocurre en tu navegador y el archivo no se sube.
  3. Descarga el archivo GLTF terminado.

PLY frente a GLTF: qué cambia

PLY frente a GLTF
PLYGLTF
Nombre completoPolygon File FormatGL Transmission Format
Extensión de archivo.ply.gltf
Tipo de mediomodel/plymodel/gltf+json
Publicado por primera vez19942015
Publicado porStanford UniversityKhronos Group
EspecificaciónglTF 2.0
LicenciaEstándar abiertoEstándar abierto
Situación actualVigenteVigente
Se abre en el navegadorNingún navegadorNingún navegador
Considerado en su lugarOBJ, STLGLB, OBJ

Abrir el resultado

Blender lee tanto PLY como GLTF, así que puedes comparar el resultado con el original sin un segundo programa.

Para qué sirve cada formato

Los dos apuntan a trabajos distintos: PLY a el escaneo y mover datos entre programas y GLTF a la web y entregar un archivo terminado. Conviene sopesarlo antes, porque la razón de ser de uno suele ser la razón por la que el otro resulta incómodo.

GLTF viene de Khronos Group y es de 2015, recogido en glTF 2.0. Blender, three.js y Babylon.js lo leen.

PLY se publicó en 1994 y GLTF en 2015. El más antiguo suele ser el archivo más seguro para entregar; el más reciente hace lo mismo con menos bytes.

De PLY a GLTF: preguntas frecuentes

¿Se sube a algún sitio mi archivo PLY?

No. Esta conversión ocurre por completo en tu navegador, así que el archivo no sale de tu dispositivo. Puedes comprobarlo tú: abre la pestaña de red de las herramientas de desarrollo y convierte algo. Verás la propia página y las peticiones de estadística y publicidad con las que se paga este servicio, y ni una sola que lleve tu archivo.

¿Convertir PLY a GLTF es gratis?

Sí. Sin cuenta, sin marca de agua y sin cupo diario que se gaste: se ejecuta en tu propio equipo, así que puedes volver tantas veces como quieras. El navegador procesa archivos de hasta 100 MB, 100 a la vez.

¿Se pierde calidad al convertir PLY a GLTF?

PLY y GLTF describen el contenido de maneras radicalmente distintas. La conversión es por tanto una reconstrucción y no una copia: fiel, pero no idéntica byte a byte. Solo la geometría. Los materiales, los colores, las texturas y la animación no viajan, y un modelo colocado varias veces vuelve con cada copia fijada en su propia posición.

¿Tengo que instalar algo para abrir un archivo GLTF?

Para la conversión no: ocurre en el navegador que ya tienes abierto. Para abrir el resultado necesitas después el programa con el que tu dispositivo muestra normalmente GL Transmission Format.

Más sobre estos formatos