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)