GRAFICACIÓN Unidad IIIhilario_sm/slide/graficacion/Unidad-III.pdf · Unidad III Profr. Hilario...

Post on 20-Jul-2020

8 views 1 download

Transcript of GRAFICACIÓN Unidad IIIhilario_sm/slide/graficacion/Unidad-III.pdf · Unidad III Profr. Hilario...

GRAFICACIGRAFICACIÓÓNNUnidad IIIUnidad III

ProfrProfr. Hilario Salazar Mart. Hilario Salazar Martííneznez

OBJETIVO ESPECIFICO:

El estudiante conocerá los algoritmos y técnicas de graficado en tres dimensiones (3D)

Algunos aspectos 3D en OpenGL

Algunos aspectos 3D en OpenGL

Matemáticas para gráficas 3D por computadora

Orientación

OpenG

L

OpenG

L

ProyeccionesProyecciones

Vista de una escena desde direcciones distintas con un punto de referencia de vista fijo

Resumen de proyecciones

ProyeccionesSe pueden proyectar los objetos tridimensionales en el plano de visión bidimensional. Existen dos métodos básicos de proyección. En una proyección paralela, se trasforman las posiciones de coordenadas en el plano de visión a lo largo de líneas paralelas, como se aprecia en el ejemplo de la figura 7-22.

Para una proyección en perspectiva (fig. 7-23) se transforman las posiciones de los objetos en el plano de visión a lo largo de líneas que convergen en un punto que se denomina punto de referencia de proyección (o centro de proyección). La vista que se proyecta de un objeto se determina al calcular la intercepción de las líneas de proyección con el plano de visión.

1. Las proyecciones de objetos distantes son más pequeñas que las proyecciones de objetos del mismo tamaño, los cuales se encuentran más cerca del plano de proyección (fig. 7-40).

2. Puntos de fuga.- La proyección de líneas que no son paralelas al plano de vista parecen encontrarse en algún punto del plano de vista

Anomalías de perspectiva

3-3

Descripción matemática de una proyección perspectiva

Una transformación en perspectiva se establece al asignar un centro de proyección y un plano de vista. Este punto es determinado por su punto de referencia de vista Ro y la normal al plano de vista N. El punto objeto P está localizado en coordenadas mundiales en (x,y,z). El problema es encontrar las coordenadas del punto imagen P(x‘,y’,z’) fig. 3-1.

Ejemplo 2:Ejemplo 2:

Proyección paralelasPodemos especificar una proyección paralela con un vector de proyección que define la dirección de las líneas de proyección. Cuando la proyección es perpendicular al plano de visión, tenemos una proyección paralela ortogonal. De otro modo, tenemos una proyección paralela oblicua. La figura 7-37.

Proyecciones ortogonales se emplean con mayor frecuencia para producir las vistas frontales, lateral y superior de un objeto, como se ilustra en la fig. 7-24. Las proyecciones ortogonal superior recibe el nombre de vista de planta. Los dibujos de ingeniería y arquitectura y arquitectura utilizan estas proyecciones ortogonales en forma común, puesto que las longitudes y los ángulos se trazan con precisión y se pueden medir con bazo en los trazos.

Proyecciones ortogonales

Asimismo, podemos crear proyecciones ortogonales que desplieguen más de una cara de un objeto. Tales vistas se llaman proyecciones ortogonales axométricas. Las proyecciones axométricas al mas común es la proyección isométrica. Se genera una proyección isométrica al alinear el plano de proyección de modo que intersecte cada eje de coordenadas en que se define el objeto (llamados ejes principales) a la misma distancia en la fig. 7-25 se presenta una proyección isométrica de un cubo.

Algunas subcategorías comunes de la proyección ortográfica axonométricas son:

1. Isométrica: La dirección de la proyección forma ángulos iguales con los tres ejes principales.

2. Dimétrica: La dirección de proyección forma ángulos iguales con solo dos de los ejes principales.

3. Trimética: la dirección de la proyección forma ángulos desiguales con los tres ejes principales.

Trimétrica

Algunas subcategorías comunes de la proyección oblicua son:

1. Caballera (Cavalier): El ángulo entre el plano de proyecciones y los proyectores es 45º. Las caras perpendiculares se proyectan a escala 1.

2. Cabinet: El ángulo entre el plano de proyecciones y los proyectores es arctan(2)=63.4º. Las caras perpendiculares se proyectan a escala 1/2

Ejemplos de proyecciones ortográfica y oblicuas

Proyecciones oblicuas

Ejercicio: realiza el inciso b) del ejemplo 2. Ejemplo 3:Ejemplo 3:

45º30º

Proyecciones en OpenGL

Proyecciones en OpenGL

Algunos aspectos matemáticos

Algunos aspectos matemáticos

7.5 Obtener la transformación perspectiva general sobre un plano con punto de referencia Ro (x0, y0, z0), vector normal N = nII = n2J + n3k, utilizando C(a, b, c) como centre de proyección. vea fig. 7-15

Podemos concluirse que los vectores satisfacen (vease la Fig. 7-15) . Entonces

en donde P(p, q, r) es cualquier punto. La aplicacion de la transformacion perspectiva al punto homogeneo (x, y, z, 1) produce el resultado (x', y', z', h), en donde

TRASFORMACIONES GRÁFICAS TRIDIMENSIONALES (3D)

TRASFORMACIONES GRÁFICAS TRIDIMENSIONALES (3D)

Traslación en tres dimensiones (3D)

Figura 3. Trasladar un cubo.

Rotación 3D

Rotación con respecto al eje Z

Rotación con respecto al eje X

Figura 4. Rotar un cubo.

Rotación con respecto al eje Y

Escalamiento en 3D

Figura 2. Escalar un cubo.

Secuencia de transformación del escalado de un objeto respecto a un punto

Concatenación de transformaciones

El orden afecta al resultado.

Cámara sintéticaCámara sintética

Cámara sintética en OpenGL

Cámara sintética en OpenGL

Ocultación de objetos (Z-Buffer)

Ocultación de objetos (Z-Buffer)

Método Z-Buffer• Se utiliza en forma común para detectar superficies visibles es el

método de búfer con profundidad, que compara las profundidades de las superficies en cada posición de pixel en el plano de proyección.

• Cuando se convierten las descripciones de los objetos a coordenadas de proyección, cada posición (x,y,z) en una superficie de poligono corresponde al punto de proyección ortogonal (x,y) en el plano de visión. Por lo tanto para cada posición de pixel (x,y) en el plano de visión, se pueden comparar las profundidades del objeto al comparar los valores de z.

• Este método implica dos áreas de búfer 1. Búfer con profundidad para almacenar los valores de

profundidad para cada posición de (x,y) conforme se procesan las superficies. Al principio, todas las posiciones se establecen como 0 (profundidad mínima).

2. Búfer de enfriamiento almacena los valores de intensidad para cada posición. Se inicializa a la intensidad de fondo.

Xy

Zy

1. Se inicializa el búfer con profundidad y el búfer de enfriamiento de modo que para todas las posiciones de búfer (x,y),profundidad(x,y)=0, enfriamiento (x,y)=Ibackgnd

2. Para cada posición en cada superficie de polígono, se compara los valores de profundidad con los valores almacenados previamente en el búfer con profundidad para determinar la visibilidad.

• Se calcula la profundidad de z para cada posición de (x,y) en el poligono.• Si z>profundidad (x,y), entonces se establece

pofundidad(x,y)=z, enfriamiento(x,y)=Isurf(x.y)Donde:

Ibackgnd es el valor de intensidad de fondoIsurf(x.y) es el valor de intensidad proyectada para la superficie en

la posición de pixel(x,y).

Una vez que se procesan todas las superficies, el búfer con profundidad contiene valores de profundidad para las superficies visibles y el búfer de enfriamiento los valores de intensidad correspondientes para esas superficies.

Algoritmo con profundidad y el búfer de enfriamiento

Concepto matemático

X=Xo+atY=Yo+btZ=Zo+ct

X=Xo+(X1-Xo) tY=Yo+ (Y1-Yo) tZ=Zo+ +(Z1-Zo) t

Ejem: P1(3,1,-2) P2(5,5,-18) P3(7,7,20) y P4(2,3,5)

Punto de vista C(2,-1,6)CP1X=2+(3-2)t=2+tY=-1+2tZ=6-8t t=?

Si t=1⇒ P1(3,1,-2) ∈ Línea

P2∈ Línea ?Si t=3X=2+3=5Y=-1+2(6)=5Z=6-8(3)=6-24=-18

∴ P2∈ Línea

P1 ocurre t=1P2 ocurre t=3

⇒P1<P2 P1 Está mas cerca de C ∴ P1oculta a P2

P3∈ Línea ?P4∈ Línea ?

Z-Buffer con OpenGL

Z-Buffer con OpenGL

CuadradoCuadrado

Acceso directo a Acceso directo a zbufferzbuffer