Archivo de la etiqueta: texturas

Transformaciones geométrica de imágenes por hardware en la ventana fotogramétrica

Llegó el día en el que Digi3D.NET puede realizar transformaciones de imágenes por hardware.

Hasta hoy (debido a la gran cantidad de usuarios con tarjetas gráficas con un núcleo como la nVidia Quadro FX1400) la aplicación realizaba las transformaciones geométricas por software.

Esta operación se realizaba utilizando todos los núcleos del ordenador para intentar hacerla lo más rápido posible, pero en la práctica tardaba un poco, por lo tanto decidimos en su momento cachear las teselas de las imágenes transformadas en la carpeta %TEMP% del ordenador.

Esto hacía que el espacio libre del disco duro fuera disminuyendo considerablemente hasta agotarlo (momento en el cual había que utilizar la herramienta de liberación de espacio de Windows o herramientas de terceros como CCleaner.

No podíamos continuar toda la vida soportando la tarjeta gráfica nVidia Quadro FX 1400, y ha llegado el momento de decirle adiós..

Publicamos hoy la nueva versión de Digi3D.NET con transformaciones en la tarjeta. Esta versión requiere tarjetas gráficas con más de un núcleo. A partir de ahora, mientras mejor sea nuestra tarjeta gráfica, mejor rendimiento tendrá Digi3D.NET.

Con este cambio hacemos que el programa no sea compatible con ordenadores antiguos (hace un año Microsoft dejó de soportar Windows XP, y el 99% de los ordenadores equipados con una Quadro FX 1400 tienen Windows XP), pero el programa gana muchísimo en especificaciones.

Hemos realizado los siguientes cambios:

  • Las transformaciones (rotar en kappa, epipolares, etc) son instantáneas y sin consumir ni un solo byte en el disco duro. Ahora al programa le cuesta lo mismo mostrar las imágenes transformadas u originales.
  • Ahora podemos activar y desactivar (viene activado por defecto) la opción de interpolar bilinealmente los píxeles a la hora de visualizar las imágenes. Esto hace que los píxeles de la imagen dejen de apreciarse al hacer zooms de acercar.
  • Ahora el programa memoriza las transformaciones de cada una de las imágenes cuando cerramos la ventana fotogramétrica, de modo que si abrimos un modelo y ordenamos que se calcule su epipolar, al volver a abrir ese modelo en particular, las imágenes ya estarán orientadas con la epipolar.
    Bilineal
  • Nuevas opciones para calcular epipolares (la que menos transforma la imagen izquierda, la que menos transforma la imagen derecha y la que conserva la mayor verticalidad).
  • Se ha eliminado la opción de Método de Brillo/Contraste por software. Ahora es siempre por hardware.
  • Se han realizado mejoras a la hora de proyectar las geometrías del archivo de dibujo en la ventana fotogramétrica. Ahora no es necesario mover la ventana fotogramétrica para que aparezcan las geometrías.

Puedes ver esta nueva funcionalidad en el siguiente vídeo

[youtube:https://youtu.be/BV7uxMFM65A%5D

Rellenos con texturas

DigiNG.NET permite que seleccionemos una textura como relleno en líneas cerradas, polígonos y topologías.
Si quieres añadir una textura como relleno, tan solo tendrás que seguir los siguientes pasos:

SeleccionandoUnBitmapDeRelleno

  1. Crear/comprar/localizar en internet la textura que deseas utilizar como fondo.
  2. Asegurarte de que el tamaño de esta es múltiplo de una potencia de 2, es decir 2,8,16,32,64,128,256,512,1024,…
  3. Copiarla en tu directorio de símbolos.
  4. Editar la tabla de códigos y en el código en cuestión cambiar el valor de la propiedad Rellenar a Si.
  5. Seleccionar la textura a utilizar en el campo Bitmap de relleno.

Si dibujamos una línea cerrada con ese código, o un polígono (y siempre que tengamos el flag RELLENAR a verdadero, DigiNG.NET nos mostrará la línea rellena con la textura. La textura se repetirá indefinidamente hasta rellenar la entidad en cuestión.

Si el polígono tiene huecos, estos no se rellenarán con la textura.

Visualizar puntuales como una imagen

DigiNGMostrandoTexturasPuntuales

DigiNG.NET nos permite seleccionar una imagen para representar un puntual. Gracias a esta característica podemos mejorar mucho el aspecto de nuestros mapas.

Para hacer que un puntual se represente con una imagen tenemos que seguir estos pasos:

  1. Copiar la imagen que queremos utilizar en el directorio de símbolos de DigiNG.NET (aquel que indicas en la pestaña Archivo de dibujo en el cuadro de diálogo Nuevo proyecto.
  2. Crear un estilo en la tabla de códigos cuyo símbolo sea la imagen que nos interese.
  3. Indicar en el código en cuestión que el estilo a utilizar es el estilo que tiene seleccionada la imagen.
  4. Activar el patrón.

Si al cargar una tabla de códigos se localiza en el directorio de símbolos alguna imagen con un formato de entre los soportados por DigiNG.NET (.bmp, .tif, .jpg, .j2p, .ecw, .sid) esta imagen se cargará automáticamente en la memoria de texturas de la tarjeta gráfica.
Como la memoria de texturas de la tarjeta gráfica no es infinita, te recomiendo utilizar texturas pequeñas. Además, esta memoria es una memoria especial, ya que únicamente se pueden cargar texturas cuyo ancho o alto sea un número potencia de 2, lo que quiere decir que si por ejemplo tenemos una textura de 1025×640 píxeles, la memoria a solicitar a la tarjeta gráfica será 2048×1024, por lo que se desaprovechará mucha memoria innecesariamente.

Puedes crearte tu mismo las texturas a utilizar mediente programas como Paint, Paint.NET (el que yo suelo utilizar habitualmente), o herramientas profesionales como PhotoShop o The Gimp o tomando alguna fotografía de un objeto real. DigiNG.NET admite además canal alpha, así que puedes hacer huecos dentro de la textura jugando con este valor.

Si no quieres perder el tiempo creando texturas, te recomiendo que compres texturas a empresas que hacen texturas profesionalmente como en DOSCH Design que tienen texturas de distintos tipos de árboles a vista de pájaro por solo 69€ y es la que he utilizado en la capura de pantalla que encabeza este post.