Estrategias de Optimización Visualización II – 2009 Ing. Juan P.D’Amato.

Slides:



Advertisements
Presentaciones similares
INTELIGENCIA ARTIFICIAL
Advertisements

Inteligencia Artificial
Inteligenica Artificial I Alejandro Permingeat Inteligencia Artificial de Russell y Norving 1° edición 1996 Parte II Capítulo V.
CREANDO HABITACIONES Para crear un cuarto, selecciona Add Room en el menu Add. Se muestra la siguiente ventana: : En la parte.
Desarrollo de Juegos de Video en 3D
Proyecto CC52B Implementación de ray tracing Avances Jong Bor Lee Profesora: María Cecilia Rivara Auxiliar: Eduardo Graells.
TEMA 7 CINEMÁTICA Primera Parte.
TÉCNICA DE DISEÑO BACKTRACKING
Inteligencia Artificial Búsqueda informada y exploración
Integración de Visio con SharePoint 2010 Carlos Junquera Cachero TAM for Developers
PROGRAMACION DE ESTRUCTURAS DE DATOS
ALGORÍTMICA Dpto. Ingeniería de Sistemas y Automática
Búsqueda Informada Heurísticas.
¿QUÉ SE EVALUA EN EL AREA DE MATEMATICAS?
Solución de problemas por búsqueda inteligente
Los Costos Predeterminados
Tema 3. Optimización de Código
Graficación IV. Síntesis de imagen. Detección de superficie visible Para sintetizar una imagen que parezca real, es necesario determinar qué objetos están.
Matemáticas Discretas y Algoritmos
CONTENIDO GENERAL EN UN PROTOCOLO
Real Time Global Illumination for Dynamic scenes Alejandro Drago Cesar Villasana
Modelos de Programación Entera - Heurísticas
Programación Lineal Entera Antonio H. Escobar Z Universidad Tecnológica de Pereira – Colombia Posgrado en Ingeniería – Maestría/Doctorado.
Representación del Conocimiento
Semana 5 Subprogramas..
Temas importantes para el desarrollo de la segunda parte del TPE
HS/HL Removal1 FUNDAMENTOS DE ELIMINACIÓN DE SUPERFICIES OCULTAS Graficación FCC.
J. Trinidad Guillen Bonilla, H. Guillen Bonilla, A. Guillen Bonilla,
Arquitectura de Motores Gráficos para Mundos en 3D Por Sergio J. de los Santos Arquitectura de Motores Gráficos para Mundos en 3D.
Métricas del Software Medidas o conjunto de éstas que nos permite conocer o estimar el tamaño u otra característica sobre un producto de software.Objetivo:
Visualización Computacional de Datos I Graficando objetos 3D en el monitor.
ADMINISTRACION DE NEGOCIOS IV
Teoría de la decisión.
Optimización, Búsqueda Heurística
IP Multicast Simple Multicast Definido en “Simple Multicast: A Design for Simple, Low-overhead Multicast”, Internet.
Diseño y análisis de algoritmos
COMPUTACION 2009 Clase 6 Clase 7.
Estructura de Datos II Equipo 4 Equipo 7 Acosta Montiel Miguel A.
Tablas de Hash.
Fundamentos.  Abstracción Matemática  Rendering  Pre-rendering  Real-time rendering.
Modeling of objects Watt chap. 2, Hearn ,
>> Visibilidad <<
Rendering.
Despliegue de Volúmenes
Superficies Visibles Prof. Fernández et al. (Universidad de la República de Uruguay) - Prof. Möller et.
Ordenación y Búsqueda.
METODOS DE BUSQUEDA INFORMADOS CAPITULO 5
MÉTODO DE PIXELES DE BORDE
Conceptos y práctica del análisis geoestadístico
EL JUEGO DE LOS BACKS..
Simular: Representar una cosa, fingiendo o imitando lo que no es.
Aprendizaje en Árboles de Decisión
APRENDIZAJE ESPERADO Determinar la inversión y su impacto en el presupuesto de capital. Valoración de la inversión mediante los criterios de VAN y TIR.
Introducción a la Robótica mecanismos avanzados Coordinación de Ciencias Computacionales, INAOE Dra Angélica Muñoz Dr Eduardo Morales
Jose María Buades Rubio Visibilidad en Escenas Complejas Entorno de Habitaciones Carretera y Circuitos de carreras.
Visualización Computacional 2
Arboles B (búsqueda externa)
Cognitens-WLS400M Offset de Elemento. 2 Cognitens-WLS400M Información General  Hay dos razones principales para definir el offset de un elemento:  Para.
Introducción a la Programación Orientada a Objetos (POO)
Comportamiento Organizacional y Aprendizaje estratégico
Fundamentos de Programación
Capítulo 2 “Subprogramas/Funciones - Arreglos”
Introducción a los TADs
IVONNE GONZÁLEZ S. ABRIL 2007

Generación Procedural de Terrenos en la GPU
Si se mira el cielo en una clara noche sin luna, los objetos más brillantes que uno ve son los planetas Venus, Marte, Júpiter y Saturno. También se ve.
Las distancias en el espacio
EL TRAZADO DE RAYOS: DIFERENTES TECNICAS, SUS VENTAJAS E INCONVENIENTES.
Lenguaje de Programación II Prof. Rafael Montenegro B. Carrera: T.S.U en Informática Periodo: 2014-I.
Transcripción de la presentación:

Estrategias de Optimización Visualización II – 2009 Ing. Juan P.D’Amato

Visualización de Datos II

 Los datos en 3D pueden ser muy complejos para representar en tiempo real  Se necesita reducir la cantidad de triángulos a renderizar en la escena Una solución, elegir los datos a representar Otra solución, simplificar el modelo Como evaluar la fidelidad de los modelos simplificados ? >200,000 Triángulos

Visualización de Datos II  Frustum  División del espacio ◦ N-Trees, Grillas, Planos  LODS ◦ Discreto, Continuo, View-Dependent  Otros métodos ◦ Clonado ◦ Reemplazo por textura  Detección de colisiones

Visualización de Datos II  Relación Eficiencia del método con respecto a Eficiencia ganada  Espacio utilizado por las estructuras intermedias  Reacción ante cambios

Visualización de Datos II  La posicion y dirección de la vista genera un volumen -> El Frustum de Vista  Los elementos que nos interesan se deben encontrar dentro de este volumen

Visualización de Datos II  Estrategias de clasificación de los elementos para accederlos eficientemente ◦ Grillas Regulares ◦ N-Trees (Quadtrees / Octrees /Kd-Trees / BSP Trees ) ◦ Bounding volumes

Visualización de Datos II  Los BSP(Binary Space Partition) son una generalización de los kD-trees: los planos no necesariamente deben estar alineados a los ejes  Los elementos se clasifican por planos El motor del Half Life 2 se basa en BSP

Visualización de Datos II  Para todos los triángulos T del Objeto ◦ Hang(root, T) ◦ Hang (node, triangle) ◦ If (node.isLeaf)  Node.add(triangle) ◦ else  Pos = classify ( node.plane, triangle)  If (pos = Front)  Hang(node.front,triangle)  Else  Hang(node.back, triangle) Los elementos que nos interesan se deben encontrar dentro de este volumen

Visualización de Datos II  Render(node, eyePos)  Pos = classify (node.plane, eyePos)  //estoy frente al plano  If (pos = Front) ◦ Render(node.front, eyePos) ◦ renderElements() <- chequea que son visibles ◦ Render(node.back, eyePos)  Else ◦ Render(node. back, eyePos) ◦ renderElements() ◦ Render(node. front, eyePos)

Visualización de Datos II  Es una grilla regular, organizada jerárquicamente  Se divide la escena en cuatro bloques, con dos planos alineados, y en forma recursiva  Se crea un árbol con cuatro nodos hijos

Visualización de Datos II  Número de bloques en un nivel: n(nivel) = 4 nivel  Número total de bloques: N(nivel) = … + 4 nivel = (4 (nivel+1) – 1) / 3  El overhead final en comparación a una grilla regular: ◦ 33% de bloqueas extras

Visualización de Datos II  Ventajas ◦ Genera una buena distribución de los elementos ◦ El costo de búsquedas es de ( log #Elementos)  Desventajas ◦ Mayor complejidad para visualizar ◦ Las modificaciones tienen un costo elevado

Visualización de Datos II  Idea : solo procesar los bloques cercanos al observador.  Los bloques lejanos pueden eliminarse  La carga/descarga de los bloques varía de acuerdo a la posición de la cámara  El uso de memoria es constante

Visualización de Datos II  Ventajas: ◦ Es simple implementarlo con arreglos 2D, y también para llevarlo a 3D  Desventajas: ◦ Sirve cuando la distribución en el espacio es homogénea  Ideal para organizar objetos en escenas

Visualización de Datos II  El espacio se divide por volúmenes ◦ Se usan representaciones matemáticas simples(Esferas, cubos, prismas (boxes)) ◦ Los volúmenes pueden subdivirse en secciones más pequeñas ◦ Usado generalmente con objetos completos ◦ El bounding volume óptimo se calcula durante el pre- procesamiento  Lo más común es utilizarse en colisiones de objetos

Visualización de Datos II  Requiere dos datos únicamente: ◦ Posiciones con respecto al centro del objeto y radio de la esfera

Visualización de Datos II  AABB (Axis Aligned Bounded Box): ◦ Rápido para calcular las colisiones, pero no se adecuan perfectamente al objeto ◦ AABB se re calcula cuando el objeto rota o se mueve

Visualización de Datos II  Los “convex hull” pueden utizarse  Es más costoso su manejo: ◦ Rotación ◦ Cálculo de intersección ◦ Punto interno al volumen

Visualización de Datos II  Bounding boxes orientados (OBB) son más adecuados al objeto pero más costosos para hacer los cálculos: ◦ Los OBBs para objetos estáticos pueden calcularse previamente ◦ Alternativa : aplicar las mismas transformaciones que el objeto antes de aplicar los cálculos  Conclusión: balancear las diversas técnicas de BV

Visualización de Datos II  Ventajas: ◦ Cálculos simples ◦ Requieren poco espacio en memoria (para la esfera es una posicion y un radio)  Desventajas ◦ No tienen buena precisión ◦ No reducen la cantidad de polígonos a representar

Visualización de Datos II  Para todos los objetos3D O de la escena ◦ //Método abstracto de la clase Bound ◦ If (O.bounding.insideFrustum()  O.Render ◦ Else  Continue;

Visualización de Datos II  El problema: ◦ Conjuntos de datos pueden ser muy complejos para representar en tiempo real  Una solución: ◦ Usar geometría mas simples de modelos pequeños o distantes. ◦ Eso es lo conocido como Level of Detail or LOD

Visualización de Datos II  Crear levels of detail (LODs) de los objetos: 69,451 polígonos 2,502 p 251 p76 p

Visualización de Datos II  Level of detail (LOD) es una herramienta para mantener la interacción ◦ Balancea la relación perfomance/fidelidad de las mallas ◦ Puede usarse junto con otras técnicas:  Parallel rendering  Occlusion culling  Image-based rendering  Tipos principales de LOD ◦ Discreto/sustitución (1976) ◦ Continuo (1996)

Visualización de Datos II  LOD tradicional: ◦ Los LODs de cada objeto se crean previamente con una resolución determinada ◦ En tiempo de ejecución se elije el LOD adecuado de acuerdo a la distancia (o por otro criterio)

Visualización de Datos II  Ventajas ◦ Granularidad adecuada:  Utiliza los polígonos más representativos  La fidelidad es la más elevada ◦ La mejor aproximación para objetos muy detallados  Permite simplificarlos drásticamente  Desventajas ◦ Es costoso en tiempo real

Visualización de Datos II  Combinar con otras técnicas (BSP, Octree)  Cuando usar esta técnica en la escena, y con qué objetos? ◦ LOD discretos : objetos muy replicados y con un número razonable de polígonos ◦ LOD continuo : Mapas, grillas de agua (espacios navegables y uniformes)

Visualización de Datos II  Texturas (mippmaps)

Visualización de Datos II  Utilizar texturas en lugar de triángulos  Se aplican mapas de normales (bumpmaps) calculados para recrear las “sombras” del elemento  Se puede automatizar el cálculo de los mapas de normales si la topología de la malla es relativamente simple

Visualización de Datos II 1683 k Triangulos10 k Triangulos 10 k Triangulos + Shading

Visualización de Datos II  Se tienen varias instancias del mismo objeto, del que solo cambian las transformaciones o atributos mínimos, como el color  Por cada nuevo objeto ◦ Se hace referencia a la misma estructura de la geometría (vértices, triángulos, texturas ) ◦ Se crean las transformaciones propias a cada objeto

Visualización de Datos II  Renderizar el objeto a textura  En el momento del render, se dibuja un polígono con la textura mapeada  Útil para objetos estáticos, como árboles o edificios

Visualización de Datos II TécnicasProsCons LOD  Discreto  Continuo  Jerárquico  En general, la visualización no depende de la técnica  No existe una técnica general  No es viable cuando los objetos se deforman SP  Grillas  Quadtree/Oct ree  BSP  Genera una buena distribución de los elementos  El costo de búsquedas es de ln #Elementos  Mayor complejidad para visualizar  Las modificaciones tienen un costo elevado Bound  Esferas  AABB  OBB  Sencilla  Conveniente para objetos deformables  Eficiente  No son dependientes de la visualización  Son malas aproximaciones

Visualización de Datos II  No provee estructuras tipo Octrees o BSP pero provee mecanismos para el manejo de datos ◦ Estructuras + eficientes ◦ LODs de Textura (Mippmaps) ◦ Culling Queries ◦ Splines variables en GPU (sólo en placas nuevas) ◦ Planos de corte

Visualización de Datos II  Render : // Cada cara es un triangulo while (i<numFaces) glBegin(GL_TRIANGLES) glVertex3fv( Vertexes[ Faces[i] ]) glVertex3fv( Vertexes[ Faces[i+1] ]) glVertex3fv( Vertexes[ Faces[i+2] ]) i+=3 glEnd()

Visualización de Datos II  OffLine genLists(listID); //offline while (i<numFaces) glBegin(GL_TRIANGLES) glVertex3fv( Vertexes[ Faces[i] ]) glVertex3fv( Vertexes[ Faces[i+1] ]) glVertex3fv( Vertexes[ Faces[i+2] ]) i+=3 glEnd()  Render glCallList(listID); -> transfer\Transfer.exetransfer\Transfer.exe

Visualización de Datos II  La idea : Verificar que un objeto será dibujado en pantalla ◦ 1ro.- Se renderizan objetos simples, tipo esferas o cajas ◦ 2do.- Se leen cuantos píxeles afectaron del Buffer ◦ Si la cantidad de pixeles > cota  3ro.- Se renderiza la escena final Código OpenGL : // Deshabilito la profundidad glDepthMask(GL_FALSE); // Habilito el test de Occlusion glEnable(GL_OCCLUSION_TEST_HP); // Dibujo el Bounded glutSolidCube(S_SIZE*2); glDisable(GL_OCCLUSION_TEST_HP); // Obtengo el resultado

Visualización de Datos II  Detección de colisiones comprende encontrar donde dos (o más) primitivas se intersecan Las colisiones pueden ser muy complejas

Visualización de Datos II  Los problemas principales: ◦ Una detección correcta requiere chequear cada polígono de un objeto con todos los del otro : O(#polígonos 2 ), ◦ Calcular el tiempo en que se producirá una colisión ◦ Encontrar el punto de intersección entre ambos

Visualización de Datos II  Detección de colisiones con Bounding Spheres. Eficiente para calcular si un punto p es interno |p – S centre | < S radius  Detección de colisiones con bounding boxes alineados a los ejes (eng: AABB) ◦ Intersección muy simple AABBs ◦ Dados dos AABBs A & B, no existe intersección si:  (AXmax < BXmin) || // A totalmente a la izquierda B  (AXmin > BXmax) || // A totalmente a la derecha B  (AYmax < BYmin) || // A totalmente por debajoB  (AYmin > BYmax) || // A totalmente por arriba B  (AZmax < BZmin) || // A totalmente al frente B  (AZmin > BZmax) // A totalmente por detrás B

Visualización de Datos II  El problema del time stamp fijo: ◦ Si la intersección se calcula en cada frame => Ciertas colisiones pueden perderse. ◦ Un objeto a gran velocidad puede atravesar totalmente a otro objeto en ese plazo de tiempo.

Visualización de Datos II  Se debe calcular un tiempo correcto  Una colisión errónea puede producir efectos diferentes a los esperados

Visualización de Datos II  Soluciones al problema del timestamp ◦ Cálculo de colisiones no dependientes del Frame Rate ◦ Estimar el tiempo posible de la colisión ◦ Usar un volumen mayor para las colisiones ◦ Clasificar los objetos de acuerdo a la velocidad

Visualización de Datos II  Remover pares de objetos que nunca colisionarán  Realizar pruebas con BOs simples  No testear objetos que se encuentran muy separados  Obviar objetos no-visibles

Visualización de Datos II  Se distribuyen los objetos utilizando grillas regulares.  Se comparan los objetos con no más de una celda de distancia: ◦ for all objects O  for y = O.grid_y-1 to O.grid_y+1  for x = O.grid_x-1 to O.grid_x+1  for all objects O’ in grid(x,y)  check collision O O’

Visualización de Datos II  Árboles de Bounding volumes: BSP u Octrees ◦ Chequear objetos/polígonos contra el contenido del nodo del árbol ◦ Si hay intersección, seguir con los hijos del nodo  Chequear entre dos árboles A y B: ◦ Chequear intersección entre los nodos de A y B ◦ Si no hay intersección  Exit ◦ Si A o B son hojas  Retornar intersección más cercana ◦ Sino  1. Para cada par de hijos de A, B  chquear Intersección

Visualización de Datos II

 Tutorial Frustum ◦ 