Inicio | Apuntes breves | De Meshlab a Blender: de nube de puntos a maya

De Meshlab a Blender: de nube de puntos a maya

Jueves, 29 de Noviembre de 2012 18:33

modelo 3d blender en virtualización de patrimonioTras varios artículos profundizando sobre las técnicas de modelado 3D con software libre, en base a estrategias de fotogrametría o más propiamente Structure for Motion (SFM) a partir de sets de imágenes no ordenadas, o lo que es lo mismo tomadas con una escasa planificación de diversos puntos de vista de un objeto o escena.

El resultado de estos proyectos es una nube de puntos dispersa, o mejor todavía una nube de puntos densa, ya que esta contiene la información RGB de la textura de nuestra escena.

Las nubes de puntos nos ofrecen una importante información dimensional, geométrica e incluso colorimétrica de nuestra escena. Estas nubes de puntos las podemos retocar y analizar con herramientas como MeshLab, pero a priori, no tienen una especial valided para su procesado en herramientas de modelado 3D tipo Blender, para continuar con herramientas Open Source.

Blender, como cualquier otra herramienta de modelado 3D trabaja con objetos construidos por mayas, formadas a partir de la información de las nubes de puntos. Esta transformación de nube a maya es bastante simple de realizar y nos permitirá realizar tareas de virtualización como iluminaciones, movimientos de cámara etc, sobre nuestro escena.

El proceso con Meslab es el siguiente:

Primero se calculan las normales, las cuales de forma simplificada son las que van a indicar la orientación de nuestra superficie, o lo que es lo mismo, determinar cual es el derecho o el revés de nuestro modelo. Para ello vamos al menu:

Filters > Point Set > Compute normals for point sets

En la versión para Linux de Meshlab esta función esta bajo el submenu “Normals, Curvatures and Orientation” en vez de “Point Set”.

y en la ventana emergente dejamos el valor:

Number of neigbors 10

poison meshlab patrimonioPersonalmente me he encontrado que con la mayoría de modelos que he generado y “mayado” con Meshlab una vez en Blender la textura o superficie aparece en el lado inverso, esto se aprecia al aplicar una iluminación, ya que esta solo surge efecto en una de las caras del modelo. Si nos sucede esto, en Blender hacemos un “Flip Normals” así invertiremos las normales y dejamos la superficie en el lado correcto de nuestro modelo.

El siguiente paso es crear la maya con:

Filters > Point Set > Surface Reconstruction: Poisson

Y los valores

  Octree Depth 10
  Solver Divide 8
  Samples per node 1
  Surface offsetting 1
 

meshlab maya virtualizacion de patrimonioUna vez creada la maya si activamos la visión de sólido o maya (smoot o flat) en Meshlab nos encontraremos muchas veces con formas extrañas que para nada se corresponden a nuestro modelo. Esto es debido a cómo se computa la maya, que muchas veces posee una cierta tendencia a cerrar el modelo. Si esto nos sucede, simplemente con las herramientas de eliminar “faces” podemos ir borrando las partes de la maya que no nos son interesantes.

En este punto si revisamos las capas de nuestro proyecto nos encontramos con nuestra capa inicial o .ply y la maya.

El último paso es aplicar nuestra textura a la maya, de forma que tengamos un sólido con una textura. Para ello vamos al siguiente menú:

Filters > Sampling > Vertex Atribute Transfer

Y aplicamos los siguientes valores:

  Source Mesh xxx.ply
  Target Mesh Poisson mesh
  Transfer Color ok

De forma que la capa de origen sea nuestra nube de puntos densa o .ply y la de destino nuestra malla de Poisson.

Con estos sencillos pasos ya podemos guardar nuestro modelo como .ply para luego importarlo dentro de Blender para comenzar los trabajos de virtualización.

x-rite Professional LED Lighting, DSLR Support and Accessories for Photo and Video BabelColor asociacion española de imagen cientifica y forense