Particiones binarias del espacio (BSP) · Particiones binarias del espacio Particiones del espacio...

Preview:

Citation preview

Particiones binarias del espacio

(BSP)

Particiones binarias del espacio

Contenido

1. Introduccion.

2. Quadtrees.

3. Arboles BSP.

4. Aplicacion al algoritmo del pintor.

5. Construccion de un arbol BSP.

6. Conclusiones.

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

Contenido

1. Introduccion.

2. Quadtrees.

3. Arboles BSP.

4. Aplicacion al algoritmo del pintor.

5. Construccion de un arbol BSP.

6. Conclusiones.

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

Para representar en pantalla parte del “mundo virtual”

almacenado en memoria hay que determinar para cada pıxel

de la pantalla el objeto que es visible en ese pıxel:

• Eliminacion de superficies ocultas.

Otras aplicaciones:

• Localizacion.

• Deteccion de colisiones.

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

Algoritmo z-buffer

Algoritmo del pintor

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

Particiones del espacio

* Subdividen el espacio creando un arbol, de forma que en

cada region la geometrıa sea “simple”.

* Tecnicas de subdivision

• Basadas en el espacio: quadtrees, octrees.

• Basadas en los objetos: BSP.

Los dos tipos tienen ventajas e inconvenientes, y el

rendimiento depende muchas veces de la aplicacion y el tipo

de datos que aparezcan.

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

Contenido

1. Introduccion.

2. Quadtrees.

3. Arboles BSP.

4. Aplicacion al algoritmo del pintor.

5. Construccion de un arbol BSP.

6. Conclusiones.

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

Quadtrees

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

Quadtrees

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

Quadtrees

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

Quadtrees

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

Quadtrees

Q0

Q1 Q2 Q3 Q4Q1

Q5 Q6 Q7 Q8 Q9 Q10 Q11 Q12

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

Quadtrees

• Analogo 3-dimensional: octrees.

Aplicaciones:

• Localizacion.

• Deteccion de colisiones.

• Interseccion de regiones.

? Ventaja: facilidad de construccion y manejo.

? Inconveniente: no se adapta a la geometrıa.

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

Contenido

1. Introduccion.

2. Quadtrees.

3. Arboles BSP.

4. Aplicacion al algoritmo del pintor.

5. Construccion de un arbol BSP.

6. Conclusiones.

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

Definicion del arbol BSP

La BSP se obtiene dividiendo recursivamente con una lınea.

Las lıneas divisorias cortan tambien los objetos en

fragmentos. La division continua hasta que hay solo un

fragmento en el interior de cada region.Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

Definicion del arbol BSP

Arbol que corresponde a la BSP. Cada hoja corresponde a

una cara de la subdivision final, y el fragmento que hay en

esa cara se almacena en la hoja. Cada nodo interno

corresponde a una lınea divisoria, almacenada en el nodo.Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

Definicion del arbol BSP8<:

d = 2, h recta ax+by+c=0; h+, h− semiplanos;

d = 3, h plano ax+by+cz+d=0; h+, h− semiespacios.

S ≡ Conjunto de objetos

T (S) ≡ Arbol binario correspondiente

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

Definicion recursiva del arbol binario T (S):

- Si card(S) ≤ 1:

• T (S) es una hoja, v;

• En la hoja se almacena el objeto (si existe), S(v).

- Si card(S) > 1:

• La raız ν de T (S) almacena:

– una recta (plano) hν,

– conjunto S(ν) de objetos contenidos en hν.

• Hijo izquierdo de ν: raız de un arbol T (S−), con

S− = {h−ν ∩ S : s ∈ S}.

• Hijo derecho de ν: raız de un arbol T (S+), con

S+ = {h+ν ∩ S : s ∈ S}.

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

¿Hojas del arbol T (S)?

Regiones (convexas) con un solo objeto.

¿Tamano del arbol T (S)?

Se define como el tamano total de los conjuntos S(ν), ν ∈ T .

Observacion: Si no utilizamos divisiones “inutiles”, el

numero de nodos es lineal en el tamano del arbol.

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

Contenido

1. Introduccion.

2. Quadtrees.

3. Arboles BSP.

4. Aplicacion al algoritmo del pintor.

5. Construccion de un arbol BSP.

6. Conclusiones.

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

Si el observador esta en h+ν , ningun elemento en h−ν tapa a

ninguno en h+ν .

p: punto de vista.

p

h+ν

h−ν

h

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

Algoritmo PINTOR (T , p)

1. Sea ν la raız de T.

2. if ν es una hoja

3. then pintar objetos en S(ν)

4. else if p ∈ h+ν

5. then PINTOR (T−, p)

6. pintar objetos en S(ν)

7. PINTOR (T+, p)

8. else if p ∈ h−ν9. then PINTOR (T+, p)

10. pintar objetos en S(ν)

11. PINTOR (T−, p)

12. else % p ∈ hν%

13. PINTOR (T+, p)

14. PINTOR (T−, p)

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

¿De que depende la eficiencia del algoritmo?

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

¿De que depende la eficiencia del algoritmo?

Esencialmente, del tamano del BSP.

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

¿De que depende la eficiencia del algoritmo?

Esencialmente, del tamano del BSP.

Dado un conjunto de objetos en R2 o R3,

¿admiten un BSP de tamano “pequeno”?

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

Contenido

1. Introduccion.

2. Quadtrees.

3. Arboles BSP.

4. Aplicacion al algoritmo del pintor.

5. Construccion de un arbol BSP.

6. Conclusiones.

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

• Sea S ⊂ R2 un conjunto de segmentos rectilıneos que no

se cortan.

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

• Sea S ⊂ R2 un conjunto de segmentos rectilıneos que no

se cortan.

• Consideraremos auto-particiones, i.e., solo consideramos

lıneas que contienen uno de los segmentos como lıneas

divisoras.

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

• Sea S ⊂ R2 un conjunto de segmentos rectilıneos que no

se cortan.

• Consideraremos auto-particiones, i.e., solo consideramos

lıneas que contienen uno de los segmentos como lıneas

divisoras.

• Sea l(s) la lınea que contiene un segmento s.

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

• Sea S ⊂ R2 un conjunto de segmentos rectilıneos que no

se cortan.

• Consideraremos auto-particiones, i.e., solo consideramos

lıneas que contienen uno de los segmentos como lıneas

divisoras.

• Sea l(s) la lınea que contiene un segmento s.

• Algoritmo recursivo para construir un BSP.

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

Algoritmo 2DBSP(S)

Input. Conjunto S = {s1, s2, . . . , sn} de segmentos.

Output. Un arbol BSP de S.

1. if card(S ≤ 1)

2. then crear arbol T con una sola hoja y almacenar S

en dicha hoja.

3. return T

4. else % usar l(s1) como lınea divisoria %

5. S+ = {s ∩ l(s1)+ : s ∈ S}; T+ := 2DBSP (S+)

6. S− = {s ∩ l(s1)− : s ∈ S}; T− := 2DBSP (S−)

7. Crear BSP con raız ν, subarbol izqdo T−,

subarbol dcho T+, S(v) = {s ∈ S : s ⊂ l(s1)}.

8. return T.Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

¿Cual es el tamano del BSP?

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

¿Cual es el tamano del BSP?

puede llegar a ser cuadratico.

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

¿Cual es el tamano del BSP?

puede llegar a ser cuadratico.

¿Podemos escoger s1 “con mas cuidado’‘’?

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

¿Cual es el tamano del BSP?

puede llegar a ser cuadratico.

¿Podemos escoger s1 “con mas cuidado’‘’?

Quizas sı, pero resulta complicado

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

¿Cual es el tamano del BSP?

puede llegar a ser cuadratico.

¿Podemos escoger s1 “con mas cuidado’‘’?

Quizas sı, pero resulta complicado

¿Que ocurre si lo escogemos aleatoriamente?

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

Proposicion.- Sea S′ una permutacion aleatoria de los

segmentos de S. El numero esperado de fragmentos

generados por 2DBSP(S′) es O(n log n).

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

Proposicion.- Sea S′ una permutacion aleatoria de los

segmentos de S. El numero esperado de fragmentos

generados por 2DBSP(S′) es O(n log n).

Dem.

si segmento fijo.

Si cortamos por l(si), ¿a cuantos segmentos cortamos?

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

Proposicion.- Sea S′ una permutacion aleatoria de los

segmentos de S. El numero esperado de fragmentos

generados por 2DBSP(S′) es O(n log n).

Dem.

si segmento fijo.

Si cortamos por l(si), ¿a cuantos segmentos cortamos?

si

d = 0

d = 1

d = 2

d = 2

d = 1d = 0

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

Sean

• N = # segmentos que cortan l(si) entre si y sj

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

Sean

• N = # segmentos que cortan l(si) entre si y sj

• distsi(sj) =

8<:

N, si l(si) ∩ sj 6= ∅;

∞, en otro caso.

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

Sean

• N = # segmentos que cortan l(si) entre si y sj

• distsi(sj) =

8<:

N, si l(si) ∩ sj 6= ∅;

∞, en otro caso.

• sj1 , sj2 , . . . , sj2 , los segmentos entre si y sj.

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

Sean

• N = # segmentos que cortan l(si) entre si y sj

• distsi(sj) =

8<:

N, si l(si) ∩ sj 6= ∅;

∞, en otro caso.

• sj1 , sj2 , . . . , sj2 , los segmentos entre si y sj.

Entonces:

Pr[l(si) corte sj] =1

2 + distsi(sj).

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

Sean

• N = # segmentos que cortan l(si) entre si y sj

• distsi(sj) =

8<:

N, si l(si) ∩ sj 6= ∅;

∞, en otro caso.

• sj1 , sj2 , . . . , sj2 , los segmentos entre si y sj.

Entonces:

Pr[l(si) corte sj] =1

2 + distsi(sj).

(i debe ser el menor ındice del conjunto {i, j, j1, . . . , jk})

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

Podemos acotar el numero esperado de cortes generados por

si:

E[# cortes generados por si] ≤Xj 6=i

1

2 + distsi(sj)

≤ 2

n−2Xk=0

1

k + 2≤ 2 ln n

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

Podemos acotar el numero esperado de cortes generados por

si:

E[# cortes generados por si] ≤Xj 6=i

1

2 + distsi(sj)

≤ 2

n−2Xk=0

1

k + 2≤ 2 ln n

Por tanto,

E[# cortes generados por todos los segmentos ] ≤ 2n ln n

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

Podemos acotar el numero esperado de cortes generados por

si:

E[# cortes generados por si] ≤Xj 6=i

1

2 + distsi(sj)

≤ 2

n−2Xk=0

1

k + 2≤ 2 ln n

Por tanto,

E[# cortes generados por todos los segmentos ] ≤ 2n ln n

Observacion: Se puede demostrar que al menos la mitad de

las permutaciones conducen a una BSP de tamano

≤ n + 4n ln n

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

¿Cual es la complejidad del algoritmo?

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

¿Cual es la complejidad del algoritmo?

• n ln n llamadas recursivas,

• O(n) para cada llamada,

En total, O(n2 ln n)

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

Problema abierto

¿Es cierto que para un conjunto S de segmentos en el plano

existe siempre un BSP de tamano O(n), o existen conjuntos

que requieren O(n ln n)?

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

Problema abierto

¿Es cierto que para un conjunto S de segmentos en el plano

existe siempre un BSP de tamano O(n), o existen conjuntos

que requieren O(n ln n)?

• En R3, todo analogo pero mas complicado.

• En particular, S: conjunto de n triangulos.

• El tamano esperado del BSP es O(n2).

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

Contenido

1. Introduccion.

2. Quadtrees.

3. Arboles BSP.

4. Aplicacion al algoritmo del pintor.

5. Construccion de un arbol BSP.

6. Conclusiones.

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

Particiones binarias del espacio

* Herramientas originalmente desarrolladas para eliminar

partes ocultas.

* Util tambien para

• clipping-culling

• deteccion de colisiones

* Parte esencial de juegos como Doom o Quake.

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

Otras aplicaciones de las BSP

Para representar en pantalla parte del ”mundo virtual” en

memoria hay que:

• Determinar que parte del modelo queda dentro del

”volumen de vision” - clipping, culling.

• Representar los objetos del volumen de vision en

pantalla:

– Eliminacion de partes ocultas

∗ z-buffer

∗ Algoritmo del pintor

– Rasterizacion (nivel de pixel)

• Si el entorno es dinamico, detectar colisiones.

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)

Particiones binarias del espacio

¿Preguntas?

Pedro Ramos – Raquel Viana (Dpto. Matematicas, UAH)