Computación Gráfica. Eduardo Fernández

Documentos relacionados
Motivación. Superficie en sentido opuesto Superficie ocluida Superficies superpuestas Superficies intersectadas

Algoritmos de Visibilidad

GRAFICACIÓN Unidad III

ANEXO C: ALGORITMOS DE INTERSECCIÓN

INDICE 1. Introducción: Graficación por Computador 2. Programación en el Paquete SRGP 3. Algoritmos Básicos de Gráficos de Barrido para Dibujar

Detección de Colisiones. Héctor Navarro

Relleno de Polígonos 1

Rellenado de rectángulos y polígonos

Visualización y Realismo: Problemas Capítulo 2

Computación Geométrica Descomposición en polígonos monótonos

Computación Geométrica Tema 5: Triangulación de polígonos. Triangulación por descomposición. Descomposición en polígonos monótonos.

Métodos para detección de superficies visibles (Hearn-Baker)

Capítulo VI Visualización de QuadTrees/OctTrees

El pipeline de visualización es el conjunto de

Capítulo 3. Visualización

REPASO DE ALGEBRA VECTORIAL

ÁLGEBRA LINEAL II Práctica

GEOMETRÍA ANALÍTICA EN EL ESPACIO (PRODUCTOS ESCALAR, VECTORIAL Y MIXTO) PRODUCTO ESCALAR DE DOS VECTORES. número real

Análisis de imágenes digitales

Ejercicio 7: Hallar las coordenadas del punto B sabiendo que M es el punto medio del segmento [AB], A(7,8), M(3,-2).

GEOMETRÍA RECTA EN EL ESPACIO. Un punto P ( P x,p y,p z ) y un vector v ( v x,v y,v z ). Dos puntos A ( A x,a y,a z ) y B ( B x,b y,b z ).

Determinación de Superficies Visibles

ÁLGEBRA LINEAL II Práctica

Superficies Visibles. Dpto. de Informática Fac. Cs. Físico-Mat. y Nat. Universidad Nacional De San Luis Argentina

Graficación. Ray-Casting. Ray-Casting Seudo-Algoritmo. Intersección con la esfera. Rayos. Trazado de Rayos de Luz

Introducción a 3D Transformaciones 3D

Práctica 5 Máximos y Mínimos. Multiplicadores de Lagrange. Escuela de Matemática Instituto Tecnológico de Costa Rica

UNIDAD XVII LA LINEA RECTA. Modulo 4 Ecuación de la recta

1 VECTORES EN EL ESPACIO

Rectas y Planos en el Espacio

x + 1 y 4 z x + 3 y z 1 x 3 y 2 z + 8

Rectas y Planos en el Espacio

Introducción a) b) c) d) 9. a) b) c) d)

1. Dibujar un punto del primer cuadrante y su simétrico respecto del plano vertical de proyección.

Guía de Rectas en el plano. Prof. Wilson Herrera. 1. Hallar la ecuación de la recta que pasa por el punto a(1, 5) y tiene de pendiente 2.

Métodos para testear intersecciones

Razonamiento Geométrico Tema 5: Triangulación de polígonos. Sesión 10: Descomposición en polígonos monótonos

Superficies Visibles. Dpto. de Informática Fac. Cs. Físico-Mat. y Nat. Universidad Nacional De San Luis Argentina

Árboles de Partición Quadtrees Octrees K-d trees

Tema 6. Tema 6. Tema 6. Modelado 3D 6.1 Introducción 6.2 Modelado plano de superficies 6.3 modelado de sólidos. 6.1 Introducción

Índice. 1. Visibilidad. Concepto y técnicas generales. 2. Eliminación de líneas ocultas

Espacio Euclídeo. a b = a b. a b = b a c)

Geometría. 2 (el " " representa el producto vectorial)? En caso afirmativo, justifíquese. En caso contrario, póngase un ejemplo que lo confirme.

Facultad de Ciencias Naturales y Museo Trabajo Práctico Nº 1

Texturas. q Texture mapping (color) q Bump mapping q Normal mapping q Displacement mapping q Otros

Árboles de Partición Quadtrees Octrees K-d trees

hallar; a) Ecuación del plano que pasa por r y por (1, 3, 8) b) Distancia desde el origen al plano anterior

GEOMETRÍA MÉTRICA. Plano afín:

PROBLEMAS RESUELTOS SELECTIVIDAD ANDALUCÍA 2001 MATEMÁTICAS II TEMA 3: ESPACIO AFIN Y EUCLIDEO

ÁLGEBRA LINEAL II Práctica

A(50,10,25) B(70,5,50) C(52,-10,37) A(45,15,35) B(45,-10,15) C(45,50,60) C(45,30,43) A(20,-5,70) B(45,-10,80) C(60,14,22)

NO TIENE TRAZA HORIZONTAL PORQUE ES PARALELA AL PH

Solución. Las dimensiones de la caja para un coste mínimo son x = 4 cm e y = 80/(4 2 ) = 5m

CORRECCIÓN PRUEBA 2ª EVALUACIÓN

Ecuación del plano. Conociendo. N n x,n y,n z y la distancia n a la que se encuentra el plano del

OBJETIVOS: Relacionar espacialmente las proyecciones diédricas que describen a un objeto en sus tres dimensiones

EJERCICIOS DE REPASO DE MATEMÁTICAS I PENDIENTES

Necesitamos tener los vectores de dirección de ambas rectas. Para calcular el ángulo que forman, aplicamos la siguiente fórmula:

Modelado de Objetos 3D I

1 Representación por superficies de polígonos

UNIVERSIDADES PÚBLICAS DE LA COMUNIDAD DE MADRID PRUEBA DE ACCESO A LAS ENSEÑANZAS UNIVERSITARIAS OFICIALES DE GRADO MATERIA: DIBUJO TÉCNICO II

9. Adaptación a la Geometría en Pantalla

PROBLEMAS RESUELTOS SELECTIVIDAD ANDALUCÍA 2001 MATEMÁTICAS II TEMA 3: ESPACIO AFIN Y EUCLIDEO

ESCUELA PREPARATORIA OFICIAL NO.16 MATERÍA: GEOMETRÍA ANALITICA GUÍA DE ESTUDIO PARA LA ÚLTIMA OPORTUNIDAD DE ACREDITAR LA MATERÍA

Capítulo I Introducción

1. Operaciones con vectores

GEOMETRÍA MÉTRICA. Usando sólo la escena: Si A( 1, 1,0) y B(k, 2,2), qué dos valores puede tomar k para que d(a,b)=3? Solución:

El análisis cartesiano (René Descartes ) descubrió que las ecuaciones pueden tener una representación gráfica.

EJERCICIOS DE GEOMETRÍA

Métodos para testear intersecciones

SISTEMA DIÉDRICO: PUNTO, RECTA, PLANO: Sistemas de representación. El Sistema diédrico ELEMENTOS DEL SISTEMA DIÉDRICO

UNIVERSIDADES PÚBLICAS DE LA COMUNIDAD DE MADRID PRUEBA DE ACCESO A LAS ENSEÑANZAS UNIVERSITARIAS OFICIALES DE GRADO MATERIA: DIBUJO TÉCNICO II

1º BACH DIBUJO TÉCNICO I SISTEMA AXONOMÉTRICO PERSPECTIVA ISOMÉTRICA Y CABALLERA

GEOMETRÍA. Septiembre 94. Determinar la ecuación del plano que pasa por el punto M (1, 0, [1,5 puntos]

Visión artificial y Robótica Modelos de movimiento y mapas. Depto. de Ciencia de la Computación e Inteligencia Artificial

Geometría de las superficies

ÁLGEBRA LINEAL II Práctica

Sombras F 2 V 2 G 2 N 2 I 2S K 2 V' 2S H 2 F 2S V 2S H 2S M 2 E 2 B 2 C 2 A 2 L 2 C 1 H 1S K 1 H 1 G 1 M 1 B 1 V 1 F 1 V' 1S N 1 V 1S E 1

1) Calcula los límites de la siguiente función en 0 y + : 3x+sen x f(x)= x. 2) Estudia la continuidad y derivabilidad de la siguiente función en x=0:

DIBUJO TÉCNICO II EJERCICIOS DE APOYO. Prof. Jesús Macho Martínez

A. VECTORES 1. VECTORES FIJOS Y VECTORES LIBRES

Geometría Analítica. GEOMETRÍA ANALÍTICA PLANA SISTEMA DE COORDENADAS RECTANGULARES 1. DE UN PUNTO 2. DISTANCIA ENTRE DOS PUNTOS

1. Determine el valor de la constante k para que la recta kx + (3 k)y + 7 = 0 sea perpendicular a la recta x + 7y + 1 = 0

Facultad de Ciencias Naturales y Museo Trabajo Práctico Nº

Detección de Colisiones

Razonamiento Geométrico Tema 5: Triangulación de polígonos. Sesión 9: Algoritmos iniciales

Ecuaciones de la recta en el espacio

Triangulación de polígonos

Facultad de Ciencias Naturales y Museo Trabajo Práctico Nº

GUIA Nº3 GEOMETRIA EN EL ESPACIO

A RG. Diédrico 32. Cubo apaoyado en plano oblicuo Hoja 1/2

UNIDAD 13 LA CIRCUNFERENCIA Y LA PARÁBOLA

Trazo de Primitivas Geométricas I

Vista tridimensional

GUIA PARA EXTRAORDINARIO ASIGNATURA: MATEMATICAS III I.- CONSTESTA CORRECTAMENTE LO QUE SE TE PIDE, DADA LA SIGUIENTE FUNCION:

Integrales de Superficie.

Transcripción:

Computación Gráfica Eduardo Fernández

Determinación de superficies visibles Basado en: Capítulo 13 Del Libro: Introducción a la Graficación por Computador Foley Van Dam Feiner Hughes - Phillips

Dos métodos fundamentales 1.- Algoritmo de precisión de imagen: Por cada (píxel de la imagen) { } Determinar el objeto más cercano al observador que es atravesado por el rayo proyector a través del píxel; Dibujar el píxel con el color apropiado;

Dos métodos fundamentales 2.- Algoritmo de precisión de objeto: Por cada (objeto del mundo) { } Determinar aquellas partes del objeto cuya vista no está obstruida por otras partes del mismo objeto o por otro objeto; Dibujar esas partes con el color apropiado;

2 métodos fundamentales Diferencias En precisión de objeto no se considera la resolución de la pantalla para los cálculos => el dibujo en pantalla es el último paso. En precisión de imagen, al ampliar una imagen hay que rehacer todos los cálculos. Los algoritmos de precisión de objeto se hicieron inicialmente para sistemas gráficos vectoriales. Los algoritmos de precisión de imagen se hicieron para sistemas gráficos de barrido. Los algoritmos más recientes combinan la precisión de imagen y la precisión de objeto.

Técnicas generales para algoritmos eficientes 1. Coherencia 2. Transformación en perspectiva 3. Extensiones y volúmenes acotantes 4. Eliminación de caras posteriores 5. Partición espacial 6. Jerarquía

Técnicas generales para algoritmos eficientes 1.- Coherencia Coherencia = similitud local, continuidad, etc. Motivación de la coherencia: ahorrar cálculos. Hay 8 tipos de coherencia identificados: 1. Coherencia de objetos 2. Coherencia de caras 3. Coherencia de aristas 4. Coherencia de aristas implicadas 5. Coherencia de líneas de barrido 6. Coherencia de áreas 7. Coherencia de profundidad 8. Coherencia de cuadros

Técnicas generales para algoritmos eficientes 1.- Coherencia 1. Coherencia de objetos Si un objeto A está separado de otro B, no es necesario fijarse en la superposición de cada parte de A con cada parte de B 1. Coherencia de caras Las propiedades de las superficies varían suavemente sobre una misma cara. Se pueden hacer cálculos incrementales. 1. Coherencia de aristas Una arista cambia de visibilidad sólo cuando cruza detrás de otra arista (visible) o penetra en una cara visible.

Técnicas generales para algoritmos eficientes 1.- Coherencia 4. Coherencia de aristas implicadas Si una cara penetra a otra, se genera una nueva arista (la línea de intersección). Esta se puede determinara a partir de 2 ptos de intersección. 4. Coherencia de líneas de barrido Entre una línea de barrido y otra, los tramos visibles de los objetos difieren muy poco. 4. Coherencia de áreas Píxeles adyacentes en general se corresponden con una misma cara visible.

Técnicas generales para algoritmos eficientes 1.- Coherencia 7. Coherencia de profundidad Partes cercanas de una misma superficie están muy cerca en profundidad. Superficies distintas en el mismo lugar de la pantalla están a mayor separación de profundidad. 8. Coherencia de cuadros Las imágenes del mismo ambiente en dos instantes sucesivos en el tiempo casi siempre serán bastante similares. Los calculos realizados para una imagen se pueden reutilizar en la siguiente.

Técnicas generales para algoritmos eficientes 2.- Transformación de perspectiva P 3 =(x 3, y 3, z 3 ) Centro de proyección P 1 =(x 1, y 1, z 1 ) P 2 =(x 2, y 2, z 2 ) Se hacen transformaciones de normalización, para que los rayos proyectores sean paralelos al eje z (proyección paralela), o para que los rayos proyectores emanen del origen (proyección en perpectiva).

Técnicas generales para algoritmos eficientes 2.- Transformación de perspectiva Proyección paralela: puntos están en el mismo proyector si x 1 =x 2, y 1 =y 2 x y z Proyección de perspectiva: puntos xestán en el mismo proyector si x 1 /z 1 =x 2 /z 2, y 1 /z 1 =y 2 /z 2 x 1 x 2 y z 1 z 2 z

Técnicas generales para algoritmos eficientes 2.- Transformación de perspectiva y (-1,1,-1) y (-1,1,-1) z z x (a,-a,-a) x (1,-1,0) -a=z min Volumen en perspectiva normalizado (Cap. 6)

Técnicas generales para algoritmos eficientes 2.- Transformación de perspectiva + + = 0 1 0 0 1 1 1 0 0 0 0 1 0 0 0 0 1 min min min z z z M z min -1

Técnicas generales para algoritmos eficientes 2.- Transformación de perspectiva y y z z x x

Técnicas generales para algoritmos eficientes 3.- Extensiones y volúmenes acotantes Y Z X

Técnicas generales para algoritmos eficientes 3.- Extensiones y volúmenes acotantes y z Prueba minmax x No hay superposición si: ( ((x max2 <x min1 ) or (x max1 <x min2 )) and ((y max2 <y min1 ) or (y max1 <y min2 )) )

Técnicas generales para algoritmos eficientes 3.- Extensiones y volúmenes acotantes

Técnicas generales para algoritmos eficientes 3.- Extensiones y volúmenes acotantes Y Caja acotante, o volumen acotante. Prueba minmax La prueba incluye el control de z ((z max2 <z min1 ) or (z max1 <z min2 )) Z X

Técnicas generales para algoritmos eficientes 3.- Extensiones y volúmenes acotantes Si hay varios posibles vol. acot., cómo se los elige? T = bb + oo T= Costo de los test de intersección de un objeto. b= Número de veces que el volumen acotante es testeado. B= Costo de calcular un test de intersección entre 2 v.a. o= Número de veces que el objeto es testeado. O= El costo de calcular una intersección entre 2 objetos.

Técnicas generales para algoritmos eficientes 4.- Eliminación de caras posteriores Perspectiva Paralela X X Z Z

Técnicas generales para algoritmos eficientes 5.- Partición Espacial Se divide un problema grande en otros más pequeños. Se asigna objetos a grupos espacialmente coherentes. Por ej.: se divide el plano de proyección en una malla rectangular, y se determina en qué sección está cada objeto La partición puede ser adaptable (si hay objetos distribuidos de forma desigual) Por ej.: Estructura de árboles de octantes y cuadrantes.

Técnicas generales para algoritmos eficientes 5.- Partición Espacial E D C A B

Técnicas generales para algoritmos eficientes 5.- Partición Espacial

Técnicas generales para algoritmos eficientes 6.- Jerarquía Edificio Pisos 1 2 3 4 5 6 Aptos 1 2 3

ALGORITMOS

Y Algoritmo de z-buffer x=1 Línea de barrido y s z i z i+1 x i xi+1= x i + 1 X

Algoritmo de z-buffer Cálculo de profundidad de un plano. Ax + By + Cz + D = 0 z= (- D - Ax - By)/C = (- D - By)/C x A/C z i = (- D - By s )/C x i A/C z i+1 = (- D - By s )/C (x i +1) A/C = z A/C i

Algoritmo de z-buffer void memoria_z int pz; /*la z del polígono en las coord de píxel(x,y)*/ { for (y = 0; y< YMAX; y++){ for (x = 0; x < XMAX; x++) { Se inicializan escribir_píxel(x,y,valor_fondo); las matrices escribir_z(x,y,0); } } for (cada poligono) { for (cada píxel en la proyeccion del poligono){ pz = valor z del polig. En las coord. (x,y); if (pz>= leer_z(x,y)){ escribir_z(x,y,pz); escribir_píxel(x,y, color del polig en (x,y)); } } } } Ojo, en el Foley dice >=!!

Algoritmo de z-buffer 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 + = 05 05 05 05 05 05 05 0 05 05 05 05 05 05 0 0 05 05 05 05 05 0 0 0 05 05 05 05 0 0 0 0 05 05 05 0 0 0 0 0 05 05 0 0 0 0 0 0 05 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Algoritmo de z-buffer 05 05 05 05 05 05 05 0 05 05 05 05 05 05 0 0 05 05 05 05 05 0 0 0 05 05 05 05 0 0 0 0 05 05 05 0 0 0 0 0 05 05 0 0 0 0 0 0 05 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 4 3 5 4 3 6 5 4 3 7 6 5 4 3 8 7 6 5 4 3 + = 05 05 05 05 05 05 05 0 05 05 05 05 05 05 0 0 05 05 05 05 05 0 0 0 0 5 05 05 05 0 0 0 0 05 6 0 5 05 03 0 0 0 0 05 7 05 6 05 04 03 0 0 0 05 8 07 06 05 04 03 0 0 0 0 0 0 0 0 0 0

y 1 y s Y Algoritmo de z-buffer Si no se ha determinado el plano pero se tienen las coordenadas de los vértices del polígono z 1 z a z p z b Línea de barrido z a =z 1 -(z 1 -z 2 )(y 1 -y s )/(y 1 -y 2 ) z b =z 1 -(z 1 -z 3 )(y 1 -y s )/(y 1 -y 3 ) y 2 z 2 z p =z b -(z b -z a )(x b -x p )/(x b -x a ) y 3 z 3 X

Algoritmos de línea de barrido Tabla de aristas (aristas horizontales son ignoradas) 1. La coordenada X del extremo con menor coordenada Y. 2. La coordenada Y del otro extremo de la arista. 3. X : incremento de X que se usa para pasar de una línea de rastreo a la siguiente. 4. El número de identificación del polígono. Tabla de polígonos 1. Coeficientes de la ecuación del plano 2. Información del sombreado o color para el polígono 3. Bandera booleana de entrada-salida, con valor inicial falso. Tabla de aristas activas (AET) Contiene las aristas que intersecan la línea de rastreo actual. Las aristas están en orden creciente de x.

Algoritmos de línea de barrido y B E γ+2 γ+1 γ β α D C F A x

Algoritmos de línea de barrido y B E y = γ A D C F z x

Algoritmos de línea de barrido H B E I γ D C A F G J Al no haber polígonos penetrantes, no es necesario realizar cálculo de profundidad al pasar γ por BC

Algoritmos de línea de barrido L S γ R L M M K T Para que el algoritmo funcione bien, el polígono KLM se debe dividir en 2.

Algoritmos de línea de barrido Una variante utiliza la coherencia de profundidad Si los polígonos no se penetran, si en la AET están las mismas aristas y en el mismo orden, entonces no han ocurrido cambios en las relaciones de profundidad y por tanto no es necesario realizar nuevos cálculos de profundidad.

Algoritmos de línea de barrido (previamente se debe asignar un valor al fondo) Seudocódigo de el algoritmo (ampliado para superficies poligonales o más generales) Añadir superficies a la tabla de superficies; Asignar valores iniciales a la tabla de superficies activas; Por cada (línea de barrido) { actualizar la tabla de superficies activas; Por cada (píxel en la línea de barrido) { determinar las superficies que se proyectan al píxel; encontrar la más cercana de estas superficies; en el píxel, determinar el matiz de la sup. más cercana; } }

Traza de rayos en superficies visibles Centro de Proyección Ventana

Traza de rayos en superficies visibles Seudocódigo para un algoritmo Seleccionar el centro de proyección y una ventana en el plano de vista; Por cada (línea de rastreo en la imagen ) { Por cada ( píxel en la línea de rastreo ) { hallar el rayo centro de proyección por el píxel; Por cada ( objeto en la escena ) { Si ( (objeto,rayo) y es el más cercano hasta ahora) registrar intersección y nombre del objeto; } asignar color del píxel corresp. al del objeto más cercano; } }

Traza de rayos en superficies visibles Cálculo de Intersecciones Rayo que pasa por (x 0,y 0,z 0 ) y (x 1,y 1,z 1 ) se determina por: x=x 0 + t(x 1 -x 0 ), y=y 0 + t(y 1 -y 0 ), z=z 0 + t(z 1 -z 0 ) Si x= x 1 - x 0 => x=x 0 + t x Idem con y, z => x=x 0 + t x, y=y 0 + t y, z=z 0 + t z

Traza de rayos en superficies visibles Cálculo de Intersecciones Esfera con centro (a,b,c) y radio r: (x-a) 2 + (y-b) 2 + (z-c) 2 = r 2. Su intersección con el rayo es: (x 0 +t x-a) 2 + (y 0 +t y-b) 2 + (z 0 +t z-c) 2 = r 2 y luego de operar da la ecuación cuadrática: ( x 2 + y 2 + z 2 )t 2 + 2[ x(x 0 -a)+ y(y 0 -b)+ z(z 0 -c)]t + (x 0 -a) 2 +(y 0 -b) 2 +(z 0 -c) 2 -r 2 = 0

Traza de rayos en superficies visibles Cálculo de Intersecciones Plano : Ax + By + Cz + D = 0 Su intersección con el rayo es: A(x 0 +t x) + B(y 0 +t y) + C(z 0 +t z) + D = 0 => t= -(Ax 0 +By 0 +Cz 0 +D)/(A x+b y+c z+d)

Traza de rayos en superficies visibles Cálculo de Intersecciones y Rayo P Conviene proyectar sobre el plano que dé la proyección más larga. Este es el correspondiente a la variable cuyo coeficiente en la ecuación del plano del polígono tenga el mayor valor absoluto z P x

Traza de rayos en superficies visibles Consideraciones de eficiencia La versión sencilla del algoritmo determina la intersección de cada rayo con cada polígono => 1024píxeles x 1024píxeles x 100objetos= 100M cálculos de intersección Entre 75% al 95% del tiempo está dedicado al cálculo de las intersecciones. => es importante dar estratégias que aceleren los cálculos

Traza de rayos en superficies visibles Consideraciones de eficiencia: Optimiz. del cálculo de las intersecciones Hallar constantes en las ecuaciones de intersección objeto-rayo. Hacer que el rayo coincida con el eje z y aplicar la misma transformación geométrica a los objetos (simplifica el cálculo de la y permite determinar el objeto más cercano con un ordenamiento basado en z). Volúmenes acotantes simplifican el cálculo de las intersecciones.

Traza de rayos en superficies visibles Consideraciones de eficiencia: Jerarquía Edificio Pisos 1 2 3 4 5 6 Aptos 1 2 3

Traza de rayos en superficies visibles Consideraciones de eficiencia: Partición Espacial La escena se divide en una malla regular con volúmenes de igual tamaño.

Traza de rayos en superficies visibles Consideraciones de eficiencia: Partición Espacial F E D C R G A B

Traza de rayos en superficies visibles Consideraciones de eficiencia: Partición Espacial 1 2 A 3 B

Algoritmos de prioridad de listas Algoritmo de ordenamiento por profundidad (o algoritmo del pintor: Ordenar todos los polígonos de acuerdo con la menor coordenada z de cada uno. Resolver las ambiguedades cuando las extensiones z se sobreponen. Dividir polígonos de ser necesario Discretizar cada polígono en orden ascendente de la menor coordenada z

Algoritmos de prioridad de listas Algoritmo de ordenamiento por profundidad y z x Menor coordenada z

Algoritmos de prioridad de listas y x Q P P Q x z z

Algoritmos de prioridad de listas P es el polígono a pintar. Me fijo en los polígonos Q cuyas extensiones z se sobrepongan. Para cada Q hago 5 preguntas en orden creciente de complejidad. Si alguna pregunta es verdadera Q => P no se superpone con {Q} 1.- No se sobreponen las extensiones x de los polígonos? 2.- No se sobreponen las extensiones y de los polígonos? 3.- Está todo P y el punto de observación en semiespacios distintos del plano de Q? 4.- Está todo Q y el punto de observación en el mismo semiespacio del plano de P? 5.- No se sobreponen las proyecciones de los polígonos en el plano (x,y)?

Algoritmos de prioridad de listas x P z Q Tiene éxito la prueba 3 x P z Q Tiene éxito la prueba 4

Algoritmos de prioridad de listas En el caso en que las 5 pruebas anteriores fracasen, se realizan dos pruebas extras, que en el caso de que alguna sea verdadera, se debe discretizar Q antes que P. 3 Están Q (por completo) y el punto de observación en distintos semiespacios del plano de P? 4 Están P (por completo) y el punto de observación en el mismo semiespacio del plano de Q? Si todo esto fracasa, entonces hay que dividir P o Q, eliminar el polígono original y agregar los nuevos polígonos a la lista.

Algoritmos de prioridad de listas x P Q z Tiene éxito la prueba 3 y Q P Ninguna prueba tiene éxito x

Algoritmos de prioridad de listas y R S T Caso que genera ciclos. x Solución: marcar al polígono que se mueva al final de la lista. Si fracasan las 5 pruebas y el que sería Q ya está marcado, entonces no se hacen las 3 y 4, sino que se divide P o Q.

Árboles binarios para partición del espacio (BSP tree)

Árboles binarios para partición del espacio (BSP tree)

Árboles binarios para partición del espacio (BSP tree)

Árboles binarios para partición del espacio (BSP tree)

Algoritmos de subdivisión de área Algoritmo de Warnock Pol. Circundante Pol. Intersecante Pol. Contenido Relación entre Polígono y Elemento de Área Pol. Disjunto

Algoritmos de subdivisión de área Algoritmo de Warnock Para decidir sobre pintar o subdividir un área hay 4 casos: 1.- Tódos los polígonos son disjuntos respecto al área. Con el color de fondo se puede pintar el área. 2.- Sólo hay un polígono intersecante o contenido. 3.- Hay un solo polígono que intersecta al área y es circundante. 4.- Hay vários polígonos intersecantes, uno de ellos es circundante y está enfrente de los demás polígonos. Esto se controla con los valores z de los polígonos en los 4 vértices del área.

Algoritmos de subdivisión de área Algoritmo de Warnock x y x z z

Algoritmos de subdivisión de área Algoritmo de Warnock x En este caso se subdivide el área. La reacción es diferente al algoritmo de ordenamiento por profundidad, ya que en este caso no sería necesario subdividir. z

Algoritmos de subdivisión de área Algoritmo de Warnock 4.- Hay varios políg. intersec., uno de ellos es circundante y está enfrente de los demás políg. Esto se controla con los valores z de los políg. en los 4 vértices del área. 2.- Sólo hay un políg. intersec. o contenido. 1.- Tódos los políg. son disjuntos respecto al área. Con el color de fondo se puede pintar el área. 3.- Hay un solo políg. que intersecta al área y es circundante.