Visualización tridimensional de terrenos en tiempo real Jordi Linares Pellicer Escola Politècnica Superior d’Alcoi Departament de Sistemes Informàtics i Computació [email protected] Visualizació Visualización 3D de terrenos en tiempo real Visualización tridimensional de terrenos en tiempo real 1. Aplicaciones 6. Visualización de terrenos 2. Retos tecnológicos 6.1. Introducción 3. Fuentes de información 6.2. Algoritmo de fuerza bruta 4. Modelos Digitales de Terreno 6.3. Métodos básicos de iluminación de terrenos 5. Métodos básicos de generación procedural de terrenos 5.1. Fault formation 5.2. Mid-point displacement 6.4. Estudio de 3 algoritmos clásicos de visualización 6.4.1. Geomipmapping 6.4.2. Quadtrees 6.4.3. ROAM 6.5 Efectos atmosféricos 6.6 Revisión de otros algoritmos y últimas líneas de investigación Visualizació Visualización 3D de terrenos en tiempo real Aplicaciones • GIS (Geographical Information Systems) • Aplicaciones lúdicas • Turismo virtual y difusión del territorio • Real Estate • Gestión del territorio • Análisis topográfico, interpretación del territorio, teledetección etc. • Usos militares, salvamento, seguridad, vigilancia y control etc. Google Earth Visualizació Visualización 3D de terrenos en tiempo real Retos tecnológicos (I) Almacenamiento y gestión de la información • Bases de datos distribuidas: alta disponibilidad y enmascaramiento de fallos • Técnicas avanzadas de streaming y compresión de la información • Gestión de memoria primaria (y de texturas): catching y pre-fetching • Preprocesado de la información: computación paralela y/o distribuida Visualizació Visualización 3D de terrenos en tiempo real Retos tecnológicos (II) Visualización tridimensional en tiempo real • La más alta fidelidad en base a la información disponible • Frame-rate que garantice la interacción requerida • Utilización de técnicas CLOD (Continuous Level of Detail), dependientes de la vista e irregularidad del terreno => Más detalle donde hace falta • LoD para geometría y texturas • Frustum culling • Stripping de triángulos • CPU vs. GPU Visualizació Visualización 3D de terrenos en tiempo real Fuentes de Información http://www.vterrain.org Visualizació Visualización 3D de terrenos en tiempo real Modelos Digitales de Terreno (I) Modelo Digital de Terreno “representación estadística de la superficie continua del suelo mediante un número elevado de puntos selectos con coordenadas (x,y,z) conocidas, en un sistema de coordenadas arbitrario” Miller y LaFlamme (MIT, 1958) Visualizació Visualización 3D de terrenos en tiempo real Modelos Digitales de Terreno (II) • Modelos Digitales de Terreno – MDT Representan cualquier atributo de la superficie (altitud, densidad superficies, relieve del terreno etc.) • Modelos Digitales de Elevación – MDE Una imagen Representan sólo la altura. (x,y) en coordenadas z = f(x,y) Un único valor de z UTM, longitud y latitud etc. Visualizació Visualización 3D de terrenos en tiempo real Modelos Digitales de Terreno nti cua s i ális An ivo tat (III) Triangulated Irregular Networks (TIN) MDT A pl ica ci one sc ual ita Regular Networks tiva s Visualizació Visualización 3D de terrenos en tiempo real Modelos Digitales de Terreno (IV) Proceso de generación de MDTs Adquisición Conversión Almacenamiento Generación de mallas Desarrollo aplicaciones de interpretación Visualizació Visualización 3D de terrenos en tiempo real Modelos Digitales de Terreno Adquisición (V) Medidas de campo Métodos directos Altímetros (radar, láser) GPS Métodos indirectos Digitalización (manual o mediante láser) Captura de datos fotogramétricos (interpretación estereoscópica de fotografías aéreas o de satélite) Visualizació Visualización 3D de terrenos en tiempo real Modelos Digitales de Terreno (VI) TIN • Precisan menos puntos • Permiten muestreo dinámico • Pero menos eficiente para visualización: recortado del volumen de la vista, detección de colisiones, continuidad del terreno y deformaciones dinámicas Mallas regulares Visualizació Visualización 3D de terrenos en tiempo real Modelos Digitales de Terreno (VII) Mallas regulares bintrees, quadtrees ... HRT (Hierarchies of Right Triangles) Visualizació Visualización 3D de terrenos en tiempo real Modelos Digitales de Terreno MDTs Ortofotografías Visualización 3D Líneas de investigación: • Inclusión de elementos 3D (pero bajo el mismo método LoD) • Elementos vectoriales (esenciales en GIS) • Vegetación en tiempo real • Efectos atmosféricos • Navegación subacuática • Avatares, animaciones etc. Visualizació Visualización 3D de terrenos en tiempo real (VIII) Generación procedural de Terreno (I) Idea básica Generar terreno (incluso en tiempo real) y evitar su almacenamiento Ventajas Nivel de detalle no limitado Técnicas Fractales, gramáticas, tiling, métodos mixtos etc. Aplicaciones Juegos, aumento de realismo y nivel de detalle, etc. Visualizació Visualización 3D de terrenos en tiempo real Generación procedural de Terreno Fault formation (formación de ‘fallas’) 1. Partimos de un mapa de alturas plano 2. Generamos una línea aleatoria 3. Añadimos un valor de altura a una de las partes 4. Decrementamos el valor altura y volvemos a (3). Número de iteraciones controlable por usuario. 5. Aplicación de un filtro de erosión Visualizació Visualización 3D de terrenos en tiempo real (II) Generación procedural de Terreno (III) Fault formation (formación de ‘fallas’) Visualizació Visualización 3D de terrenos en tiempo real Generación procedural de Terreno Fault formation (formación de ‘fallas’) Visualizació Visualización 3D de terrenos en tiempo real (IV) Generación procedural de Terreno (V) Mid-point displacement (fractal plasma) Visualizació Visualización 3D de terrenos en tiempo real Generación procedural de Terreno Mid-point displacement 1. Calcular alturas F, G, H, I y E 2. Altura de E = E ± fHeight/2 3. fHeight = fHeight * 1 2 roughness 4. Aplicar recursivamente ... Visualizació Visualización 3D de terrenos en tiempo real (VI) Generación procedural de Terreno (VII) Mid-point displacement Visualizació Visualización 3D de terrenos en tiempo real Generación procedural de Terreno (VIII) Consideraciones finales: • La generación procedural de terreno es ideal para la generación de grandes áreas de territorio • Algunas técnicas son capaces de su generación sin precisar de almacenamiento • La generación procedural puede extenderse también a la ortofotografía o a la generación de ‘detail maps’. • Añadir texturas naturales a áreas muy homogéneas • Conveniente el uso de ‘multitexturación’ Visualizació Visualización 3D de terrenos en tiempo real Visualización de Terrenos (I) Características del problema -Gran cantidad de polígonos a visualizar (además posibles problemas de aliasing y resolución de z-buffer) -Necesidad de garantizar interactividad Consecuencias -Hay que recurrir a técnicas LoD (modelado multirresolución) -Las técnicas LoD discretas no funcionan (niveles de detalle global al objeto o pocos niveles totales) -Hay que recurrir a técnicas LoD “continuas” (dependientes de la vista y de la irregularidad del terreno) Visualizació Visualización 3D de terrenos en tiempo real Visualización de Terrenos (II) Calidad Elementos a considerar en la selección del algoritmo: -Soporte de diferentes niveles de detalle sobre diferentes regiones del terreno de forma simultánea -Prevención de agujeros(cracks), T-junctions y discontinuidades en el sombreado en diferentes niveles de detalle -Minimización de errores en espacio-objeto y espacio-pantalla -Reducción de efectos tipo ‘popping’ (uso de técnicas como geomorfismo) Rendimiento -Mantenimiento del frame rate -Minimización del número de triángulos -Estructura de datos compacta y rápida recuperación de polígonos individuales -Posibilidad de crear largos strips o fans de triángulos -Soporte de técnicas view-frustum, backface y occlusion culling -Soporte de técnicas que exploten coherencia marco a marco -Gestión de out-of-core Visualizació Visualización 3D de terrenos en tiempo real Visualización de Terrenos Autor Lindstrom Duchaineau Röttger Pajarola Hoppe DeFloriani Evans Lindstrom Lindstrom Pajarola Lario Cignoni Bao Losasso Hwa Trabajo Continuous LoDs Rendering of Height Fields ROAM: Real-Time Optimally Adapting Meshes Real-Time Generation of Continuous LoDs Large Scale Terrain Visualisation using RQT VDPM: View-Dependent Progressive Meshes VARIANT: VAriable Resolution Interactive ANalysis of Terrain R.T.I.Ns: Right-Triangulated Irregular Networks Visualisation of Large Terrains View-Dependent Out-of-Core Visualisation QuadTIN: Quadtree based TINs HB-QTIN: Hyper-Block Quadtree based TINs BDAM: Batched Dynamic Adaptive Meshes LoD-based Clustering Techniques Geometry Clipmaps: Terrain Rendering Using Neste Regular Grids Realtime Optimal Adaptation for Planetary Geometry and Texture: 4-8 Tile Hierarchies (III) Año 1996 1997 1998 1998 1998 2000 2001 2001 2002 2002 2003 2003 2003 2004 2005 Visualizació Visualización 3D de terrenos en tiempo real Visualización de Terrenos (IV) Algoritmo por fuerza bruta strip • Considerar culling • Considerar siempre strips y buffers de vértices etc. Visualizació Visualización 3D de terrenos en tiempo real Visualización de Terrenos (V) Algoritmo por fuerza bruta Visualizació Visualización 3D de terrenos en tiempo real Visualización de Terrenos Métodos básicos de iluminación • Iluminación basada en la altura (height-based lighting) • Iluminación basada en API / Hardware gráfico • Utilización de lightmaps • Iluminación basada en la pendiente (slope-lighting algorithm) Visualizació Visualización 3D de terrenos en tiempo real (VI) Visualización de Terrenos (VII) Métodos básicos de iluminación Iluminación basada en la altura • A mayor altura, mayor intensidad • El más simple, pero el menos realista • No considera el ‘color’ de la luz Visualizació Visualización 3D de terrenos en tiempo real Visualización de Terrenos Métodos básicos de iluminación Iluminación basada en la altura Resultado poco realista Visualizació Visualización 3D de terrenos en tiempo real (VIII) Visualización de Terrenos (IX) Métodos básicos de iluminación Iluminación basada en API / Hardware gráfico • Utiliza, p.e., los mecanismos de iluminación propios de OpenGL (establecimiento de una o varias fuentes de luz, y las características de atenuación, valores difuso/especular, ambiente) • Requiere el cálculo de la normal de cada triángulo a renderizar (¿precálculo? => difícilmente implementable en CLOD) • Perfecto para mallas estáticas pero con malos resultados en dinámicas (necesidad de cálculo en tiempo real, y resultados visuales molestos por el continuo movimiento de triángulos) Visualizació Visualización 3D de terrenos en tiempo real Visualización de Terrenos Métodos básicos de iluminación Utilización de lightmaps • Utilización de una imagen que especifica de forma discreta valores de intensidad de luz • Puede ser de 1 byte (intensidad) o 3 bytes (color) • Multiplican los valores de color de la textura (precálculo o uso de multitexturación) • No es un método de iluminación; es un mecanismo de soporte • Es posible es uso de métodos globales de iluminación para su cálculo Visualizació Visualización 3D de terrenos en tiempo real (X) Visualización de Terrenos (XI) Métodos básicos de iluminación Utilización de lightmaps Visualizació Visualización 3D de terrenos en tiempo real Visualización de Terrenos (XII) Métodos básicos de iluminación Iluminación basada en la pendiente (slope-lighting algorithm) • Sombrear vértices en función de su altura en relación a un vértice vecino Visualizació Visualización 3D de terrenos en tiempo real Visualización de Terrenos (XIII) Métodos básicos de iluminación Iluminación basada en la pendiente (slope-lighting algorithm) Shade = 1.0 – (altura_A – altura_B) / softness Visualizació Visualización 3D de terrenos en tiempo real Visualización de Terrenos (XIV) Métodos básicos de iluminación Iluminación basada en la pendiente (slope-lighting algorithm) Variación de ‘softness’ Visualizació Visualización 3D de terrenos en tiempo real