Convertir nube de puntos a malla 3D

vorpal

VIP
Hola a todos.
Estoy colaborando en un proyecto educativo de investigación, y necesito pasar una nube de puntos densa obtenida con diferentes barridos de escáner láser (Faro y Topcon) a una malla 3D.

Tengo la nube de puntos estructurada y unificada en ReCap, y quisiera obtener la malla, pero no on line o en la nube, sino realizando los cálculos de forma local en mi ordenador (mi ancho de banda disponible es reducido y no puedo enviar ni recibir nubes de "gigas" de tamaño).

He probado a exportar mi nube de puntos de ReCap a los formatos E57 y PTS para abrirlos en otros programas gratuitos como CloudCompare y MeshLab, pero ni el E57 ni el PTS parecen tener los normales definidos, y ambos programas necesitan obtener los normales de la nube de puntos para definir la superficie. ReCap solo me deja exportar en cuatro posibles formatos: E57, PTS, RCS y PCG.

¿Conoce alguien algún otro programa gratuito o con licencia educacional (o en su defecto barato) que permita obtener mallas 3D desde una nube de puntos en formato E57 o PTS?

Si alguien conoce mas en profundidad CloudCompare o MeshLab, ¿hay alguna forma de obtener o generar las normales en una nube de puntos importada en formato E57 o PTS?

Saludos y gracias por adelantado.
 

vorpal

VIP
Gracias Juanjo.
ReMake ya lo conocía, lo probé pero me da problemas, además si se quiere hacer uso intensivo entonces hay que hacerlo en la nube, y con mi conexión tardaría mucho (la nube de puntos se acerca a los 2 GB).
Voy a mirar Pointfuse, a ver si me sirve.

Gracias otra vez.
 

vorpal

VIP
Hola de nuevo.
Descargué la versión trial de Pointfuse, gran programa, y la verdad es que he podido obtener lo que quería.
Sin embargo, estoy experimentando con CloudCompare, que me parece tan potente como Pointfuse pero gratuito.
El problema que me estoy encontrando ahora es fundamentalmente el de hardware.

Manipular nubes de puntos densas con más de 100 millones de puntos le cuesta a mis equipos. En un i7 con 16 GB se puede pegar unas 6 horas para contar normales y otras 6 para generar la malla.
En un Xeon dual con 32 GB (pero viejuno, mas viejo que el i7), le cuesta por el estilo.

Al final me sale un pedazo de DXF que es inmanipulable porque ocupa más de 2 GB, no se puede abrir ni con AutoCAD ni con nada, porque me quedo sin memoria.

Voy a actualizar las dos CPU del Xeon, he encontrado por eBay a buen precio una opción para cambiar mis dos procesadores actuales (Xeon 5130 de doble núcleo a 2 GHz) por 2 Xeon X5355 a 2,66 Ghz de 4 núcleos cada uno.

Entre tanto, tengo que resamplear mis nubes de puntos, haciéndolas menos densas para poder obtener normales y triangular en un tiempo razonable y, sobre todo, obtener mallas que se puedan manejar.

Saludos.
 
La verdad es que asustan esos tamaños de archivo; nunca he trabajado con nubes de puntos, pero parece que me tocará actualizar equipo cuando tenga necesidad de hacerlo...

Creo que te saldría más a cuenta pagar el despliegue de fibra a la compañía de turno y poder hacer el trabajo duro en la nube :eek:
 

vorpal

VIP
Trabajar en la nube tampoco es gratis. Autodesk te pide "créditos" por usar sus aparatos en la nube, cosa lógica y normal. Para que me llegue el despliegue de fibra creo que aún falta bastante, al menos hace poco en una reunión de mi comunidad de vecinos se votó el tema favorablemente para que una compañía (no sé cual) tuviera datos para estudiar si el despliegue era rentable. Ahora solo falta que esa compañía tome la decisión de iniciar el despliegue, pero eso aún puede tardar.

Aún así, mi impresión sobre trabajar en la nube no es muy positiva. Procuro utilizarla lo menos posible, tal vez sea porque veo que con mi ancho de banda actual es más lenta que el caballo del malo, sobre todo en velocidad de subida. Y luego está todo el asunto de la privacidad/seguridad de los datos.

De todas formas, me he quedado gratamente sorprendido con CloudCompare: es completamente gratuito, open source y manipula ficheros con mas de 100 millones de puntos en un portátil Dell Inspiron 5100 con i7 y 16 GB sin gráfica dedicada bastante decentemente. En el i7 de la oficina, también con 16 GB y una GTX 1050, va muy ágil.

No solo eso, sino que además en CloudCompare puedes reducir bastante el tamaño de malla de forma sencilla (subsampling). Por ejemplo, me ha servido para poder obtener un modelo digital del terreno apto para topografía y procesarlo en AutoCAD con MDT.
Mediante el subsampling, una nube densa en formato PTS que inicialmente pesaba unos 800 MB (puntos cada 10 mm aproximadamente) la he reducido para topografía en puntos cada 50 cm en menos de 1 minuto y el tamaño ha bajado a unos 3 MB.
Como el formato PTS es ASCII, lo puedo leer sin problemas con MDT e incluso generar la superficie topográfica con Revit.

Además, a la velocidad a la que evoluciona el hardware y que para otras cosas que se avecinan, como la realidad virtual/aumentada, va a ser necesario sí o sí tener un bicharraco en el despacho, me parece que lo de la computación en la nube en mi caso seguirá esperando.

Saludos.
 

vorpal

VIP
Por cierto, la conversión en malla con CloudCompare era sencillísima, incluso partiendo de un fichero de coordenadas en formato PTS sin normales.
CloudCompare organiza el "proyecto" en diversos ficheros colgados en una estructura de árbol. El quid de la cuestión es que las opciones de los diferentes menús no están disponibles si no tienes seleccionado el elemento adecuado de ese árbol del proyecto. En mi caso para obtener los normales era necesario tener seleccionado un fichero de nube de puntos en el menú, no basta con haberlo cargado, tiene que estar seleccionado.

A partir de ahí, en función de la densidad de la nube y la potencia del cacharro, tarda un rato mas o menos largo de entre 1 y 6 horas. Con eso ya tienes un modelo vectorial que puedes exportar en formatos de malla (OBJ, FBX, DXF...).

Saludos.
 

vorpal

VIP
Os dejo una captura de pantalla de CloudCompare.
Si averiguo cómo registrar nubes de forma sencilla, puede ser un serio candidato a ser mi programa de cabecera en manipulación de nubes.



Saludos.
 
Aún así, mi impresión sobre trabajar en la nube no es muy positiva. Procuro utilizarla lo menos posible, tal vez sea porque veo que con mi ancho de banda actual es más lenta que el caballo del malo, sobre todo en velocidad de subida
Yo probé el análisis estructural de Revit en la nube, con una conexión de fibra óptica 100/10 (o 200/20, no recuerdo cómo estaba entonces) y conexión por cable al router. Se supone que usa el motor de Robot, pero tarda muchísimo más que hacerlo con Robot en local.
 

vorpal

VIP
Creo que la mayoría de las empresas de software ven la nube como una forma de luchar contra la piratería: si el software no lo tienes localmente en tu ordenador, no lo puedes copiar, pero eso es un inconveniente grande para quienes no tenemos un ancho de banda suficiente o somos "road Warriors" que nos tenemos que mover por ahí afuera, y nuestro vehículo es nuestra oficina.

Yo he participado en programas beta de algunos productos de Autodesk en modo "on line" a través de ejecutar versiones preliminares de diversas aplicaciones con Citrix XenApp y similares. El resultado era bastante decepcionante a nivel de rendimiento, no se podían sacar grandes conclusiones. Además era muy sensible al horario, porque si accedías a la aplicación cuando aun dormían en USA entonces aún se podía medio trabajar algo, pero como lo hicieras con toda la gente del otro lado del charco currando y accediendo... el ordenador se arrastraba miserablemente.

Muchas de estas aplicaciones de mallado de nubes de puntos, cálculos estructurales... tienen la ventaja de que no están muy extendidas y por tanto el número potencial de usuarios usándolas simultáneamente accediendo contra un servidor no es muy grande, pero como inconveniente, aunque accedan/accedamos pocos a la vez, la potencia de proceso demandada por cada uno es muy alta. Todos queremos que el "cloud computing" sea mucho más rápido y eficiente que nuestro ordenador. En el momento en que accedamos bastantes, solicitando mucha potencia de proceso, mas vale que los servidores estén preparados para dar ese servicio, porque de lo contrario la imagen que se da es muy mala.

Saludos.
 
Con el mismo esquema que el programa SETI de búsqueda de vida inteligente extraterrestre, que permite que gente voluntaria ceda los tiempos muertos de su ordenador para que el SETI realice las labores de tratamiento de las señales captadas por los radiotelescopios, podrían estos sistemas de proceso de datos en la nube imitarlo de tal manera que todos los usuarios del sistema a su vez cedan sus ordenadores para componer una gran red de ordenadores intercomunicados con el servidor central para ir tratando parcialmente el grueso de la información.
Podría facilitar el cuello de botella del proceso de datos.
 

sajicor

Novel
Hola!

He encontrado por casualidad este post buscando info sobre nube de puntos y sobre el workflow de este tipo de archivos. Os comento mi caso, tengo una nube de puntos de un edificio histórico y estoy trasteando un poco a ver como funciona (a nivel estudiante). El caso es que no tengo muy claro cual es el mejor workflow para gestionar estos archivos en este tipo de edificio, buscando información he visto que se suelen utilizar en Revit para modelar el Asbuilt, previo paso por Recap.

Pero en edificios históricos que suelen ser muy irregulares lo mejor seria hacer una malla como comentáis no? Porque mediante "model in place" en Revit será bastante complicado. Entonces una vez unificada la nube en Recap, se pasaría a programas tipo CloudCompare y el archivo resultante se trabaja directamente en Revit? O este tipo de archivos se suelen retocar en 3ds Max por ejemplo para el tema de materiales?

Gracias.
 

vorpal

VIP
Yo no lo haría.
Generar una malla de una nube de puntos densa puede degenerar en un fichero de varios GIGAS, si he dicho GIGAS, para que te hagas una idea, una nube de puntos normalita de unos 50 millones de puntos me genera un DXF de unos 2 Gigabytes. Eso no hay ordenador que lo mueva, y yo trabajo con una estación con dos procesadores Xeon de 4 nucleos cada uno y 32 Gb de RAM.

Lo mejor, creo yo, es trabajar directamente con la nube de puntos en revit, sin convertirla a malla. Si acaso tienes que re-modelar algún elemento constructivo concreto se remodela, o incluso se podría mallar una zona pequeña de la nube, pero desde luego nunca generaría una malla de toda la nube de puntos.

Saludos.
 

vorpal

VIP
Sobre la cuestión de 3ds Max no te puedo ayudar porque no manejo ese programa, pero tengo mis dudas de que sea capaz de leer ficheros de nubes de puntos.
Si la nube de puntos se ha generado con bastante densidad (separación entre puntos < 6 mm) y además cada punto incorpora información de color (habitualmente tres números de 0 a 255 para codificar en RGB) no hace falta aplicar texturas y materiales, ya que a determinada distancia se ve todo como sólido. En la mayoría de los programas, como Revit o AutoCAD no se nota, el aspecto es completamente realista.

El problema llega si quieres generar sombras, porque la nube de puntos no es una superficie, y los puntos no son capaces de generar sombras propias ni arrojadas.

Saludos.
 

sajicor

Novel
Tengo los ficheros en FLS y tengo que pasarlos a formato Recap, pero como dices diría que los puntos tienen color, no me acordaba, descarto tema 3ds Max.

En cuanto a la nube de puntos en Revit, no había pensado en el tema de las sombras así que me tocará modelarlo, o al menos intentarlo... se me ocurre una cosa, se podría modelar por ejemplo un muro dejando una "capa de puntos" externa al "model in place", de manera que veas el color de dichos puntos y a la vez consigas sombra?

O se podría hacer el modelado asbuilt en otro programa mas cómodo tipo SketchUp?

Gracias.
 
Arriba