21
Visualizaci Visualización 3D de n 3D de terrenos en tiempo real terrenos en tiempo real Visualización de Terrenos (XV) Estudio de 3 algoritmos clásicos • Geomipmapping (Willem H. de Boer) • Quadtree (Stefan Roettger) • ROAM (Mark Duchaineau) Visualizaci Visualización 3D de n 3D de terrenos en tiempo real terrenos en tiempo real Visualización de Terrenos (XVI) Geomipmapping • Entra plenamente en la categoría ‘GPU friend’ (poco cálculo CPU, próximo a la idea de filtrado de número global de triángulos) • Sólo considera LoD dependiente de vista, no con respecto a las características del terreno (coincidencia con enfoques más modernos...) • Basado en la técnica ‘mipmapping’ (reducción del efecto del aliasing mediante la construcción de una pirámide de imágenes de distinto nivel de detalle ...)

Visualización de Terrenos (XV) - users.dsic.upv.esusers.dsic.upv.es/~jlinares/terrain/Material seminari terrenys 2.pdf · • Lluvia, niebla, rayos y nieve •Nubes • Navegación

  • Upload
    vutuong

  • View
    216

  • Download
    0

Embed Size (px)

Citation preview

VisualizaciVisualizacióón 3D den 3D deterrenos en tiempo realterrenos en tiempo real

Visualización de Terrenos (XV)

Estudio de 3 algoritmos clásicos

• Geomipmapping (Willem H. de Boer)

• Quadtree (Stefan Roettger)

• ROAM (Mark Duchaineau)

VisualizaciVisualizacióón 3D den 3D deterrenos en tiempo realterrenos en tiempo real

Visualización de Terrenos (XVI)

Geomipmapping

• Entra plenamente en la categoría ‘GPU friend’ (poco cálculo CPU, próximo a la idea de filtrado de número global de triángulos)

• Sólo considera LoD dependiente de vista, no con respecto a las características del terreno (coincidencia con enfoques más modernos...)

• Basado en la técnica ‘mipmapping’ (reducción del efecto del aliasing mediante la construcción de una pirámide de imágenes de distinto nivel de detalle ...)

VisualizaciVisualizacióón 3D den 3D deterrenos en tiempo realterrenos en tiempo real

Visualización de Terrenos (XVII)

Geomipmapping

• División del terreno en ‘patches’ (trozos)

• Clasificarlos en niveles de detalle en función de su cercanía respecto al observador

VisualizaciVisualizacióón 3D den 3D deterrenos en tiempo realterrenos en tiempo real

Visualización de Terrenos (XVIII)

Geomipmapping

• Toma selectiva de vértices (basada en fans de triángulos)

VisualizaciVisualizacióón 3D den 3D deterrenos en tiempo realterrenos en tiempo real

Visualización de Terrenos (XIX)

Geomipmapping

• Toma selectiva de vértices (basada en strips de triángulos)

VisualizaciVisualizacióón 3D den 3D deterrenos en tiempo realterrenos en tiempo real

Visualización de Terrenos (XX)

Geomipmapping

• T-junctions => fronteras entre trozos de distintos niveles de detalle (3 triángulos tienen en A alturas distintas)

VisualizaciVisualizacióón 3D den 3D deterrenos en tiempo realterrenos en tiempo real

Visualización de Terrenos (XXI)

Geomipmapping

Aparición de cracks ...

VisualizaciVisualizacióón 3D den 3D deterrenos en tiempo realterrenos en tiempo real

Visualización de Terrenos (XXII)

Geomipmapping

Soluciones:

• Añadir vértices

• Eliminar vértices

VisualizaciVisualizacióón 3D den 3D deterrenos en tiempo realterrenos en tiempo real

Visualización de Terrenos (XXIII)

Geomipmapping

• Hay que anotar en cada patch y por cada frame si tiene que omitir vértices o no (estudiando el LoD de los vecinos)

VisualizaciVisualizacióón 3D den 3D deterrenos en tiempo realterrenos en tiempo real

Visualización de Terrenos (XXIV)

Geomipmapping

• La omisión de vértices sólo ante vecinos de menor LoD

VisualizaciVisualizacióón 3D den 3D deterrenos en tiempo realterrenos en tiempo real

Visualización de Terrenos (XXV)

Geomipmapping

• Único cálculo CPU => determinación del LoD de cada patch

• Proceso de actualización:1. Calcular para cada patch la distancia

desde el observador a su centro

2. Establecer relación entre LoD y dicha distancia (tabulada, proporcional, criterios de error en pantalla etc.)

VisualizaciVisualizacióón 3D den 3D deterrenos en tiempo realterrenos en tiempo real

Visualización de Terrenos (XXVI)

Geomipmapping

Un esquema de implementación de Geomipmapping

VisualizaciVisualizacióón 3D den 3D deterrenos en tiempo realterrenos en tiempo real

Visualización de Terrenos (XXVII)

Geomipmapping

• View-frustum culling => unidad básica el patch (alternativas: vértice o fan)

VisualizaciVisualizacióón 3D den 3D deterrenos en tiempo realterrenos en tiempo real

Visualización de Terrenos (XXVIII)

Geomipmapping -> Aplicando geomorphing

Popping => Efectos sobre iluminación y sombreado (soluciones: integrar lightmap en textura o multitexturación)

VisualizaciVisualizacióón 3D den 3D deterrenos en tiempo realterrenos en tiempo real

Visualización de Terrenos (XXIX)

Geomipmapping

VisualizaciVisualizacióón 3D den 3D deterrenos en tiempo realterrenos en tiempo real

Visualización de Terrenos (XXX)

Geomipmapping

Cuestiones sobre las que reflexionar ...

¿ Cómo gestionar texturas en geomipmapping ?

¿ Y una estrategia out-of-core ?

¿ Streaming ?

VisualizaciVisualizacióón 3D den 3D deterrenos en tiempo realterrenos en tiempo real

Visualización de Terrenos (XXXI)

Quadtree

• Matriz de booleanos del mismo tamaño que el height-map

• Proceso de render de forma recursiva. Caso base -> hoja -> render de un fan parcial o total

• Misma técnica que Geomipmapping para evitar cracks

Árbol de grado 4

VisualizaciVisualizacióón 3D den 3D deterrenos en tiempo realterrenos en tiempo real

Visualización de Terrenos (XXXII)

Quadtree

Regeneración de la malla:

• Requiere más CPU que el Geomipmapping

• Aproximación recursiva top-down:1. Empezamos desde el root y descendemos por el árbol estudiando dónde hace

falta más detalle

2. En cada paso, se comprueba el nodo y se estudia su división o no, guardando el resultado (1 ó 0) en la matriz del quadtree

3. Si se resuelve dividir (1), se invoca la recursión sobre los 4 hijos

VisualizaciVisualizacióón 3D den 3D deterrenos en tiempo realterrenos en tiempo real

Visualización de Terrenos (XXXIII)

Quadtree

Proceso de render con subsanación de cracks

VisualizaciVisualizacióón 3D den 3D deterrenos en tiempo realterrenos en tiempo real

Visualización de Terrenos (XXXIV)

Quadtree

¿Cuando subdividir?

• Considerar la cercanía al observador

• Considerar, también, el relieve del terreno (criterio últimamente en discusión)

VisualizaciVisualizacióón 3D den 3D deterrenos en tiempo realterrenos en tiempo real

Visualización de Terrenos (XXXV)

Quadtree

Consideración cercanía al observador

Criterio de resolución global

(calidad global de la malla)

Aumenta en cada división

VisualizaciVisualizacióón 3D den 3D deterrenos en tiempo realterrenos en tiempo real

Visualización de Terrenos (XXXVI)

Quadtree

Consideración relieve del terreno

VisualizaciVisualizacióón 3D den 3D deterrenos en tiempo realterrenos en tiempo real

Visualización de Terrenos (XXXVII)

Quadtree

Cuestiones sobre las que reflexionar ...

¿ Cómo gestionar texturas en quadtree? ¿ Hay la misma correspondencia LoD geometría/textura con respecto al geomipmapping ?

¿ Y una estrategia out-of-core ?

¿ Streaming ?

VisualizaciVisualizacióón 3D den 3D deterrenos en tiempo realterrenos en tiempo real

Visualización de Terrenos (XXXVIII)

ROAM Real-time Optimally Adapting Meshes

• Basado en árboles binarios de triángulos

• Diversas implementaciones (complejidad variable)

• Muy discutido últimamente, hasta alcanzar su última revisión basada en texturas 4-8

VisualizaciVisualizacióón 3D den 3D deterrenos en tiempo realterrenos en tiempo real

Visualización de Terrenos (XXXIX)

ROAM Real-time Optimally Adapting Meshes

• Árbol binario de triángulos

VisualizaciVisualizacióón 3D den 3D deterrenos en tiempo realterrenos en tiempo real

Visualización de Terrenos (XL)

ROAM Real-time Optimally Adapting Meshes

• Triángulos rectángulos isósceles

• Con 2 triángulos base puede representar superficies rectangulares

• Se puede obtener mayor grado de ‘continuidad’ en los niveles de detalle

VisualizaciVisualizacióón 3D den 3D deterrenos en tiempo realterrenos en tiempo real

Visualización de Terrenos (XLI)

ROAM Real-time Optimally Adapting Meshes

• Las operaciones básicas para obtener la triangulación son la división y la fusión

VisualizaciVisualizacióón 3D den 3D deterrenos en tiempo realterrenos en tiempo real

Visualización de Terrenos (XLII)

ROAM Real-time Optimally Adapting Meshes

• Las divisiones forzadas aseguran evitar ‘cracks’

VisualizaciVisualizacióón 3D den 3D deterrenos en tiempo realterrenos en tiempo real

Visualización de Terrenos (XLIII)

ROAM Real-time Optimally Adapting Meshes

• Únicamente con divisiones (forzadas), partiendo de la triangulación base, podemos obtener cualquier triangulación (árbol binario de triángulos)

• Con la introducción de la fusión, puedo transitar siempre de una triangulación concreta a otra => COHERENCIA ENTRE FRAMES

VisualizaciVisualizacióón 3D den 3D deterrenos en tiempo realterrenos en tiempo real

Visualización de Terrenos (XLIV)

ROAM Real-time Optimally Adapting Meshes

=> Enfoque sólo con divisiones

VisualizaciVisualizacióón 3D den 3D deterrenos en tiempo realterrenos en tiempo real

Visualización de Terrenos (XLV)

ROAM Real-time Optimally Adapting Meshes

=> Enfoque divisiones y fusión

VisualizaciVisualizacióón 3D den 3D deterrenos en tiempo realterrenos en tiempo real

Visualización de Terrenos (XLVI)

ROAM Real-time Optimally Adapting Meshes

• Diversos criterios de determinación de las prioridades para los triángulos, generalmente basadas en errores métricos (p.e. distorsiones geométricas en espacio pantalla)

• Diversos métodos de optimización (view frustum culling, stripping, etc.)

VisualizaciVisualizacióón 3D den 3D deterrenos en tiempo realterrenos en tiempo real

Efectos atmosféricos (I)

VisualizaciVisualizacióón 3D den 3D deterrenos en tiempo realterrenos en tiempo real

Efectos atmosféricos (II)

Una clasificación general:

• Sky/Atmospheric rendering

• Color del firmamento

• Cúpula o bóveda del cielo (sky-dome)

• Sky-box

• Sol y luna

• Estrellas

• Arco iris

• Lluvia, niebla, rayos y nieve

• Nubes

• Navegación subacuática

VisualizaciVisualizacióón 3D den 3D deterrenos en tiempo realterrenos en tiempo real

Efectos atmosféricos (III)

Sky/Atmospheric rendering • Color del firmamento

• Evidentemente, no es sólo azul

• Es un elemento determinante en la consecución de realismo

• Causado por: la dispersión de las moléculas del aire y los aerosoles, la altitud del sol, la dirección de la vista, la altitud del observador y la luz reflejada por la superficie

• También afectaría al mecanismo de sombreado de la superficie

VisualizaciVisualizacióón 3D den 3D deterrenos en tiempo realterrenos en tiempo real

Efectos atmosféricos (IV)

Sky/Atmospheric rendering • Color del firmamento

Sky-dome

• Aplicación de una textura

• Coloreado de vértices

VisualizaciVisualizacióón 3D den 3D deterrenos en tiempo realterrenos en tiempo real

Efectos atmosféricos (V)

Sky/Atmospheric rendering • Color del firmamento

Sky-dome

VisualizaciVisualizacióón 3D den 3D deterrenos en tiempo realterrenos en tiempo real

Efectos atmosféricos (VI)

Sky-Box de 6 texturas

Sky/Atmospheric rendering • Color del firmamento

VisualizaciVisualizacióón 3D den 3D deterrenos en tiempo realterrenos en tiempo real

Efectos atmosféricos (VII)

• Características de las partículas:Life Span, Current Position, Velocidad, Mass, Color, Translucency, Size, Air resistente.

Lluvia

VisualizaciVisualizacióón 3D den 3D deterrenos en tiempo realterrenos en tiempo real

Efectos atmosféricos (VIII)

Niebla

VisualizaciVisualizacióón 3D den 3D deterrenos en tiempo realterrenos en tiempo real

Efectos atmosféricos (IX)

Nubes

VisualizaciVisualizacióón 3D den 3D deterrenos en tiempo realterrenos en tiempo real

Efectos atmosféricos (X)

• Malla compuesta de polígonos.

– Un buffer de normales y vértices.– Actualización de las normales de los vértices en

tiempo real. – Cálculos de los vértices para crear físicamente

series realistas de ondas y olas.– Generación automática para las coordenadas

de las texturas para el mapa de reflexión del agua.

Agua