9. adaptación a la geometría en pantalla - departamento de …hfranco/comp_graf/cg_clase09.pdf ·...

21

Upload: nguyenhuong

Post on 21-Sep-2018

215 views

Category:

Documents


0 download

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ígonos

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

Volcado en Pantalla(Transferencia de Bloques)

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

Proyectos Finales

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

Recorte de PolígonosVolcado en pantalla (Transferencia de Bloques)

Proyectos Finales

Juego infantil de encajar piezas por formas y tamaños

Hugo Franco, PhD 9. Adaptación a la Geometría en Pantalla