Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Introduccin
Aplicaciones: Simulacin
Introduccin
Video-juegos
http://www.acclaim.com/games/crazytaxi/
Introduccin
Animacin por computadora
http://www.pixar.com
Introduccin
Diseo (recorridos virtuales 3D)
Introduccin
Visualizacin de grficas 3D
Convective modelling
group, AOS, Univ
Illinois at UrbanaChampaign
http://redrock.ncsa.uiu
c.edu/AOS/home.html
(NCSA storm model)
Introduccin
Interfaces en la medicina
Primitivas de Grficacin
Algoritmos de trazado de lneas. Algoritmo DDA
(Digital Diferential Analizer), Algoritmo de Bresenham.
Algoritmo de Bresenham para trazado de
circunferencias, Algoritmo del punto medio para
trazado de circunferencias
Algoritmo del punto medio para generacin de elipses
Polilneas
Curvas Splines cbicas naturales, Splines de Hermite,
Curvas de Bezier.
Estructura de un Programa OpenGL
Despliege de lineas, tringulos, cuadrados,
circunferencias, etc mediante OpenGL
Primitivas de Graficacin
Trazado de lneas
Algoritmo DDA (Digital Diferential Analizer)
Primitivas de Graficacin
Trazado de lneas
Algoritmo de Bresenham
Primitivas de Graficacin
Trazado de lneas
Algoritmo de Bresenham
Primitivas de Graficacin
Trazado de lneas
Algoritmo de Bresenham
Primitivas de Graficacin
Trazado de circunferencias
Algoritmo de Bresenham
Primitivas de Graficacin
Trazado de circunferencias
Algoritmo del punto medio
Primitivas de Graficacin
Algoritmo del punto medio para trazado de elipses
Primitivas de Graficacin
Polilneas
Abierta
Autointersectada
Cerrada
Primitivas de Graficacin
Splines
De interpolacin
De aproximacin
Primitivas de Graficacin
Splines
Primitivas de Graficacin
Curvas Splines cbicas naturales
Primitivas de Graficacin
Splines de Hermite
Tienen continuidad de primer orden
Restricciones
Primitivas de Graficacin
Splines de Hermite
Como la matriz de
coeficientes no cambia
en realidad solo se requiere
de una simple multiplicacin
matricial por cada segmento
Primitivas de Graficacin
Splines
de
Hermite
Reagrupando:
Funciones de ponderacin
Primitivas de Graficacin
Splines cardinales
Problema: las Splines de Hermite requieren que el usuario especifique la pendiente
En cada punto de control
t<0
t>0
Primitivas de Graficacin
Curvas de Bezier
Pierre Bzier trabajaba para la Renault diseando carroceras
Donde:
Primitivas de Graficacin
Curvas de Bzier
Por ejemplo, para n=4 (nmero de puntos de control)
Primitivas de Graficacin
Estructura de un programa en OpenGL
Primitivas de Graficacin
Despliegue de lneas, tringulos y cuadrados en
OpenGL
Despliega dos lneas
Despliega polilnea
Primitivas de Graficacin
Despliegue de lneas, tringulos y cuadrados en
OpenGL
Despliega polilnea cerrada
Primitivas de Graficacin
Despliegue de lneas, tringulos y cuadrados en
OpenGL
Despliega polgono
Conectividad 4
Conectividad 8
Se detiene porque se a
sumi conectividad 4
Semilla inicial
Algoritmos de recorte
Cdigos de regin para determinar la
visibilidad de lneas
Algoritmo de recorte explcito en 2D
Algoritmo de Sutherland-Cohen
Algoritmo de la subdivisin del punto medio
Algoritmo de Cyrus-Beck para recorte de
regiones convexas
El concepto de recorte
Algoritmos de recorte
Cdigos de Regin para
determinar la visibilidad de lneas
0101
0110
Bit 0 Izquierda
Bit 1 Derecha
Bit 2 Arriba
Bit 3 Abajo
1001
1010
Algoritmos de recorte
Cdigos de Regin para
determinar la visibilidad de lneas
Algoritmos de recorte
Algoritmo de recorte explcito en 2D
Deduciendo la ec de la
recta que va de
(x1,y2) a (x2,y2)
Algoritmos de recorte
Algoritmo de recorte explcito en 2D
De manera Similar
Algoritmos de recorte
Algoritmo de recorte explcito en 2D
La interseccin con el extremo superior ocurre en:
Algoritmos de recorte
Algoritmo de recorte explcito en 2D.
Ejemplo
Recorte la lnea que va de
(-3/2,1/6) a (1/2,3/2)
Algoritmos de recorte
Algoritmo de recorte explcito en 2D. Ejemplo
Algoritmos de recorte
Algoritmo de recorte explcito en 2D. Ejemplo
Algoritmos de recorte
Algoritmo de Sutherland-Cohen
Algoritmos de recorte
Algoritmo de la subdivisin del punto medio
Ideal para
implementar
en hardware
Algoritmos de recorte
Algoritmo de Cyrus-Beck para recorte de
regiones convexas
El Algoritmo de Cyrus-Beck hace uso del hecho de que un punto a est dentro
de un rea de recorte convexa respecto a cierta rea que define un borde si se
cumple la desigualdad:
Algoritmos de recorte
Algoritmo de Cyrus-Beck para recorte de
regiones convexas
podemos obtener el valor de t para el cual la lnea coincide con la frontera
del rea de recorte despejndolo de:
Algoritmos de recorte
Algoritmo de Cyrus-Beck para recorte de
regiones convexas. Ejemplo
Recortar la lnea que
va de (-1,1) a (3,3)
Algoritmos de recorte
Algoritmo de Cyrus-Beck para recorte de
regiones convexas. Ejemplo
La directrz es:
Para la arista V5V6 la normal es:
Algoritmos de recorte
Algoritmo de Cyrus-Beck para recorte de
regiones convexas. Ejemplo
Algoritmos de recorte
Algoritmo de Cyrus-Beck para recorte de regiones
convexas. Ejemplo
Repitiendo para el
Resto de las aristas
Completamos la tabla
Para terminar el ejemplo solo resta decir que la lnea recortada comienza
en t = 1=4 y termina en t = 5=6, lo cual corresponde a una nueva lnea que
va de (0,3/2) a (7/3,8/3)
Coordenadas locales
Coordenadas mundiales
Puerto de visin
Funciones OpenGL para visualizacin 2D
Transformaciones geomtricas
Transformaciones afines
Transformaciones geomtricas bidimensionales bsicas:
Traslacin, escalamiento, rotacin
Coordenadas homogneas
Transformaciones compuestas: Escalamiento respecto a un
punto fijo; Rotacin respecto a un punto arbitrario
Reflexiones
Transformaciones geomtricas en 3D simples: Escalamiento,
traslacin, rotacin respecto a los ejes X, Y y Z
Rotacin respecto a un eje arbitrario por: (a) Composicin de
matrices, (b) Cjto de vectores ortogonales, (c) cuaternios
Transformaciones geomtricas con OpenGL
Manejo de Pilas de matrices con OpenGL
Transformaciones geomtricas
Transformaciones afines
Una transformacin afn es aquella que puede
expresarse de la siguiente manera:
Qx
Qy
a.Px b.Py t x
c.Px d .Py t y
O bien:
Qx
a b
Px
tx
Qy
c d
Py
ty
Transformaciones geomtricas
Transformaciones afines
Las transformaciones afines son lineales
si se aplica la transformacin a todos los puntos
que forman una lnea se obtiene otra lnea que
tambin se puede obtener aplicando la
transformacin solo a los extremos de la lnea y
se generan los puntos intermedios mediante
algn algoritmo de trazado de lneas como el de
Bresenham
si se transforma un punto que est a la mitad de
la lnea, este punto de ubicarla justamente a la
mitad de la lnea transformada
Transformaciones geomtricas
Transformaciones afines
Transformaciones geomtricas
transformaciones geomtricas bidimensionales bsicas
Traslacin
Trasladamos un punto (x,y) mediante:
Transformaciones geomtricas
transformaciones geomtricas bidimensionales bsicas
Traslacin
Pasar de un sistema de
Coordenadas a otro
(2,3)
u=x-1
v=y-1
u
x=u+1
y=v+1
(2,3)
y
Modificar la forma o
posicin de objetos
en un sistema de
coordenadas
(1,2)
x=x-1
y=y-1
(1,2)
x=x+1
x
y=y+1
Transformaciones geomtricas
transformaciones geomtricas bidimensionales bsicas
Traslacin
Transformaciones geomtricas
transformaciones geomtricas bidimensionales bsicas
Traslacin
El escalamiento simple
tiene implcita una
traslacin. En el ejemplo
se us un factor de
escalamiento de 2 tanto
en x como en y
Transformaciones geomtricas
transformaciones geomtricas bidimensionales bsicas
Rotacin
Obtenemos:
De la figura:
Finalmente!
Transformaciones geomtricas
transformaciones geomtricas bidimensionales bsicas
Rotacin
Transformaciones geomtricas
Coordenadas homogneas
Las coordenadas (x,y) tiene un nmero infinito de
maneras de representarse en coordenadas
homogneas (xh,yh,h)
La forma estndar h=1, es decir (x,y,1)
Ventajas:
1. Todas las transformaciones se pueden hacer
como productos matriciales, incluso la traslacin
2. Facilita la composicin de transformaciones.
Muchas transformaciones sucesivas se
convierten en una sola (gran ahorro!)
Transformaciones geomtricas
Coordenadas homogneas
Todas las transformaciones como productos matriciales:
Transformaciones geomtricas
Transformaciones compuestas
Escalamiento respecto a un punto fijo
Traslacin de
manera que el
punto fijo
coincida con el
origen
Escalamiento
simple
Traslacin de
manera que el
punto fijo
regrese a su
posicin
Transformaciones geomtricas
Transformaciones compuestas
Escalamiento respecto a un punto fijo
Transformaciones geomtricas
Transformaciones compuestas
Rotacin respecto a un punto arbitrario
Transformaciones geomtricas
Transformaciones compuestas
Rotacin respecto a un punto arbitrario
Transformaciones geomtricas
Reflexiones
Reflexin respecto al eje x
Transformaciones geomtricas
Reflexiones
Reflexin respecto al origen
Transformaciones geomtricas
Transformaciones geomtricas en 3D simples
Escalamiento
Transformaciones geomtricas
Transformaciones geomtricas en 3D simples
Traslacin
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
1.5 0 0 0
0 1.5 0 0
0 0 1.5 0
0
2 0 0 0
0 1 0 0
0 0 1 0
1 0 0 500
0 1 0 500
0 0 1 0
0 0 0 1
0 0 0
0.866
0.5 0 0
0.5 0.866 0 0
0
0
1.5 0
0
0.866
0.5 0 430.7
0.5 0.866 0 60.3
0
0
1
0
0
Transformaciones geomtricas
Rotacin respecto a un eje arbitrario
Si el eje es paralelo a uno
De los ejes del sistema de
Coordenadas:
1) Trasladar de manera que
Un punto que pasa por el
Eje de rotacin coincida
Con el origen
2) Rotar alrededor del eje
3) Traslacin inversa respecto
Al paso 1
Adems:
Se cumple que
Adems
Transformaciones geomtricas
Manejo de Pilas de Matrices con OpenGL
Visualizacin 3D
Proyeccin en paralelo
Proyeccin en perspectiva
Pipeline de visualizacin tridimensional
Volumen de visin
Funciones de visualizacin 3D en OpenGL
Visualizacin 3D
proyeccin en paralelo
En z=0:
Visualizacin 3D
proyeccin en paralelo
En forma matricial, en coordenadas homogneas
Visualizacin 3D
proyeccin en perspectiva
(xc,yc,yc)
En z=0:
Visualizacin 3D
proyeccin en perspectiva
Visualizacin 3D
Pipeline de visualizacin tridimensional
Pipeline de visualizacin 3D
Coordenadas locales
(0.5,0.5,-0.5)
(0.5,0.5,0.5)
x
(-0.5,-0.5,-0.5)
(0.5,-0.5,-0.5)
z
(-0.5,-0.5,0.5)
(0.5,-0.5,0.5)
Pipeline de visualizacin 3D
Coordenadas mundiales
Al definir una escena, transformamos las coordenadas de
todos los objetos que la componen a un referente nico, por
ejemplo una de las esquinas de la habitacin.
Visualizacin 3D
Volumen de visin
Visualizacin 3D
Volumen de visin
Visualizacin 3D
Funciones de visualizacin 3D en OpenGL
Para definir el volumen de visin usamos:
y
a
(z
Eliminacin de
caras posteriores
Eliminacin de
superficies
ocultas
Ejemplo en el que el
Algoritmo del pintor
falla
Iluminacin
Reflexin difusa
Ecuacin de Lambert
Reflexin especular
Modelado de la iluminacin
Determinacin del vector Normal a un vrtice
Sombreado de Gourad
Sombreado de Phong
Funciones de OpenGL para manejo de
Iluminacin
Radiosidad
Funciones OpenGL para Iluminacin
Reflexin difusa
(a)Reflexin
especular
perfecta
(b)Reflexin
especular
imperfecta
(c)Reflexin
difusa
Reflexin difusa
Cuando la luz incide en un objeto opaco, la luz
reflejada en su superficie lo har en todas
direcciones de manera uniforme
Reflexin difusa
La brillantez de una superficie donde la luz es
reflejada de forma difusa no depende de la posicin
del observador sino de la inclinacin de dicha
superficie respecto a la fuente de luz
A la reflexin difusa
tambin se le conoce como
reflexin Lambertiana
Ecuacin de Lambert
Ii,n Ln.N
n
Reflexin especular
Is = Iicosn
= Ii(R.V)n
Modelado de la iluminacin
Modelo local.
Es aquel que solo toma en cuenta la luz que llega
directamente de la fuente de luz
Ej Modelo de Iluminacin de Phong
Modelo Global.
Es el que considera no solo la luz que llega de
manera directa sino aquella que llega de manera
indirecta (reflejada de otros objetos)
Ej Iluminacin por proyeccin de rayos
Ej Radiosidad
Modelado de la iluminacin
Modelado de la iluminacin
El modelo de iluminacin de Phong (1975) toma en cuenta que en
una superficie ocurre en cierto grado la reflexin difusa, en cierto
grado la reflexin especular y un trmino denominado luz
ambiental donde se trivializa la iluminacin indirecta
I = kaIa + Ii(kd(L.N) + ks(R.V)n)
Modelado de la iluminacin
El modelo de iluminacin de Phong (1975) toma en cuenta que en
una superficie ocurre en cierto grado la reflexin difusa, en cierto
grado la reflexin especular y un trmino denominado luz
ambiental donde se trivializa la iluminacin indirecta
I = kaIa + Ii(kd(L.N) + ks(R.V)n)
Modelado de la iluminacin
Un coeficiente de reflexin es
la proporcin de luz incidente
que es reflejada por una
Ka es el coeficiente de reflexin de la
superficie.
superficie para la luz ambiental; kd es el
coeficiente de reflexin difusa y ks es el
coeficiente de reflexin especular
donde fatt=1/(d2)
Modelado de la iluminacin
1.El costo de la iluminacin de Phong se puede reducir si se hacen las sig.
consideraciones:
o La fuente de luz est muy lejos (en infinito), entonces L es constante
o El observador est muy lejos, entonces V es constante
Para transformaciones geomtricas
consideramos un observador muy lejano y para
clculo de iluminacin consideramos una fuente de
luz muy lejana.
El vector H
Modelado de la iluminacin
Iluminacin de
Phong para
diferentes
valores de Ks y
Kd variando
desde 0.0 a 1.0
con incrementos
de 0.2 (Ka=0.7 y
n=10.0 en todas
las imgenes)
Modelado de la iluminacin
Iluminacin
para
diferentes
valores de Ks
y de n
(Ka=0.7,
Kd=1.0 para
todas las
imgenes)
Ejemplo:
NA = (N1 + N2 + N3 + N4)/4
N
(x2,y2,z2)
W
V
(x1,y1,z1)
Sombreado de Gourad
El proceso de sombreado de Gourad de cada
polgono de que est hecho el objeto consiste en:
1. Determinar el vector normal en cada uno de los
vrtices del polgono
2. Aplicar el modelo de iluminacin de Phong o
alguna variante para determinar la intensidad en
cada vrtice
3. Interpolar linealmente las intensidades de los
vrtices para determinar
Sombreado de Gourad
Sombreado de Gourad
El sombreado de Gourad evita que se vean las
divisiones entre los polgonos que forman un
objeto
Como la reflexin especular solo es calculada
en los vrtices, la interpolacin de Gourad no
maneja de manera adecuada la reflexin
especular
Sombreado de Phong
Las normales a los vrtices se interpolan a travs
de los polgonos
La intensidad de luz se calcula en cada pixel
usando la normal interpolada
La luz especular en cada pixel se determina de
manera adecuada
El costo de la interpolacin de Phong es mucho
mayor que el de Gourad porque en el de Gourad
la intensidad de luz solo se calcula en los vrtices
Sombreado de Phong
Sombreado de Phong
El mtodo es
dependiente de la
posicin del observador
1
L
2
cos 2
1
cos1 N
2
Profundidad cero
Profundidad uno
Radiosidad
Radiosidad
La interaccin entre parches depende su relacin
geomtrica
Complejidad O(n^2) por lo que se procura hacer
parches grandes
Las sombras se calculan correctamente
Es un algoritmo que trabaja en el espacio de
definicin de objetos ya que es independiente del
observador
Requiere de una etapa posterior de interpolacin
similar a la de Gourad para que no se noten los
parches
Radiosidad
Una vez que la escena se ha dividido en parches, se calcula la
relacin entre cada par de parches para calcular los Factores de
forma
cos i cos j
1
FAiAj Fij
dA jdA i
2
Ai
Aj
Ai
r
Si r es razonablemente grande
Fij
FdAiAj
cos i cos
Aj
dA j
Radiosidad
La analoga de Nusselt
dice que podemos
considerar la
proyeccin del parche j
sobre la superficie de
una semi-esfera
centrada en el rea
elemental dAi como
equivalente a
considerar el parche
mismo
Radiosidad
Si usamos un semi-cubo es menos costoso calcular las proyecciones
Radiosidad
Ejemplo
Radiosidad
Ejemplo