9. adaptación a la geometría en pantalla - departamento de …hfranco/comp_graf/cg_clase09.pdf ·...
TRANSCRIPT
Recorte de PolígonosVolcado en pantalla (Transferencia de Bloques)
Proyectos Finales
9. Adaptación a la Geometría en Pantalla
Hugo Franco, PhD
15 de marzo de 2011
Hugo Franco, PhD 9. Adaptación a la Geometría en Pantalla
Recorte de PolígonosVolcado en pantalla (Transferencia de Bloques)
Proyectos Finales
Salida en Pantalla � Área visible
Tanto en 2D como en 3D, el área
visible (implementación física) al
usuario es una relgión delimitada (y
discretizada) del plano de proyección
Se establece una correspondencia
directa entre el área visible (FOV: �eld
of view) con la pantalla (área de
salida) sobre la cual se persentará la
información grá�ca
Algunos objetos o partes de la
super�cie visible de los objetos se
quedan por fuera del campo de visión
Campo de visión
Regiones exteriores al campode visión
Hugo Franco, PhD 9. Adaptación a la Geometría en Pantalla
Recorte de PolígonosVolcado en pantalla (Transferencia de Bloques)
Proyectos Finales
Necesidad del recorte de polígonos
En un esquema óptimo, se hace
necesario decidir cuáles áreas deben ser
pintadas y cuáles no
En 2D, todas las super�cies son
visibles salvo ocultación o ubicación
por fuera del área visible
La optimización de la presentación
(rasterización) exige el recorte de las
super�cies visibles para no hacer
cálculos innecesarios y evitar errores de
lógica en el proceso de despliegue
(discretización de aristas, relleno)
Hugo Franco, PhD 9. Adaptación a la Geometría en Pantalla
Recorte de PolígonosVolcado en pantalla (Transferencia de Bloques)
Proyectos Finales
Algoritmo de Sutherland�Hodgeman
Estrategia: Divida y
Conquiste
Idea:
Mantener los polígonosordenados en el sentidocontrario a las manecillasdel reloj (secuencia conproducto vectorialpositivo)Recortar cada polígono dela escena usando unaextensión in�nita de loscontornos del �área visible�Repetir para cada contornodel área de dibujo
Hugo Franco, PhD 9. Adaptación a la Geometría en Pantalla
Recorte de PolígonosVolcado en pantalla (Transferencia de Bloques)
Proyectos Finales
Recorte de aristas � Casos de recorte
Aristas de s a p.
En algunos casos, la arista sp se intersecta con el borde de
recorte e
Se encuentran los parámetros m y b de la recta asociada a spy se halla la intersección i con el borde de recorte (horizontal overtical).Se añaden los vértices del recorrido según los cuatro casos
Dentro Fuera Dentro Fuera Dentro Fuera Dentro Fuera
Borde de Recorte
Arista delpolígonoa recortar
Caso 1 Caso 2 Caso 3No hay adiciónde vértices
Caso 4Adición de dosvértices
p: segunda adición
i: primera adición
Hugo Franco, PhD 9. Adaptación a la Geometría en Pantalla
Recorte de PolígonosVolcado en pantalla (Transferencia de Bloques)
Proyectos Finales
Algoritmo de Sutherland�HodgemanPseudocódigo
Entrada, polígono a recortar, coordenadas de los vértices del área
de dibujo
Para cada borde de recorte(4 en una proyección rectangular)
Tomar vértice inicial sPara cada vértice p en la arista sp (vértices recorridos de formaanti-horaria)
Caso 1: Agregar p a polígono recortado
Caso 2 : Estimar punto de intersección i y agregarlo al
polígono recortado
Caso 3 : No hay adiciones
Caso 4 : Estimar punto de intersección i y agregarlo junto con
el punto p, en ese orden
Hugo Franco, PhD 9. Adaptación a la Geometría en Pantalla
Recorte de PolígonosVolcado en pantalla (Transferencia de Bloques)
Proyectos Finales
Double Bu�ering
Para optimizar la
presentación de la escena
en pantalla se suele usar
una estrategia de doble
bu�er. Dos de las más
usadas son
Intercambio (swapping)de bu�ersUso de un bu�er depantalla y un bu�er dememoria. Este últimoes volcado al depantalla una vez se haterminado el trazo delos objetos de la escenaen memoria
Hugo Franco, PhD 9. Adaptación a la Geometría en Pantalla
Recorte de PolígonosVolcado en pantalla (Transferencia de Bloques)
Proyectos Finales
Relación con ColorBu�er y Z�bu�er
El ColorBu�er es modi�cado cuando
un elemento de super�cie resulta más
próximo al observador que lo dibujado
anteriormente (Z-bu�er), con el color
en cada posición evaluada de ese
elemento de super�cie (ambos en
memoria)
En animación, la �uidez depende de
la velocidad con la que se vuelque en
el bu�er de salida el contenido de la
memoria de vídeo (BitBlt)
Correspondencia uno a uno entrelos elementos del ColorBu�er(matriz) y los píxels, dada unaprofundidad de color
Hugo Franco, PhD 9. Adaptación a la Geometría en Pantalla
Recorte de PolígonosVolcado en pantalla (Transferencia de Bloques)
Proyectos Finales
Detalles de implementación
Asuntos a tener en cuenta
VSync: sincronización vertical
Drop Frames: omitir algunos frames para mantener la
sincronización de la secuencia
Motion Blur: en sistemas óptimos, interpolar los cuadros generados
para agregar la ilusión de continuidad a la secuencia
Hugo Franco, PhD 9. Adaptación a la Geometría en Pantalla
Recorte de PolígonosVolcado en pantalla (Transferencia de Bloques)
Proyectos Finales
Ejemplo MFC...
void CChildView::OnDraw(CDC *pDC)
{
CDC memDC;
memDC.CreateCompatibleDC(pDC);
CBitmap bmp;
bmp.CreateCompatibleBitmap(pDC,200,200);
memDC.SelectObject(&bmp);
for (int i=100;i<150;i++)
memDC.SetPixelV(i,100,RGB(255,255,255));
pDC->BitBlt( 0, 0, 200, 200, &memDC, 0, 0, SRCCOPY );
}
Hugo Franco, PhD 9. Adaptación a la Geometría en Pantalla
Recorte de PolígonosVolcado en pantalla (Transferencia de Bloques)
Proyectos Finales
Recorrido por un entorno virtual
Hugo Franco, PhD 9. Adaptación a la Geometría en Pantalla
Recorte de PolígonosVolcado en pantalla (Transferencia de Bloques)
Proyectos Finales
Simulación de un brazo articulado con varios grados delibertad
Hugo Franco, PhD 9. Adaptación a la Geometría en Pantalla
Recorte de PolígonosVolcado en pantalla (Transferencia de Bloques)
Proyectos Finales
Simulación de una estructura jerárquica simple (robot)
Hugo Franco, PhD 9. Adaptación a la Geometría en Pantalla
Recorte de PolígonosVolcado en pantalla (Transferencia de Bloques)
Proyectos Finales
Simulación de un sistema planetario
Hugo Franco, PhD 9. Adaptación a la Geometría en Pantalla
Recorte de PolígonosVolcado en pantalla (Transferencia de Bloques)
Proyectos Finales
Generador de terrenos fractales
Hugo Franco, PhD 9. Adaptación a la Geometría en Pantalla
Recorte de PolígonosVolcado en pantalla (Transferencia de Bloques)
Proyectos Finales
Juego por turnos de tiro parabólico
Hugo Franco, PhD 9. Adaptación a la Geometría en Pantalla
Recorte de PolígonosVolcado en pantalla (Transferencia de Bloques)
Proyectos Finales
Simulador de fuegos arti�ciales
Hugo Franco, PhD 9. Adaptación a la Geometría en Pantalla