E57 el "PDF de las nubes de puntos" un archivo abierto que contiene millones de puntos 3D medidos, sus colores y las fotos panorámicas que los acompañan.
Base de conocimientos · formatos de archivo

E57, explicado: el "PDF de las nubes de puntos"

Imagine fotografiar una habitación — pero, en lugar de una imagen plana, capturaras la posición exacta de un millón de diminutos puntos que cubren cada pared, silla y taza de café. Haz girar un láser lo bastante rápido y mide a qué distancia está todo, y eso es lo que obtienes: una nube de puntos, una "fotografía" 3D hecha de puntos medidos. Este es un recorrido amable y sin tecnicismos por lo que realmente hay dentro de un archivo E57 — y un truco ingenioso que nuestro propio software hace con él.

¿Por qué hace falta un formato especial?

Una foto normal no es más que una cuadrícula de píxeles de colores — sencillo. Un escaneo 3D es más complejo. Para cada uno de sus millones de puntos quieres guardar dónde está en el espacio (tres números: X, Y, Z), qué color tiene, con qué intensidad rebotó el láser (su intensidad — piensa en una "foto láser" en blanco y negro) y, a menudo, las fotos panorámicas que el escáner tomó al mismo tiempo.

Ahora imagina que una persona escanea con un Faro, un colega usa un Leica y el cliente abre el resultado en software de Autodesk. Tres máquinas, tres programas — y todos necesitan leer el mismo archivo, años después, sin rogarle a un proveedor un decodificador secreto. Ese es el problema que resuelve E57. Es un estándar abierto y neutral respecto al proveedor (publicado como ASTM E2807 y basado en la biblioteca de código abierto libE57). La gente lo llama el "PDF de las nubes de puntos": un archivo portátil que todos saben leer.

La gran idea: un mapa de texto con músculo binario

En esencia, un archivo E57 es un híbrido de dos cosas muy distintas unidas entre sí: un pequeño fragmento de XML — texto simple y legible para humanos que actúa como índice — y grandes bloques de datos binarios que contienen los millones de números en bruto, almacenados de forma compacta para ganar velocidad.

Anatomía de un archivo E57 un archivo = un pequeño encabezado + grandes bloques binarios + un "índice" de texto al final Encabezado 48 bytes Datos de puntos (binarios) millones de X, Y, Z + color Imágenes (binarias) panoramas JPEG / PNG incrustados Sección XML "mapa" legible de todo inicio del archivo final del archivo el encabezado registra exactamente dónde empieza el mapa XML (xmlPhysicalOffset) El software abre primero el encabezado de 48 bytes — dice "el mapa está en el byte N". Salta al mapa XML, lee lo que hay dentro y luego va directamente al bloque binario que necesita. No hace falta leer gigabytes para encontrar un escaneo — el mapa hace que el acceso sea instantáneo.
Un archivo E57 se lee de atrás hacia delante: un encabezado de 48 bytes apunta al "mapa" XML del final, que a su vez indica dónde está cada bloque binario.

¿Por qué poner el mapa al final? Porque mientras un escáner está escribiendo el archivo todavía no sabe cuánto ocupará todo, así que transmite primero los datos en bruto y escribe un resumen ordenado cuando termina. La ventaja es enorme: para extraer un escaneo de un archivo de 20 gigabytes, el software lee el pequeño encabezado, salta al mapa XML, encuentra la línea que dice "el escaneo #3 está en el byte 4.812.000.000" y va directo allí.

Red de seguridad discreta: todo el archivo se divide en "páginas" de 1024 bytes, y cada página reserva sus últimos 4 bytes para una suma de verificación — una huella que permite al software detectar si el archivo se corrompió.

Todo cuelga de una sola raíz

Abra ese mapa XML y encontrará un árbol — exactamente como las carpetas de su ordenador. Hay un único root, y dos ramas hacen la mayor parte del trabajo: data3D, una lista numerada de escaneos, e images2D, una lista numerada de fotos (normalmente los panoramas de 360° que tomó el escáner).

El árbol E57: todo cuelga de una raíz la sección XML es un árbol de carpetas: abre la raíz y desciende hasta cualquier escaneo o foto root data3D una lista de escaneos [ scan 0, scan 1, ... ] metadatos quién / cuándo sistema de coordenadas images2D una lista de fotos [ pano 0, pano 1, ... ] scan 0 puntos + pose scan 1 … points prototype X Y Z · R G B · intensity pose = dónde estaba el escáner posición (x,y,z) + rotación (cuaternión) cada foto también lleva su propia pose, para que el visor sepa dónde colocarla
Cada escaneo y foto lleva su propia pose — la posición del escáner más su dirección de orientación (almacenada como un cuaternión) — y eso es lo que permite que varios escaneos encajen en un solo modelo alineado.

Dos formas de escribir un punto

Un escáner láser no piensa realmente en X, Y, Z. Se queda en un punto y gira, y para cada punto conoce tres cosas: alcance (cuánto recorrió el haz), azimut (cuánto gira alrededor, de izquierda a derecha) y elevación (cuánto sube o baja). Esas son coordenadas esféricas — la lengua materna del escáner. La mayoría del software, sin embargo, prefiere las coordenadas cartesianas X, Y, Z. E57 guarda ambas sin problema, y convertir una en otra es un poco de trigonometría rápida.

Dos formas de escribir un punto un escáner piensa en ángulos & distancia — E57 puede almacenar puntos de cualquiera de las dos formas Esférico — cómo ve el sensor escáner el punto alcance (distancia) acimut (izquierda-derecha) + elevación (arriba-abajo) alcance · acimut · elevación natural para un escáner láser giratorio cartesiano — como lo quiere el software Z X Y el punto X · Y · Z coordenadas de cuadrícula sencillas que todos entienden rápido trigonometría
Los puntos se guardan en una tabla compacta que E57 llama CompressedVector: el XML define las columnas una sola vez (X, Y, Z, color, intensidad...), y luego el bloque binario contiene fila tras fila de valores empaquetados de forma compacta.

Tres tipos de foto incrustada

Las fotos de images2D no son enlaces a archivos en alguna carpeta — el JPEG o PNG real está guardado dentro del E57. Y hay más de un tipo de foto incrustada. E57 envuelve cada una en una "representación" que le dice al software cuánto puede confiar en la imagen desde el punto de vista geométrico. La diferencia se reduce a una sola pregunta: ¿qué tan completamente está descrita la cámara?

Tres formas en que E57 almacena una foto mismo archivo, tres "representaciones" — difieren en cuánto se describe la cámara sphericalRepresentation un panorama completo de 360° × 180° envuelto sobre una esfera Medible ✓ cada píxel = una dirección conocida dirección desde el escáner el "mirar alrededor desde aquí" panorama que producen la mayoría de los escáneres pinholeRepresentation objetivo foto plana Medible ✓ una foto normal con objetivo, totalmente calibrada la distancia focal + el tamaño del sensor permiten al software conocer el ángulo de cada píxel visualReferenceRepresentation solo una imagen No sirve para medir ✗ sin ningún modelo de cámara - puramente para el ojo humano "así es como se veía el lugar " — una miniatura, una foto del lugar
Un detalle práctico: una sola entrada de imagen puede contener tanto un raster preciso (estenopeico o esférico) como una versión de referencia visual sencilla — así el visor muestra la imagen amigable mientras conserva la medible para los cálculos.
  • sphericalRepresentation — un panorama completo de 360° × 180°, la familiar imagen estirada equirectangular 2:1. Como la proyección es conocida, cada píxel corresponde a una dirección exacta, así que encaja perfectamente con la nube. Este es el camino principal en nuestro flujo: lo leemos, ajustamos el lienzo a un 2:1 limpio y lo pasamos al visor de panoramas.
  • pinholeRepresentation — una foto con una lente normal, descrita por el clásico modelo de cámara estenopeica (distancia focal, tamaño del sensor, centro óptico). Eso basta para que el software conozca también la dirección de cada píxel, aunque con un campo de visión más estrecho. En la práctica, así es sobre todo como funciona Leica: escribe un cubemap ya preparado — las seis caras planas del cubo mirando hacia fuera — directamente en el E57, y nuestra ruta de caras del cubo las une exactamente en un panorama completo. Es uno de los casos más fáciles de convertir de nuevo en una imagen 360° limpia.
  • visualReferenceRepresentation — una foto sin ningún modelo de cámara, explícitamente "solo para el ojo humano". No se puede medir con ella ni proyectarla sobre la nube; es solo una imagen de referencia. Nuestro importador las conserva como comentarios adjuntos en lugar de colocarlas en 3D.

Aquí está el truco. sphericalRepresentation es la opción más popular, pero es sorprendentemente fácil equivocarse de forma sutil, y por eso el mismo escaneo puede verse distinto de un programa a otro.

  • Las zonas ciegas se recortan. Todo escáner tiene un punto que no puede ver — clásicamente justo hacia abajo, donde está su propio trípode. Algunos exportadores simplemente recortan el panorama ahí, dejando un hueco o una altura fuera de estándar.
  • Píxeles rectangulares. Un panorama limpio tiene píxeles cuadrados (pixelWidth = pixelHeight); algunos archivos no los tienen, así que la imagen parece estirada hasta que se reescala.
  • La dirección incorrecta es “forward”. La rotación almacenada con un panorama indica qué dirección queda en el centro de la imagen, y no hay un acuerdo universal sobre lo que siquiera significa “forward” — algunos exportadores la orientan al norte, otros al este. Un pequeño error aquí gira toda la vista.
  • Las herramientas de edición pueden perder datos. Volver a guardar un E57 a través de CloudCompare, por ejemplo, puede eliminar la posición de captura de las imágenes pinholeRepresentation — las fotos sobreviven, pero ya no saben dónde se tomaron.

En resumen: en la práctica, distinto software suele mostrar el mismo E57 de forma diferente. Nuestro importador intenta suavizar las peculiaridades habituales — cuadrar los píxeles rectangulares, corregir la orientación del panorama y estandarizar el lienzo 2:1 — para que un tour se vea bien sin importar qué herramienta escribió el archivo.

Cuando el panorama está integrado en la propia nube

Aquí tienes una de las ideas más elegantes — y menos apreciadas — de todo el formato. Además de los panoramas almacenados como imágenes separadas, un panorama también puede esconderse dentro de la propia nube de puntos. Un escáner láser no dispara al azar: recorre una cuadrícula ordenada de ángulos, fila por fila, columna por columna, como un televisor antiguo pintando una pantalla. E57 puede conservar ese orden: cada punto recibe un rowIndex y un columnIndex que indican de qué celda de la cuadrícula procede. Un escaneo almacenado así se llama estructurado.

Cuando el panorama está integrado en la nube un escaneo "estructurado" almacena sus puntos en una cuadrícula — así que la nube ya es una imagen el escaneo, tal como se almacena: filas × columnas columna → acimut (0° ... 360° alrededor) fila → elevación (arriba ... abajo) cielo: el láser no golpeó nada puntos ficticios de relleno (alcance = 0 / "sin retorno" ) leer la cuadrícula en orden = píxeles → panorama 2:1 instantáneo, sin reproyección ancho de la cuadrícula (columnMaximum + 1) = ancho del panorama Como cada punto recuerda su rowIndex y columnIndex, la imagen y la geometría 3D son el mismo objeto. Los puntos ficticios del cielo son el precio de mantener la cuadrícula como un rectángulo perfecto — el software real sabe omitirlos.
En un escaneo estructurado, la nube y el panorama son el mismo objeto: la imagen no es una foto aparte, sino la propia disposición de los puntos.

La ventaja: si los puntos están sobre una cuadrícula, la nube ya es una imagen. Léela fila por fila y cada punto cae en un píxel: el panorama vuelve sin ninguna reproyección ingeniosa. El archivo incluso registra el tamaño de la cuadrícula en sus indexBounds (columnMaximum, rowMaximum), de modo que el software conoce la resolución de antemano: nuestro sintetizador toma el ancho de salida directamente de columnMaximum + 1.

Pero una cuadrícula tiene que ser un rectángulo perfecto, y el mundo real no lo es. ¿Qué pasa con las direcciones en las que el haz salió hacia el cielo abierto y no volvió nada? La respuesta es pragmática: rellenar esas celdas con puntos ficticios — muy a menudo con un alcance de exactamente 0, es decir, "haz enviado, nada impactado". Mantienen el rectángulo completo, pero no son geometría real, así que un lector atento debe apartarlos. El nuestro marca cada punto de alcance cero, lo coloca a una distancia ficticia muy lejana para que la matemática de la cuadrícula siga funcionando y nunca trata esos puntos fantasma del cielo como superficies reales cuando construye el mapa de profundidad o exporta la nube.

Convertir un escaneo de nuevo en una foto en la que puedas entrar

No todos los escaneos llegan en una cuadrícula ya preparada: algunos son solo un conjunto suelto y no estructurado de puntos. La buena noticia: el panorama todavía se puede recuperar, y aquí es donde el formato se cruza con nuestro propio trabajo. Porque un escaneo es en realidad "una esfera completa de puntos medidos como ángulos alrededor de un único punto", así que puedes desplegarlo en un panorama plano.

De una nube de puntos a una foto en la que puedes mirar alrededor el truco detrás de este proyecto: desplegar la esfera de puntos en un panorama plano 1 · el escaneo te rodea cada punto tiene un ángulo desde el centro desplegar 2 · los ángulos se convierten en una cuadrícula plana arriba ↕ abajo ← 360° completos de izquierda a derecha → rellenar huecos 3 · tres imágenes panorama en color intensidad (blanco y negro) mapa de profundidad La nube de puntos es el panorama — medida en ángulos, se despliega en una imagen plana 2:1. El color pinta los píxeles, la intensidad del láser aporta una vista en escala de grises nítida y la distancia se convierte en un mapa de profundidad.
Una nube, tres imágenes: el color pinta los píxeles, la intensidad del láser aporta una escala de grises nítida y sin sombras, y la distancia se convierte en un mapa de profundidad, que es lo que hace que un panorama plano sea medible y recorrible.

Anota el ángulo de cada punto, deja que izquierda-derecha recorra el ancho de la imagen y arriba-abajo su altura, y cada punto cae en un píxel: el familiar panorama equirectangular 2:1 estirado. El mapa de profundidad es el ingrediente mágico: con una distancia detrás de cada píxel, un panorama que parece plano se vuelve medible y recorrible: haz clic en dos puntos de una pared y el software conoce la distancia real, porque nunca olvidó los datos 3D que hay debajo.

Entonces, ¿por qué importa E57?

Porque es el punto de encuentro neutral. Un topógrafo escanea un puente con una marca de hardware, un ingeniero lo abre en otro software y un arquitecto lo archiva para los próximos veinte años: E57 es el único archivo en el que los tres pueden confiar, sin que ningún proveedor tenga las llaves. Mantiene juntos el color, la intensidad, la geometría, los panoramas y las importantísimas posiciones del sensor en un solo lugar, como un estándar abierto que cualquiera puede implementar.

Un último dato curioso: la hora de captura dentro de un E57 se cuenta en tiempo GPS, es decir, segundos desde el 6 de enero de 1980, el momento en que se encendieron los relojes de los satélites GPS, y no desde la época informática habitual de 1970. Si te equivocas, un escaneo tomado hoy parecerá haber ocurrido en 2013.

¿Quieres profundizar más?

  • libE57.org — la biblioteca de código abierto de referencia y la base del formato.
  • ASTM E2807 — el estándar oficial.
  • libE57Format · Image2D — definiciones exactas de las representaciones esférica, de cámara estenopeica y de referencia visual.
  • Paul Bourke’s E57 notes — un desglose técnico conciso del encabezado y la estructura.
Asistente de IA
¡Hola! No dudes en hacer cualquier pregunta sobre tours virtuales, nubes de puntos, 3D Gaussian Splatting, modelos 3D, uso del sitio web, pagos y más. Encontraré la respuesta o reenviaré tu pregunta a nuestro equipo de soporte.
Nuestro IA no pudo responder a su pregunta. Nuestro equipo de soporte estará encantado de responder a su pregunta. Por favor, proporcione su dirección de correo electrónico. No usamos el correo electrónico para boletines. Solo lo usamos para responder a su pregunta.