Com o llugin LiDAR Point Cloud, você pode importar, visualizar e editar nuvens de pontos na Unreal Engine. O plugin também é compatível com diversas técnicas de coloração e sombreamento. Por causa de suas múltiplas otimizações e dimensionamento dinâmico de LOD (Nível de Detalhe), você pode trabalhar com grandes conjuntos de dados sem nenhuma perda significativa de desempenho, mesmo em tempo de execução.
Formatos de arquivo de nuvem de pontos compatíveis
Uma nuvem de pontos é um conjunto de pontos de dados em que cada ponto é definido por suas coordenadas XYZ e, opcionalmente, por sua cor. A Unreal Engine é compatível com os seguintes formatos de arquivo de nuvem de pontos:
| Extensão | Descrição |
|---|---|
| ".xyz", ".pts", "*.txt" | Tipos gerais de formatos de arquivo de nuvem de pontos ASCII que podem conter:
A notação pode ser float (como 0.00892855) ou científica (como 8.92855E-03). |
| ".las", ".laz" | O LAS é um formato de arquivo público para o intercâmbio de dados tridimensionais de nuvens de pontos entre usuários. Embora tenha sido desenvolvido principalmente para a troca de dados de nuvem de pontos de LiDAR, esse formato permite a troca de qualquer tupla X, Y e Z tridimensional. Esse formato de arquivo binário é uma alternativa aos sistemas proprietários, bem como aos sistemas genéricos de intercâmbio de arquivos ASCII, e é amplamente usado. Arquivos LAZ são arquivos LAS compactados. Eles são muito menores, mas a importação também é proporcionalmente mais lenta. A Unreal Engine é compatível com arquivos LAS/LAZ de 8 bits, 12 bits e 16 bits. |
| "*.e57" | O E57 é um formato de arquivo compacto de código aberto que armazena e troca dados de imagem 3D, como nuvens de pontos, imagens e metadados. |
Como importar e exportar nuvens de pontos
Para importar um ativo de nuvem de pontos, você pode usar um destes métodos:
-
Arraste uma nuvem de pontos, salve em um formato de arquivo suportado, no Navegador de Conteúdo.
-
No Navegador de Conteúdo, clique em Add/Import, vá até o arquivo desejado e selecione-o.
Na importação, os metros são convertidos em Unidades Unreal (UU), em que 1 UU = 1 cm. Para usar uma escala de importação personalizada, abra as configurações do projeto do plugin LiDAR Point Cloud e altere o valor de Import Scale.
Você pode exportar um ativo de nuvem de pontos para ASCII ou LAS usando a ferramentaUnreal Export existente. No Navegador de Conteúdo, clique com o botão direito no ativo e selecione Asset Actions > Export.
Na exportação, as Unidades Unreal são convertidas de volta em metros (multiplicando o valor por 0,01). Para usar uma escala de exportação personalizada, abra as configurações do projeto do plugin LiDAR Point Cloud e altere o valor de Export Scale.
Desempenho
O desempenho é determinado principalmente pelo orçamento de pontos global, que define o número máximo de pontos que podem ser exibidos por vez. Usar um orçamento compartilhado em vez de um orçamento por componente permite uma renderização eficiente de muitos ativos ao mesmo tempo, pois o sistema selecionará os pontos mais otimizados de todos os componentes visíveis. Um orçamento de pontos maior significa maior qualidade com mais custo de desempenho. O orçamento de pontos global economiza memória de vídeo e melhora a taxa de quadros, mas não reduz o uso geral de RAM.
Você pode definir o orçamento global de pontos usando variáveis de console. Quanto maior for o orçamento de pontos, mais densa será a nuvem de pontos.
Para obter mais informações, confira a seção de variáveis de console da página Referência do plugin LiDAR Point Cloud.
Transmissão sob demanda
Ao abrir uma nuvem de pontos, a Unreal Engine carrega apenas as informações de cabeçalho necessárias e transmite os dados em massa reais conforme for preciso. Isso resulta no carregamento rápido de ativos e reduz o consumo total de RAM.
Os ativos recém-importados serão mantidos na memória do sistema e não poderão aproveitar a funcionalidade de transmissão até serem salvos. Depois de salvos, o editor libera a memória para esse ativo.
O carregamento de muitos arquivos de nuvem de pontos na engine ainda requer uma quantidade significativa de RAM ao analisar os dados da nuvem de pontos e processá-los como ativos da Unreal Engine. Por exemplo, os dados de LiDAR da cidade de Montreal, disponíveis para o público, carregados na Unreal Engine, têm os seguintes indicadores de desempenho:
| Arquivos LAS individuais | ~684 ladrilhos para um total de 253 GB em disco |
| Uso de RAM da Unreal | ~3,5 GB para um orçamento de 1 milhão de pontos |
| Taxa de quadros | 120 FPS, com um orçamento global de 1 milhão de pontos |
| Quantidade total de pontos | Média de 14,3 milhões de pontos por ladrilho de 1 km x 1 km * 621 arquivos = cerca de 8,9 bilhões de pontos |
Volumes de recorte
Se quiser exibir apenas uma seção dos dados sem excluir o restante, use um ator de volume de recorte do Lidar. Com o plugin LIDAR Point Cloud habilitado, você pode encontrar esse ator em Place Actor > Volume > Lidar Clipping Volume.
Clique na imagem para ampliá-la.
Você pode configurar as propriedades de um volume de recorte no painel Details.
Clique na imagem para ampliá-la.
Você pode escolher dentre dois modos:
-
Clip Outside: oculta todos os dados da nuvem de pontos fora do volume de recorte.

-
Clip Inside oculta todos os dados da nuvem de pontos dentro do volume de clipagem.

Você pode usar até 16 volumes de recorte em um nível. Se houver volumes sobrepostos, use a configuração Priority para determinar qual deles tem prioridade.
Como alterar dados em tempo de execução
O plugin LiDAR Point Cloud permite a inserção, remoção e modificação de dados em tempo de execução, incluindo no executável compactado.
É importante ter algumas considerações em mente ao fazer isso:
-
Os dados inseridos devem estar dentro dos limites do ativo. Caso contrário, isso afetará o sistema de LODs.
-
A movimentação de pontos não os transfere para LODs vizinhos. Portanto, recomendamos não mover muitos pontos.
-
Ao inserir muitos pontos várias vezes, a geração de LOD pode usar muitos recursos.
Para mitigar os problemas descritos acima, inicialize o ativo de nuvem de pontos com limites muito maiores do que o necessário (por exemplo, 100.000 em cada eixo) e desative o sistema de LOD alterando a configuração Max Bucket Size em Project Settings do plugin para um número bem alto, como 1.000.000.000.