VisibilidadA. García-Alonso1 >> Visibilidad
-
Upload
andres-africa -
Category
Documents
-
view
224 -
download
0
Transcript of VisibilidadA. García-Alonso1 >> Visibilidad
![Page 1: VisibilidadA. García-Alonso1 >> Visibilidad](https://reader035.fdocument.pub/reader035/viewer/2022062322/5665b4571a28abb57c90ab49/html5/thumbnails/1.jpg)
Visibilidad A. García-Alonso 1
>> Visibilidad <<
LINK http://www.sc.ehu.es/ccwgamoa/docencia/Material/Presentaciones
![Page 2: VisibilidadA. García-Alonso1 >> Visibilidad](https://reader035.fdocument.pub/reader035/viewer/2022062322/5665b4571a28abb57c90ab49/html5/thumbnails/2.jpg)
Visibilidad A. García-Alonso 2
Introducción
• Hearn Cap. 13, Foley Cap. 15
• Visibilidad de líneas o elementos de superficie
• Polígono, cara o faceta (libre o en sólido)
• Aspectos a considerar– Complejidad de la escena ++++
• Objeto, sala, piso, casa, ciudad, mundo• Objeto, robot, célula, planta (barco, refinería, ...)
– Modelo geométrico: polígonos, superficies, voxels, (...)
– Conocimiento previo de elementos móviles • Restricciones, o posiciones relativas• Juegos, simuladores
![Page 3: VisibilidadA. García-Alonso1 >> Visibilidad](https://reader035.fdocument.pub/reader035/viewer/2022062322/5665b4571a28abb57c90ab49/html5/thumbnails/3.jpg)
Visibilidad A. García-Alonso 3
Conceptos previos de geometría
• Sistemas de referencia– modelado, mundo, cámara, pantalla
• Asumimos sistema cámara dextrógiro– Dextrógiro/levógiro: eje Z saliente/entrante en pantalla
– V: punto de vista A: punto hacia el que se mira
yc
V
xc
zc
A
yc
V
xc
zc
A
Dextrógiro Levógiro
![Page 4: VisibilidadA. García-Alonso1 >> Visibilidad](https://reader035.fdocument.pub/reader035/viewer/2022062322/5665b4571a28abb57c90ab49/html5/thumbnails/4.jpg)
Visibilidad A. García-Alonso 4
Conceptos
• Volúmenes contenedores
• Definición y ecuación del plano (semi-espacios)
• Angulo entre dos vectores
• Descripción y propiedades polígonos
• Descripción y propiedades poliedros
• Espacio objeto y espacio imagen
• Coherencia
![Page 5: VisibilidadA. García-Alonso1 >> Visibilidad](https://reader035.fdocument.pub/reader035/viewer/2022062322/5665b4571a28abb57c90ab49/html5/thumbnails/5.jpg)
Visibilidad A. García-Alonso 5
Prioridad (ejemplos)• Videojuegos (nivel objeto)• Luego veremos a nivel de caras
![Page 6: VisibilidadA. García-Alonso1 >> Visibilidad](https://reader035.fdocument.pub/reader035/viewer/2022062322/5665b4571a28abb57c90ab49/html5/thumbnails/6.jpg)
Visibilidad A. García-Alonso 6
Prioridad
• Causa de dificultad– Número de objetos
– Complejidad en las posiciones relativas
• Niveles– Edificios en urbanismo (fácil)
– Piezas de un motor (difícil)
– Entramado de tuberías (imposible, salvo partición)
![Page 7: VisibilidadA. García-Alonso1 >> Visibilidad](https://reader035.fdocument.pub/reader035/viewer/2022062322/5665b4571a28abb57c90ab49/html5/thumbnails/7.jpg)
Visibilidad A. García-Alonso 7
Algoritmos
• Volumen de visión: recorte (perspectiva o paralela)
• Detectar caras traseras (back-culling)
• Prioridad– Polígonos
• Ordenamiento en profundidad (depth-sorting)• BSP (binary space partitioning trees)
– Objetos o conjuntos (clusters)
– Terreno
![Page 8: VisibilidadA. García-Alonso1 >> Visibilidad](https://reader035.fdocument.pub/reader035/viewer/2022062322/5665b4571a28abb57c90ab49/html5/thumbnails/8.jpg)
Visibilidad A. García-Alonso 8
...
• Precisión de imagen– z-buffer
– Línea de barrido (scan-line)
– Lanzamiento de rayos (ray-casting)
• Dibujo de grandes modelos
• Líneas ocultas
![Page 9: VisibilidadA. García-Alonso1 >> Visibilidad](https://reader035.fdocument.pub/reader035/viewer/2022062322/5665b4571a28abb57c90ab49/html5/thumbnails/9.jpg)
Visibilidad A. García-Alonso 9
Caras Traseras
v
n1
• Si un polígono pertenece a un poliedro– Condición suficiente de no visibilidad : v.n ≥ 0
– Si un poliedro es convexo y no es tapado por ningún otro objeto, v.n < 0 es condición necesaria y suficiente de visibilidad de una cara
![Page 10: VisibilidadA. García-Alonso1 >> Visibilidad](https://reader035.fdocument.pub/reader035/viewer/2022062322/5665b4571a28abb57c90ab49/html5/thumbnails/10.jpg)
Visibilidad A. García-Alonso 10
Caras Traseras (OpenGL)
• Activar glEnable( GL_CULL_FACE )
• Es posible invertir el “cull” front / back– glCullFace()
– Permite ver “el interior”
• Si no se especifica la normal del polígono, realiza el cálculo en base a las coordenadas de los vértices proyectadas sobre la pantalla (esto puede ser más lento, depende del flujo en el proceso gráfico)– glFrontFace()
![Page 11: VisibilidadA. García-Alonso1 >> Visibilidad](https://reader035.fdocument.pub/reader035/viewer/2022062322/5665b4571a28abb57c90ab49/html5/thumbnails/11.jpg)
Visibilidad A. García-Alonso 11
• Ordenación en profundidad ó depth-sorting– Lista ordenada polígonos
– Condición: i no tapa a ningún polígono [i+1, n]• (está por detrás)
– Se dibujan los polígonos en orden 1 a n
• Aplicación– Escena
• Se genera la lista para cada frame (cualquier cambio relativo) • Coste puede ser excesivo (nº polígonos, en cada cuadro)
– Objeto• Nueva lista al moverse respecto a la cámara• Coste puede ser competitivo
Pintor (fundamentos)12
i
n
ver nota
![Page 12: VisibilidadA. García-Alonso1 >> Visibilidad](https://reader035.fdocument.pub/reader035/viewer/2022062322/5665b4571a28abb57c90ab49/html5/thumbnails/12.jpg)
Visibilidad A. García-Alonso 12
Pintor (pre-ordenación)
orden en zmin orden en profundidad
• Ordenar en zmin, que es distinta de la ordenación final en profundidad
![Page 13: VisibilidadA. García-Alonso1 >> Visibilidad](https://reader035.fdocument.pub/reader035/viewer/2022062322/5665b4571a28abb57c90ab49/html5/thumbnails/13.jpg)
Visibilidad A. García-Alonso 13
Pintor (figuras)
xmax < xmin no solapan extents
Extents solapan,
caras no
Extents y caras
solapan
![Page 14: VisibilidadA. García-Alonso1 >> Visibilidad](https://reader035.fdocument.pub/reader035/viewer/2022062322/5665b4571a28abb57c90ab49/html5/thumbnails/14.jpg)
Visibilidad A. García-Alonso 14
Posición relativa de caras +++
j
i
yc
zc
La cara i está detrás del plano de la cara j
![Page 15: VisibilidadA. García-Alonso1 >> Visibilidad](https://reader035.fdocument.pub/reader035/viewer/2022062322/5665b4571a28abb57c90ab49/html5/thumbnails/15.jpg)
Visibilidad A. García-Alonso 15
Cara “delante” de un plano +++
• Si nz > 0, un polígono “está delante” del plano si todos sus vértices están en el semiespacio +
• Si nz < 0, al revés
![Page 16: VisibilidadA. García-Alonso1 >> Visibilidad](https://reader035.fdocument.pub/reader035/viewer/2022062322/5665b4571a28abb57c90ab49/html5/thumbnails/16.jpg)
Visibilidad A. García-Alonso 16
Solapes +++
– Solapes
Solape por intersección entre caras
Solape cíclicoSolape por cara cóncava
![Page 17: VisibilidadA. García-Alonso1 >> Visibilidad](https://reader035.fdocument.pub/reader035/viewer/2022062322/5665b4571a28abb57c90ab49/html5/thumbnails/17.jpg)
Visibilidad A. García-Alonso 17
Modelos de placas (sin volumen) +++
– Polígonos contiguos en mallas
Modelos de placas (no cierran volumen)
![Page 18: VisibilidadA. García-Alonso1 >> Visibilidad](https://reader035.fdocument.pub/reader035/viewer/2022062322/5665b4571a28abb57c90ab49/html5/thumbnails/18.jpg)
Visibilidad A. García-Alonso 18
BSP (fundamentos)
• Fases : (Binary space partitioning trees)– Crear árbol (si cambia posición relativa polígonos)
• Árbol binario de polígonos (nodos y hojas son Pol.)• Nodo raíz divide en dos grupos el resto de polígonos, si hace
falta algunas caras se parten en dos• En cada grupo se selecciona una cara (nuevo nodo)• La cara vuelve a crear dos grupos• Hojas contienen sólo una cara
– Recorrer árbol• Permite recorrer el conjunto de polígonos de “atrás adelante”• Permite dibujar por prioridad independientemente punto vista
![Page 19: VisibilidadA. García-Alonso1 >> Visibilidad](https://reader035.fdocument.pub/reader035/viewer/2022062322/5665b4571a28abb57c90ab49/html5/thumbnails/19.jpg)
Visibilidad A. García-Alonso 19
BSP (aplicación)
• Escena– Generar árbol: si cambio posición relativa entre objetos
– Coste puede ser excesivo (nº polígonos en la escena )
• Objeto– Si es sólido : árbol constante en el tiempo
– Coste puede ser competitivo
– Combina con prioridad conocida entre objetos (BSP o “Pintor”)
• Pseudo-código de Foley
![Page 20: VisibilidadA. García-Alonso1 >> Visibilidad](https://reader035.fdocument.pub/reader035/viewer/2022062322/5665b4571a28abb57c90ab49/html5/thumbnails/20.jpg)
Visibilidad A. García-Alonso 20
BSP (implementación)
• Eficiencia en el dibujado:– Evitar el incremento de polígonos
– Árbol equilibrado
• Eficiencia en la creación del árbol– Elección rápida de los nuevos nodos
ver nota
![Page 21: VisibilidadA. García-Alonso1 >> Visibilidad](https://reader035.fdocument.pub/reader035/viewer/2022062322/5665b4571a28abb57c90ab49/html5/thumbnails/21.jpg)
Visibilidad A. García-Alonso 21
Objetos o conjuntos (clusters)
• Prioridad en profundidad– Conocida de antemano
– Evaluable
• Ejemplo de BSP entre objetos sin movimiento relativo
• Con cambio en la posición relativa– Construcción del árbol
– Selección de los planos
– ¿ Compensa ?
![Page 22: VisibilidadA. García-Alonso1 >> Visibilidad](https://reader035.fdocument.pub/reader035/viewer/2022062322/5665b4571a28abb57c90ab49/html5/thumbnails/22.jpg)
Visibilidad A. García-Alonso 22
Terreno
• Se asimila al dibujo de funciones de dos variables
• Sólido– Prioridad de profundidad (extraplomo, cueva)
• Malla– De adelante hacia atrás
– Usar líneas de horizonte superior e inferior
![Page 23: VisibilidadA. García-Alonso1 >> Visibilidad](https://reader035.fdocument.pub/reader035/viewer/2022062322/5665b4571a28abb57c90ab49/html5/thumbnails/23.jpg)
Visibilidad A. García-Alonso 23
z-buffer (fundamentos)
• Sólo polígonos interiores al prisma de visión
• En un píxel : polígonos que se proyectan sobre él
• Visible : el “píxel” más próximo al ojo– Aquel cuya componente Z en el sistema de la cámara tenga
un valor mayor
xs
ys
zs
(x,y)
cj cick
Polígonos que proyectan sobre el pixel (x,y). El pixel correspondiente a ck es el de mayor valor en z.
ver nota
![Page 24: VisibilidadA. García-Alonso1 >> Visibilidad](https://reader035.fdocument.pub/reader035/viewer/2022062322/5665b4571a28abb57c90ab49/html5/thumbnails/24.jpg)
Visibilidad A. García-Alonso 24
z-buffer (algoritmo)
Arista 1 Arista 2
Scan-line
• Pseudo-código de Foley– Frame buffer (“color”)
– z-buffer (profundidad, 0 a 216 ó 232)
– Lista polígonos recortados y proyectados al sistema de la pantalla (1024x1280pixels, etc. ) …
![Page 25: VisibilidadA. García-Alonso1 >> Visibilidad](https://reader035.fdocument.pub/reader035/viewer/2022062322/5665b4571a28abb57c90ab49/html5/thumbnails/25.jpg)
Visibilidad A. García-Alonso 25
z-buffer (scan convert)
• Scan convert cada polígono– Se conocen las coordenadas x,y,z de cada vértice en el
sistema de pantalla (píxeles x,y, mayor precisión en z)
– Recordar cómo se generan los píxeles de una línea partiendo de las componentes x,y de sus extremos
– De igual modo se incrementa el valor z al avanzar en cada línea de barrido
– En cada línea de barrido (y cte.) tendremos dos píxeles de componentes (x,z) conocidas
– Al ir incrementando de unidad en unidad x, obtenemos la componente z en cada pixel del tramo
![Page 26: VisibilidadA. García-Alonso1 >> Visibilidad](https://reader035.fdocument.pub/reader035/viewer/2022062322/5665b4571a28abb57c90ab49/html5/thumbnails/26.jpg)
Visibilidad A. García-Alonso 26
z-buffer (implementación)
• Inicializar z-buffer (uso menor o mayor valor depende sistema)
• Tener en cuenta sistema dextrógiro o levógiro
• Problema precisión “near & far planes” …
• OpenGL– glEnable( GL_DEPTH_TEST )
– glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_TEST )
– glClearDepth( [0,1] )
– glDepthFunc( GL_LESS )
– glDepthRange( near[0,1], far[0,1] )
– glDepthMask( 0 disabled, 0 enabled )
![Page 27: VisibilidadA. García-Alonso1 >> Visibilidad](https://reader035.fdocument.pub/reader035/viewer/2022062322/5665b4571a28abb57c90ab49/html5/thumbnails/27.jpg)
Visibilidad A. García-Alonso 27
z-buffer (planos frontal y trasero)
Planos bien ajustados
Plano frontal mal colocado, se ve “el interior”
Plano trasero mal colocado, no se ve todo lo que se debería
![Page 28: VisibilidadA. García-Alonso1 >> Visibilidad](https://reader035.fdocument.pub/reader035/viewer/2022062322/5665b4571a28abb57c90ab49/html5/thumbnails/28.jpg)
Visibilidad A. García-Alonso 28
z-buffer (Problema precisión)
Problema precisión
![Page 29: VisibilidadA. García-Alonso1 >> Visibilidad](https://reader035.fdocument.pub/reader035/viewer/2022062322/5665b4571a28abb57c90ab49/html5/thumbnails/29.jpg)
Visibilidad A. García-Alonso 29
Memoria gráfica
• True color requiere 8x3 bits/pixel
• Alpha channel requiere otros 8 bits/pixel
• Usar double buffering requiere duplicar la memoria de imagen por píxel
• Usar visión estereoscópica requiere otra duplicación
• z-buffer requiere 16 ó 32 bits/pixel
• Memoria de texturas (no depende del nº de píxeles de imagen)
![Page 30: VisibilidadA. García-Alonso1 >> Visibilidad](https://reader035.fdocument.pub/reader035/viewer/2022062322/5665b4571a28abb57c90ab49/html5/thumbnails/30.jpg)
Visibilidad A. García-Alonso 30
Lanzamiento de rayos : ray-casting
• Por cada píxel se lanza un rayo (F)
• Se determina con que superficie choca primero
• Se determina “el color” en ese punto
• No confundir con “trazado de rayos” (ray-tracing)
Punto de vista y rayo
Malla de píxeles
![Page 31: VisibilidadA. García-Alonso1 >> Visibilidad](https://reader035.fdocument.pub/reader035/viewer/2022062322/5665b4571a28abb57c90ab49/html5/thumbnails/31.jpg)
Visibilidad A. García-Alonso 31
Grandes modelos
• Dibujo de grandes bases de datos
• Ejemplos– Arquitectura, urbanismo, mundo virtual (walk-through)
– Fábricas, procesos productivos
– Redes tuberías
– Motores, maquinaria, vehículos, barcos, aviación
– Simulación
– etc
![Page 32: VisibilidadA. García-Alonso1 >> Visibilidad](https://reader035.fdocument.pub/reader035/viewer/2022062322/5665b4571a28abb57c90ab49/html5/thumbnails/32.jpg)
Visibilidad A. García-Alonso 32
Grandes modelos (técnicas)
• Carga y descarga de la descripción de objetos (disco, red)
• Discriminar rápidamente qué elementos son potencialmente visibles y cuáles no
• Jerarquías de contenedores– Elementos contenidos en otros (cajón, motor,...)
• Oclusión (occluded surfaces)
![Page 33: VisibilidadA. García-Alonso1 >> Visibilidad](https://reader035.fdocument.pub/reader035/viewer/2022062322/5665b4571a28abb57c90ab49/html5/thumbnails/33.jpg)
Visibilidad A. García-Alonso 33
...
• Niveles de detalle– Uso de superficies paramétricas
– Niveles discretos
– Variación continua
http://www.best.com/~rikk/Book/
![Page 34: VisibilidadA. García-Alonso1 >> Visibilidad](https://reader035.fdocument.pub/reader035/viewer/2022062322/5665b4571a28abb57c90ab49/html5/thumbnails/34.jpg)
Visibilidad A. García-Alonso 34
...
http://gts.sourceforge.net
A multi-resolution model obtained by simplification of the original model (in the top left corner).
The "memoryless simplification" algorithm of Lindstrom and Turk was used. The number of triangles are respectively 96966, 13334, 3334 and 668.
(video disponible)
![Page 35: VisibilidadA. García-Alonso1 >> Visibilidad](https://reader035.fdocument.pub/reader035/viewer/2022062322/5665b4571a28abb57c90ab49/html5/thumbnails/35.jpg)
Visibilidad A. García-Alonso 35
Líneas ocultas
• Uso en análisis y modelado– Visualizar aristas
• Efectos especiales• Visualizar densidad de las mallas
– Velocidad de generación de imagen en aceleradores– Radiosidad gradiente iluminación
• Polígonos : aristas de un color, interior otro color– OpenGL
– Algoritmo prioridad
• Tener cuidado con el sombreado
![Page 36: VisibilidadA. García-Alonso1 >> Visibilidad](https://reader035.fdocument.pub/reader035/viewer/2022062322/5665b4571a28abb57c90ab49/html5/thumbnails/36.jpg)
Visibilidad A. García-Alonso 36
Coherencia• Comparar objetos, no sus elementos (si separados)• Las propiedades varían suavemente en caras (interpolación
lineal)• Arista: cambia su visibilidad sólo al pasar detrás de otra
visible• Arista de intersección : bastan dos puntos para calcularla• Scan-line : varían poco de uno al siguiente • Área : un grupo de píxeles adyacentes tiende a estar cubierto
por la misma cara visible• En superficies, áreas adyacentes suelen estar a profundidad
parecida• Cuadro (frame): dos imágenes sucesivas tienden a ser
parecidas
![Page 37: VisibilidadA. García-Alonso1 >> Visibilidad](https://reader035.fdocument.pub/reader035/viewer/2022062322/5665b4571a28abb57c90ab49/html5/thumbnails/37.jpg)
Visibilidad A. García-Alonso 37
Resumen
• Determinar características del problema : – Objetos móviles (uno o todos) o estáticos
– Número de objetos
– Número de polígonos
– Con o sin acelerador gráfico (prioridad, back-culling, z-buffer,...)
– Nivel de realismo (trazado de rayos vs. z-buffer)