Arquitectura de Motores Gráficos para Mundos en 3D Por Sergio J. de los Santos Arquitectura de Motores Gráficos para Mundos en 3D.

Slides:



Advertisements
Presentaciones similares
Tania Guzmán García Luis González Varela Alexandre González Rivas
Advertisements

ESTRUCTURA DE DATOS Unidad 04 TDA no lineales - Árboles.
Sistemas de Graficación
Descripción del movimiento: Movimientos horizontales
Pilas y Colas Fundamentos Estructuras de Datos (Programación 2)
TABLAS EN WORD.
Grupo 4 Matías Melgar Pablo Carbonell
MATEMÁTICAS DISCRETAS.
El presente material contiene
TEORÍA GENERAL DE SISTEMAS
ESTRUCTURAS DE DATOS AVANZADAS
PROGRAMACION DE ESTRUCTURAS DE DATOS
DIAGRAMA DE COMPONENTES INTEGRANTES Córdova Vásquez Giovanny Escobar Alvares Calixto Gomez Quinteros Adelaida Pinto Flores Yarmila.
Cap. 24 – La Ley de Gauss Una misma ley física enunciada desde diferentes puntos de vista Coulomb  Gauss Son equivalentes Pero ambas tienen situaciones.
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.
Cont. Arbol Binario de Búsqueda (2). Sobre los recorridos Las versiones recursivas de los recorridos son costosas debido a la gran cantidad de llamadas.
Tema Nº4.
Teoría de Grafos.
Supongamos que nos plantean el siguiente problema:
GRAFOS HUGO ARAYA CARRASCO.
REDES BAYESIANAS Y DECISIÓN ESTADÍSTICA
TEMA 5 ACOTACION.
Grafos. Un Grafo G es un par de conjuntos (V, E), donde V es un conjunto no vacío de elementos llamados vértices o nodos y E es un conjunto formado por.
GAME MAKER. INTRODUCCIÓN Game Maker es un entorno para el desarrollo de juegos, creado en 1999 por Mark Overmars, profesor del departamento de Ciencia.
Teoria de grafos.-clase 4
Definiciones: conjuntos, grafos, y árboles
Árboles, montículos y grafos Cola de prioridades, montículos
DR. ERNESTO SUAREZ.
Método Científico.
Ejemplo de aplicación de las ANN
Introducción a Funciones de una variable
Arquitectura de la Información Prof. Adelaide Bianchini – Dpto. de Computación y Tecnología de la Información, Universidad Simón Bolívar. Febrero 2006.
Estructura de Datos y Algoritmos
Diseño y análisis de algoritmos
Estrategias de Optimización Visualización II – 2009 Ing. Juan P.D’Amato.
Mt. Martín Moreyra Navarrete.
Geo procesos.
Qué son las Bases de Datos Conceptos Básicos. Definición de Bases de Datos  Una base de datos o banco de datos es un conjunto de datos que pertenecen.
LECTURA E INTERPRETACION DE PLANOS
TEÓRICO Representación Gráfica de los Procesos Industriales: “CORTES CAÑERÍA” T 6.- Este material de apoyo es complementario al teórico dictado y a los.
Árboles Recomendado: 1. Nivelación Funciones
Parte II. Algorítmica. 5. Backtracking. 1. Análisis de algoritmos.
El enfoque tradicional del enfoque de aceptación
Este modelo utiliza árboles para la representación lógica de los datos. Este árbol esta compuesto de unos elementos llamados nodos. El nivel más alto.
UNIDAD 3 (3ra parte) UNIDAD 4
Jose María Buades Rubio Visibilidad en Escenas Complejas Entorno de Habitaciones Carretera y Circuitos de carreras.
Una introducción a la computación evolutiva
DIAGRAMAS ENTIDAD RELACIÓN
Desarrollo de Videojuegos Ma.Elena Melón Jareda ITESM-CEM Departamento de Sistemas de Información y Computación Colocación de guardias.
Comenzando con Excel 2000 Abrir Excel 2000 Pulsamos INICIO Elegimos PROGRAMAS Pulsamos en MICROSOFT EXCEL 2000 Elementos de la ventana de Excel 2000 Barra.
Sesión 3: Teoría de Grafos
Definiciones: conjuntos, grafos, y árboles
EXAMENES PAU JUNIO Fase General
Tipos de pagina web. Existen diferentes clasificaciones, pero las clasificaremos según la forma en la que la página se sirve para ser enviada a la pc.
Geometría primitiva y Transformaciones
Cecilia Laborde González
Introducción a la Programación Orientada a Objetos (POO)
PARCIAL 1.
BUSCADORES . Hubo un tiempo, al comienzo de Internet en los años 90, en que buscar algo por la red de redes era una tarea agotadora y aburrida, ahora.
ARBOLES GENERALIZADOS
Árboles Binarios de Búsqueda (ABB)
1. Iniciación a la arquitectura de la información.
Matemáticas Discretas MISTI
Recorridos de grafos Segunda Parte M.C. Meliza Contreras González.
ELEMENTOS DE DIBUJO TÉCNICO
EL ESQUEMA.
Para cada uno de los atributos, indicaremos su campo de descripción. Cuando un campo no dispone de este (como el.
Algoritmos voraces Códigos de Huffman. Descripción del problema Tenemos un archivo de entrada. Asumiremos que el archivo está compuesto de bytes (enteros.
Por: MILENA OCAMPO GIRALDO Docente de primaria. Febrero 2014.
Componentes de Sistemas y Equipos Industriales
Transcripción de la presentación:

Arquitectura de Motores Gráficos para Mundos en 3D Por Sergio J. de los Santos Arquitectura de Motores Gráficos para Mundos en 3D

Con que nos encontramos... Una gran cantidad de Entidades(Objetos) los cuales pueden interactuar entre si. Un Escenario compuesto por decenas de miles(o aun mas) de Polígonos, el cual será el Mundo contenedor de todas las interacciones entre las Entidades. Será necesario también saber cuando algo ve a otra cosa. De hecho no tiene sentido dibujar cosas que no se ven. Además puede servir para IA y entre otras cosas. Con que nos encontramos...

Algunas Herramientas... Frustum Culling Quadtree/Octree BSPTree - KDTree PVS(Conjuntos Potencialmente Visibles) Portales y Sectores Algunas Herramientas...

Frustum Culling El View Frustum es la “caja” contenedora del espacio visible por la “cámara” Esta formada por 6 Planos, y suele tener forma de pirámide Cortada, en el caso de vistas con Perspectiva y cubica en caso de proyección ortogonal. La idea de Frustum Culling es testear Objetos simples (Esferas, AABB, OBB, etc.) con el ViewFrustum a fin de saber si entran en este, lo cual indica en principio que son visibles. Frustum Culling

ViewFrustum B A C X Y Z Cámara A,B,C X,Y,Z Frustum Culling Debo Renderizar: C;B;X;Y No Debo Renderizar: A;Z Objetos contenidos en Esferas Objetos contenidos en AABBs

Quadtree/Octree Es un Arbol el cual Posee por cada Nodo 4 u 8 hijos,dependiendo si es Quadtree u Octree Respectivamente. Cada Hijo es una Subdivisión Espacial del Padre. Cada Nodo es una Caja y cada hijo una Subdivisión de esta de manera equitativa. Puede Tener una Profundidad Definida o ser adaptativo a la geometría. Muy Util para Entornos Abiertos. Características generales Quadtree/Octree

Armado de QuadTree Generación de la raíz y sus hijos. Generación del siguiente nivel. Armado de QuadTree

Profundidad AdaptativaProfundidad Uniforme Posibilidades de QuadTree

Quadtree/Octree Menor Cantidad de nodos, menos uso de memoria. Cálculos de Culling mas rápidos en subarboles menos profundos. Las Hojas mas grandes tienen gran posibilidad de contener mas entidades/Objeto. Características de Profundidad Adaptativa Mayor cantidad de Nodos, por lo tanto mas uso de memoria. Cálculos de Culling mas lentos, en comparación con el de Prof. Adap. No existen nodos con mayor probabilidad de contener mas Entidades. Características de Profundidad Uniforme Quadtree/Octree

BSP Tree Fue descripto por primera vez en 1969 por Shumaker, pero recién a principios de los 90 se empezó a usar en Vídeo Juegos., su fin inicial era de HSR(Eliminación de Superficies Ocultas) Los motores gráficos mas renombrados los usan: Quake(Todos), Unreal, etc. Consiste en un árbol binario que subdivide el Espacio en subespacios mas pequeños. Cada nodo posee un HiperPlano con el cual se clasificara la geometría del espacio asignado al nodo Primera Impresión

BSP Tree ABCB D E X X Y X BC A X B ED Y

Los Arboles BSP construidos a partir de planos divisores paralelos a los ejes se llaman KDTree. Los Arboles BSP clásicos, suelen crearse utilizando los planos que contienen a las propias primitivas a clasificar. Primeras Características a tener en cuenta

BSP Tree D C B A I K L H G J E F Tomemos las primitivas A..L Cada una representa una Pared de nuestro Mundo 3D. La idea de construcción de un árbol BSP es la siguiente. Partimos de una lista de primitivas, tomamos una de ellas, de acuerdo a un criterio que elijamos, extraemos de ella el hiperplano que la contiene y clasificamos al resto en función de este plano. Luego tendremos dos listas(en principio), una con las primitivas que quedaron por delante y otra con las que quedaron por detrás del plano clasificador. Entonces repetiremos el proceso de forma recursiva hasta que no queden primitivas por clasificar.

BSP Tree Notese que pueden darse 4 situaciones al clasificar una Primitiva: Que quede totalmente delante del Plano Que quede totalmente detrás del plano Que sea coplanar al plano Que quede Partida por el Plano En los 1ros dos casos sabemos que hacer, en el caso 3(Coplanar) se agrega a la lista de primitivas del Nodo que se esta creando. En el caso de que la primitiva quede Partida, se debe reemplazar esta por otras 2 primitivas que resulten de partir a la primera según indica el corte del plano clasificador, luego cada parte se agregara a la lista correspondiente. D C B A I K L H G J E F

BSP Tree D C B A I K L H G J E F Aplicando el Algoritmo, elegimos como Primitiva de clasificación a A, extraemos su Plano y clasificamos al Resto. Notese que D y L son Partidos por el Plano de A, por lo tanto se generaran nuevas primitivas en base a D(DF y DB) y a L(LF y LB). A BCEFGHI J K LF Nodos traseros Nodos frontales LBDFDB LF LB DF DB

BSP Tree D C B A I K L H G J E F Ahora tomaremos el Nodo Frontal(Hijo de A) y repetiremos eligiendo una primitiva, en nuestro caso E, repetiremos recursivamente sobre cada hijo, hasta que cada primitiva quede en un Nodo clasificador. Notese que cuando esto suceda detrás de cada hoja habrá espacio Sólido(Estaríamos dentro de la pared) y delante seria habitable, entiendase que estamos adentro de la habitación A BC E IK Nodos traseros Nodos frontales LBDB LF LB DF DB F GH J LF DF

BSP Tree D C B A I K L H G J E F Cuando terminemos llegaremos a esto, dependiendo claro del criterio que usemos para elegir las primitivas de para los planos de clasificación de cada nodo A B C EI K LB DB LF LB DF DB FG HJ LF DF

BSP Tree D C B A I K L H G J E F Ahora a nuestro árbol BSP le agregaremos detrás de cada nodo hoja un Nodo que llamaremos “Sólido”(S) y delante de cada Hoja uno que se llamara “Vacío”(V). A B C EI K LB DB LF LB DF DB FG HJ LF DF S V V S VV V S S SS S S

BSP Tree Características ocultas de un árbol BSP El árbol BSP que acabamos de construir posee una característica geométrica particular, todas la primitivas forman parte de sólidos con volumen. Es decir no hay polígonos sueltos. Esto suele llamarce CSG(Construcción Geométrica Sólida). Podremos comprobar que si elegimos un punto dentro de nuestro mundo y recorremos el árbol clasificandolo según los planos, llegaremos a una Hoja Sólida si esta dentro de la pared, y a una hoja Vacía si esta en la habitación.

BSP Tree D C B A I K L H G J E F Es nuestro punto de Prueba, los nodos con fondo negro son los recorridos en la clasificación. A B C EI K LB DB LF LB DF DB FG HJ LF DF S V V S VV V S S SS S S

BSP Tree D C B A I K L H G J E F A B C EI K LB DB LF LB DF DB FG HJ LF DF S V V S VV V S S SS S S Es nuestro punto de Prueba, los nodos con fondo negro son los recorridos en la clasificación.

PVS(Potential Visibility Set) Se trata de tener precalculada en cada Sector la información de que otros Sectores son Visibles. Suele usarse con BSPTree(Quake por Ej..) Los cálculos de PVS, se basan en aplicar Raytracing para diferentes puntos de prueba ubicados en los diferentes Sectores, y así poder determinar que Sectores son visibles desde el cual se esta calculando.

PVS(Potential Visibility Set) D C B A L H G J E F A B C EI K LB DB LFDF DB FG HJ LF DF S V V S VV V S S SS S S Tomaremos de Ejemplo uno de los Sectores generados por nuestro árbol BSP. Ahora el Sector 2 podremos ver desde nuestro sector cualquier otro sector salvo el 1. I K LB

PVS(Potential Visibility Set) C B L H G A B C EI K LB DB LF DB FG HJ LF DF S V V S VV V S S SS S S Luego para Renderizar la escena, recorreremos el árbol, uniendo las hojas visibles, y se dibujaran las primitivas encontradas en los nodos visitados. I K LB A J 3 D E F DF 5

Portales y Sectores El sistema resultante es análogo a un Grafo donde los Nodos son los llamados “Sectores” y las aristas los “Portales”. Solo tienen gran utilidad en ambientes interiores. Permiten cálculos de visualización en geometría dinámica. Permiten Paginar al Mundo de manera simple y eficaz. Características

Portales y Sectores La idea es subdividir el Mundo en diferentes áreas o habitaciones las cuales se interconectan con “portales”. Podemos decir que cada área es análoga a una habitación y cada portal a una Puerta que nos permite acceder a ella. Descripción

Portales y Sectores Suele representarse de forma simple(Una línea en 2D, un Rectángulo en 3D) de forma tal que sea rápido saber si se ve o no(Si entra en el View Frustum o no) No requiere que apunte a un nodo ubicado a continuación de otro, ya que puede servir para teletransportes(Ej.: Portales de Quake3). En los cálculos de visualización los portales acotan al viewfrustum, al momento de chequear en los Sectores vecinos si los Objetos son visibles. Portal

Portales y Sectores Representa un Area Habitable o Habitación Suele asociarse a la idea de un Nodo de un Grafo. Se conecta con otros Sectores vía los Portales. Suele ser Cóncavo, pero puede ser convexo, lo cual no se lleva bien con la generación automática de portales. Sector

Portales y Sectores Este es nuestro Mundo 3D, un conjunto de Faces sin clasificar

Portales y Sectores Indica Portal Visible SX - Indica Sector X S1S2 S5 S4 S3 S6 S7S8 Cámara ViewFrustum Sectores Visibles Sectores Ocultos Indica Portal Oculto

Conclusiones En casos de Encontrarse solo uno de estos casos: Para Exteriores Abiertos: Quadtree/Octree Para Interiores: BSPTree con Portales o con PVS.

Contacto Sergio J. de los Santos

Bibliografía Recomendada