Cuando trabajamos con nubes de puntos ya sean dispersas o densas junto a la información XYZ, con frecuencia disponemos adicionalmente de valores RGB asociados a cada punto. Esta información colorimétrica aunque posee un cierto interés no suele ser suficiente en caso de que estemos interesados en reconstruir o recrear la textura de nuestro modelo, ya que aunque a pesar de conseguir alcanzar una cierta densidad en la nube, no suele ser suficiente para una textura nítida.
Aunque si estamos orientando nuestros trabajos de modelado 3D al mundo de la documentación gráfica de patrimonio, quizás pretender generar texturas realistas no sea lo más eficiente, sin embargo a efectos de divulgación de escenarios arqueológicos, arte rupestre, etc,… puede tener un cierto interés.
Si trabajamos con técnicas de Structure from Motion, podemos recuperar la información de las cámaras para imprimirla sobre una maya. Esta información esta contenida en los conocidos archivos .out generados tanto por Bundler como VisualSFM sobre los cuales ya hable en el artículo “Creación de Ortofotos con Cloud Compare y Bundler“. Estos archivos .out contienen información de la nube de puntos dispersa e información de las cámaras.
Desde Meslab podemos cargar los archivos .out como nuevos proyectos, inmediatamente se nos solicitará el archivo list.txt con la ubicación de las imágenes o raster asociadas a cada posición de cámara. Una vez cargado el proyecto .out tendremos acceso a la nube de puntos dispersa y en la parte inferior del panel de capas podemos ver las imágenes Y si vamos al menú Render > Show Camaras podremos ver la posición de las cámaras y los raster respecto a nuestro modelo, o si vamos al menú “Show current raster mode” podremos obtener el punto de vista de la imagen.
Para poder trabajar con texturas, debemos crear antes una maya o mesh a partir de la nube de puntos densa, para ello tenemos que cargar también el .ply que contiene la nube de puntos densa. Para ello en el pasado articulo “De Meshlab a Blender: de nube de puntos a maya” se hablaba un poco de dicho proceso, a modo de resumen primero calculamos las normales con la opción “Compute normals from points set” y luego hacemos una reconstrucción de la superficie por Poisson con la opción “Surface Reconstruction: Poisson”. En este momento ya tenemos una maya a la que proyectar nuestras cámaras.
Si en filtros vamos a la sección cámaras podemos usar la opción “Project current raster color to current mesh” para proyectar la imagen o raster seleccionado a la maya. Existen otras opciones donde podemos usar todas las imágenes, aunque no suele ser necesario ya que no suele ser necesario usar todas las imágenes para cubrir toda la maya.
Con este simple método ya podemos cargar una textura realística sobre nuestras mayas. La calidad de las texturas depende en cierto modo de la calidad de las imágenes empleadas, aspectos como la nitidez, el foco, la exposición, etc,… van a condicionar la calidad de nuestras texturas. También existen técnicas para encajar una imagen en nuestro modelo y usarla como textura, situación que quizás se aborde en otro artículo.
Si este método no te aporta suficiente resolución en tus texturas prueba el 2º método.