Arquitectura de Motores Grficos para Mundos en 3D - PowerPoint PPT Presentation

1 / 33
About This Presentation
Title:

Arquitectura de Motores Grficos para Mundos en 3D

Description:

Un Escenario compuesto por decenas de miles(o aun mas) de Pol gonos, el cual ... Suele ser C ncavo, pero puede ser convexo, lo cual no se lleva bien con la ... – PowerPoint PPT presentation

Number of Views:88
Avg rating:3.0/5.0
Slides: 34
Provided by: sergiodel4
Category:

less

Transcript and Presenter's Notes

Title: Arquitectura de Motores Grficos para Mundos en 3D


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

2
Con que nos encontramos...
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.

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

4
Frustum Culling
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.

5
Frustum Culling
Frustum Culling
A,B,C
A
X
Y
Objetos contenidos en Esferas
B
C
X,Y,Z
Objetos contenidos en AABBs
Z
Debo Renderizar CBXY No Debo Renderizar AZ
Cámara
ViewFrustum
6
Quadtree/Octree
Quadtree/Octree
Características generales
  • 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.

7
Armado de QuadTree
Armado de QuadTree
Generación de la raíz y sus hijos.
Generación del siguiente nivel.
8
Posibilidades de QuadTree
Posibilidades de QuadTree
Profundidad Adaptativa
Profundidad Uniforme
9
Quadtree/Octree
Quadtree/Octree
Características de Profundidad Adaptativa
  • 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 Uniforme
  • 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.

10
BSP Tree
BSP Tree
Primera Impresión
  • 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

11
BSP Tree
BSP Tree
X
D
X
A
B
C
B
Y
E
X
A
X
B
C
B
Y
E
D
12
BSP Tree
BSP Tree
Primeras Características a tener en cuenta
  • 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.

13
BSP Tree
BSP Tree
H
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.
G
E
J
L
D
A
B
I
C
K
14
BSP Tree
BSP Tree
H
F
  • 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.

G
E
J
L
D
A
B
I
C
K
15
BSP Tree
BSP Tree
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).
H
F
A
Nodos traseros
G
E
Nodos frontales
J
B
C
E
F
G
H
I
K
D
L
J
LF
LB
DF
DB
LF
DF
A
B
I
LB
DB
C
K
16
BSP Tree
BSP Tree
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
H
F
A
Nodos traseros
Nodos frontales
G
E
E
J
B
C
I
K
D
L
LB
DB
F
DF
G
H
LF
DF
A
J
LF
B
I
LB
DB
C
K
17
BSP Tree
BSP Tree
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
H
F
A
G
E
E
I
J
D
L
B
K
F
G
LF
DF
A
DF
B
C
LB
H
J
I
LB
DB
C
K
DB
LF
18
BSP Tree
BSP Tree
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
H
F
G
E
E
I
J
D
L
B
K
F
G
LF
DF
A
DF
C
LB
H
J
S
B
I
LB
DB
S
V
V
V
S
S
DB
S
C
K
LF
S
V
S
V
S
19
BSP Tree
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.
20
BSP Tree
BSP Tree
Es nuestro punto de Prueba, los nodos con fondo
negro son los recorridos en la clasificación.
H
F
A
G
E
E
I
J
D
L
B
K
F
G
LF
DF
A
DF
B
C
LB
H
J
S
I
LB
DB
S
V
V
V
S
S
C
K
DB
S
LF
S
V
S
V
S
21
BSP Tree
BSP Tree
Es nuestro punto de Prueba, los nodos con fondo
negro son los recorridos en la clasificación.
H
F
A
G
E
E
I
J
D
L
B
K
F
G
LF
DF
A
DF
B
C
LB
H
J
S
I
LB
DB
S
V
V
V
S
S
C
K
DB
S
LF
S
V
S
V
S
22
PVS(Potential Visibility Set)
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.

23
PVS(Potential Visibility Set)
PVS(Potential Visibility Set)
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.
A
H
F
E
I
G
E
4
B
K
F
G
J
5
D
L
3
DF
C
LB
H
J
S
LF
DF
A
S
V
V
V
S
S
DB
S
B
5
3
2
DB
I
LB
2
LF
S
1
V
S
C
V
S
K
1
4
24
PVS(Potential Visibility Set)
PVS(Potential Visibility Set)
Luego para Renderizar la escena, recorreremos el
árbol, uniendo las hojas visibles, y se dibujaran
las primitivas encontradas en los nodos
visitados.
A
H
F
E
I
G
E
4
B
K
F
G
J
5
L
3
D
DF
C
LB
H
J
S
LF
DF
A
S
V
V
V
S
S
DB
S
B
5
3
2
DB
I
LB
2
LF
S
1
V
S
C
V
S
K
1
4
25
Portales y Sectores
Portales y Sectores
Características
  • 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.

26
Portales y Sectores
Portales y Sectores
Descripción
  • 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.

27
Portales y Sectores
Portales y Sectores
Portal
  • 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.

28
Portales y Sectores
Portales y Sectores
Sector
  • 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.

29
Portales y Sectores
Portales y Sectores
Este es nuestro Mundo 3D, un conjunto de Faces
sin clasificar
30
Portales y Sectores
Portales y Sectores
Cámara
Indica Portal Visible
S1
S2
Indica Portal Oculto
ViewFrustum
S5
Sectores Visibles
Sectores Ocultos
S3
S4
SX - Indica Sector X
S6
S7
S8
31
Conclusiones
Conclusiones
  • En casos de Encontrarse solo uno de estos casos
  • Para Exteriores Abiertos Quadtree/Octree
  • Para Interiores BSPTree con Portales o con PVS.

32
Contacto
Contacto
Sergio J. de los Santos sergiojdelos_at_yahoo.com.ar
33
Bibliografía Recomendada...
Bibliografía Recomendada...
  • www.melax.com
  • www.gamasutra.com
  • www.gametutorials.com
Write a Comment
User Comments (0)
About PowerShow.com