Con el complemento LiDAR Point Cloud puedes importar, visualizar y editar nubes de puntos en Unreal Engine. El complemento también es compatible con una variedad de técnicas de coloración y sombreado. Gracias a sus múltiples optimizaciones y a la escala de LOD (nivel de detalle) dinámica, puedes trabajar con grandes conjuntos de datos sin pérdida significativa de rendimiento, incluso en tiempo de ejecución.
Formatos de archivo de nube de puntos compatibles
Una nube de puntos es un conjunto de puntos de datos en el que cada punto viene definido por sus coordenadas XYZ y, opcionalmente, por su color. Unreal Engine es compatible con los siguientes formatos de archivo de nube de puntos:
| Extensión | Descripción |
|---|---|
*.xyz, *.pts, *.txt |
Tipos generales de formatos de archivo de nube de puntos ASCII que pueden contener:
La notación puede ser flotante (como 0.00892855) o científica (como 8.92855E-03). |
*.las, *.laz |
LAS es un formato de archivo público para el intercambio de datos de nubes de puntos tridimensionales entre usuarios. Aunque se desarrolló principalmente para el intercambio de datos de nubes de puntos LiDAR, este formato es compatible con cualquier grupo irregular tridimensional de X, Y y Z. Este formato de archivo binario es una alternativa a los sistemas propios, así como a los sistemas genéricos de intercambio de archivos ASCII, y se usa mucho. Los archivos LAZ son archivos LAS comprimidos. Son mucho más pequeños, pero su importación también es proporcionalmente más lenta. Unreal Engine es compatible con archivos LAS y LAZ de 8, 12 y 16 bits. |
*.e57 |
E57 es un formato de archivo compacto y de código abierto que almacena e intercambia datos de imágenes en 3D, como nubes de puntos, imágenes y metadatos. |
Importación y exportación de nubes de puntos
Para importar un recurso de nube de puntos puedes usar uno de estos métodos:
-
Arrastra una nube de puntos guardada en un formato de archivo compatible a tu explorador de contenido.
-
En el explorador de contenido, haz clic en Añadir/Importar y selecciona el archivo que quieras.
Al importar, los metros se convierten a unidades de Unreal (UU), donde 1 UU = 1 cm. Para usar una escala de importación personalizada, abre la configuración del proyecto del complemento LiDAR Point Cloud y cambia el valor de Importar escala.
Puedes exportar un recurso de nube de puntos a ASCII o LAS con la herramienta de exportación de Unreal. En el explorador de contenido, haz clic derecho en el recurso y selecciona Acciones de recursos > Exportar.
Al exportar, las unidades de Unreal Engine se vuelven a convertir a metros (multiplicando el valor por 0.01). Para usar una escala de exportación personalizada, abre la configuración del proyecto del complemento LiDAR Point Cloud y cambia el valor de Exportar escala.
Rendimiento
El rendimiento viene determinado principalmente por la estimación global de puntos, que establece el número máximo de puntos que se pueden mostrar a la vez. Usar un estimación compartida en lugar de una estimación por componente permite renderizar muchos recursos de forma eficiente a la vez, ya que el sistema seleccionará los mejores puntos de entre todos los componentes visibles. Cuanto mayor sea el estimación de puntos, mayor será la calidad con un mayor coste de rendimiento. El estimación de puntos global ahorra memoria de vídeo y mejora la tasa de fotogramas, pero no reduce el uso general de RAM.
Puedes fijar la estimación global de puntos mediante variables de consola. Cuanto mayor sea el estimación de puntos, más densa será la nube de puntos.
Para obtener más información, consulta la sección de variables de consola de la página Referencia del complemento LiDAR Point Cloud.
Transmisión bajo demanda
Al abrir una nube de puntos, Unreal Engine solo carga la información necesaria del encabezado y transmite los datos en bloque según sea necesario. Como resultado, los recursos se cargan más rápido y se reduce el consumo total de RAM.
Los recursos recién importados se guardarán en la memoria del sistema y no podrán aprovechar la función de transmisión hasta que se guarden. Una vez guardados, el editor liberará la memoria para ese recurso.
Cargar grandes cantidades de archivos de nube de puntos en el motor requiere una cantidad significativa de RAM a la hora de analizar los datos de la nube de puntos y procesarlos como recursos de Unreal Engine. Por ejemplo, estos datos LiDAR públicos de la ciudad de Montreal cargados en Unreal Engine tienen los siguientes indicadores de rendimiento:
| Archivos LAS individuales | Aprox. 684 teselas para un total de 253 GB en el disco |
| Uso de RAM en Unreal Engine | Aprox. 3,5 GB por un estimación de 1 millón de puntos |
| Tasa de fotogramas | 120 fps, con un estimación global de 1 millón de puntos |
| Cantidad total de puntos | Promedio de 14,3 millones de puntos por tesela de 1 km x 1 km * 621 archivos = aprox. 8900 millones de puntos |
Volúmenes de recorte
Si solo quieres mostrar una parte de los datos, pero no quieres que se elimine el resto, puedes usar un actor Volumen de recorte LiDAR. Con el Complemento LiDAR Point Cloud activado, encontrarás este actor en Colocar actor > Volumen > Volumen de recorte LiDAR.
Haz clic en la imagen para verla a tamaño completo.
Puedes configurar las propiedades de un volumen de recorte desde su panel Detalles.
Haz clic en la imagen para verla a tamaño completo.
Puedes elegir entre dos modos:
-
Recorte exterior oculta todos los datos de la nube de puntos fuera del volumen de recorte.

-
Recorte interior oculta todos los datos de la nube de puntos dentro del volumen de recorte.

Puedes usar hasta 16 volúmenes de recorte en un nivel. Si hay volúmenes que se solapan, usa el ajuste Prioridad para determinar cuál tiene prioridad.
Cómo cambiar los datos en tiempo de ejecución
El complemento LiDAR Point Cloud permite insertar, eliminar y modificar datos en tiempo de ejecución, incluso en el archivo ejecutable empaquetado.
Hay algunas consideraciones a tener en cuenta al hacer esto:
* Los datos insertados tienen que estar dentro de los límites del recurso. De lo contrario, interferirá con el sistema LOD.
* Mover puntos no los reubica en niveles de detalle vecinos, por lo que se recomienda no mover los puntos demasiado.
* Al insertar muchos puntos varias veces, la generación de LOD puede consumir muchos recursos.
Para mitigar los problemas descritos anteriormente, puedes inicializar el recurso de nube de puntos con unos límites mucho mayores de lo necesario (por ejemplo, 100 000 en cada eje) y básicamente desactivar el sistema LOD cambiando el ajuste Tamaño máx. del cubo en la configuración del proyecto del complemento a un número muy grande, por ejemplo, 1 000 000 000.