Download Descargar

Document related concepts
no text concepts found
Transcript
Visualización Computacional II
Quienes somos?
Profesor:
Dr. Marcelo Javier Vénere: [email protected]
Ayudantes:
Ing. Juan P. D’Amato: [email protected]
Ing. Cristian García Bauza: [email protected]
Edificio PLADEMA
Logística (o como va a ser la cosa…)
Seis clases teóricas repartidas entre esta semana y
la que viene.
Dos prácticas (a confirmar) para explicación de
conceptos (OpenGL) y uso de tutoriales.
Tres prácticas adicionales
Forma de evaluación:
Cursada y Final con un trabajo. Una entrega a corto
plazo (antes de fin de año) y entrega final posterior.
http://www.exa.unicen.edu.ar/catedras/visdat2/index.html
Horarios y Lugares
Teórica:
Martes 21/10:
Miércoles 22/10:
Viernes 24/10:
Lunes 27/10:
Martes 28/10:
Miércoles 29/10:
Aula 2 (Facultad)
Aula 2 (Facultad)
Aula 1 (Facultad)
Aula 3 (Facultad)
Aula 2 (Facultad)
A confirmar
19-22 hs.
19-21 hs.
18-21 hs.
19-22 hs.
19-22 hs.
Información
Bibliografía:
Foley, van Dam, Feiner, Hughes “Computer Graphics:
Principles and Practice”.
Woo, Neider, Davis, Shreiner: “OpenGL Programming
Guide”.
Alan Watt “3D Computer Graphics”.
IEEE Computer Graphics an applications.
Objetivo
Idea: Entender los principios y
metodologías para lograr efectos
especiales en aplicaciones 3D.
Resumen de la materia
Iluminación y transformaciones.
Texturas.
Raycasting, Raytracing y Radiosity.
Sombras.
Animación y comportamiento físico.
Optimizaciones.
Transformaciones
Las transformaciones se aplican sobre
los puntos que definen el objeto
Pi
P1
P2
Pi = (px, py)
Transformaciones Simples
Escala isotrópica
Pi = (px, py)
S=
sx 0
0 sy
Pi = S.Pi
Transformaciones Simples
Traslación
dy
dx
Pi = Pi + D
Pi = (px, py)
D = (dx, dy)
Transformaciones Simples
Pi = (px, py)
Rotación
cos  -sin 
R = sin  cos 
Pi = R.Pi


Como representar las transformaciones?
x' = ax + by + c
y' = dx + ey + f
x'
=
y'
p' =
a b
d e
Mp
x
c
+
y
f
+ t
Coordenadas homogeneas
Se agrega una dimensión extra
en 2D, se usa 3 x 3 matrices
en 3D, se usa 4 x 4 matrices
Cada punto tiene entonces un valor extra, w
a
x'
e
y'
=
i
z'
m
w'
p' =
b c d
f g h
j k l
n o p
Mp
x
y
z
w
Pasar a coordenadas homogeneas
x' = ax + by + c
y' = dx + ey + f
Forma Afín
x'
=
y'
p' =
a b
d e
Mp
Forma Homogénea
x
c
+
y
f
+ t
x'
=
y‘
1
p' =
a b c
d e f
0 0 1
Mp
x
y
1
Traslación (tx, ty, tz)
Por que utilizar coordenadas
homogéneas?
Porque ahora las traslaciones se
expresan como matriz!
x'
y'
z'
10
=
1
0
0
0
0
1
0
0
0 tx
0 ty
1 tz
0 1
x
y
z
1
Scale(s,s,s)
Escala (sx, sy, sz)
p'
y
p
Isotrópica (uniforme)
scaling: sx = sy = sz
x'
y'
z'
1
sx
0
=
0
0
q
q'
x
0
sy
0
0
0
0
sz
0
0
0
0
1
x
y
z
1
ZRotate(θ)
Rotación
y
p'
θ
Sobre eje z
p
x
z
x'
y'
z'
1
=
cos θ -sin θ
sin θ cos θ
0
0
0
0
0
0
1
0
0
0
0
1
x
y
z
1
Rotación
General
x'
y'
z'
1
=
r11
r21
r31
0
r12
r22
r32
0
V’ = R . V
r13
r23
r33
0
0
0
0
1
x
y
z
1
Proyección en perspectiva
x'
y'
=
z'
w’
1
0
0
0
0
1
0
0
0
0
1
1/d
V’ = P. R . V
0
0
0
0
x
y
z
1
Necesidad de un modelo de iluminación
Difusor perfecto
Asumimos que la superficie refleja igual en todas
las direcciones.
Ejemplo: tiza, arcilla, algunas pinturas
I
R = I.Kr
G = I.Kg
B = I.Kb
Superficie
Cantidad de luz recibida
I0
n
n

I = I0.cos 
n
R = I0.cos .Kr
G = I0.cos .Kg
B = I0.cos .Kb
Surface
I0
Reflejos
Reflexión ocurre solo en la dirección especular.
Depende de la posición relativa de la fuente de luz y
el punto de vista
n
r
  l
Surface
Reflectores no ideales
Materiales reales no son como espejos.
Brillos no son puntuales sino borrosos
Reflectores no ideales
Modelo empírico simple:
Se supone que la luz se reflejará en la dirección del rayo
ideal.
Sin embargo, debido a imperfecciones microscópicas de
la superficie, algunos rayos reflejados se apartarán un
poco de la dirección ideal.
El modelo Phong
Parámetros
I = I0.Ks.cosq
ks: coeficiente reflexión especular
q : exponente reflexión especular
n
r

Cámara


L
V
Surface
El modelo Phong
Efecto del coeficiente q
Cálculo de la dirección especular
r  L  2 cos  n
r  2(n  L)n  L
n
(V.r)q)
R = I0.((1-Ks).Kr. L.n + Ks.
G = I0.((1-Ks).Kg. L.n + Ks. (V.r)q)
B = I0.((1-Ks).Kb. L.n + Ks. (V.r)q)
r
r


Surface
L
Modelo de iluminación simple
R =Ia.Kr + I0.((1-Ks).Kr. L.n + Ks. (V.r)q)
G = Ia.Kg + I0.((1-Ks).Kg. L.n + Ks. (V.r)q)
B = Ia.Kb + I0.((1-Ks).Kb. L.n + Ks. (V.r)q)
Surface
Modelos de iluminación (resumen)
R = Ia.Kr + Σ Ii.((1-Ks).Kr. Li.n + Ks. (V.ri)q)
G = Ia.Kg + Σ Ii.((1-Ks).Kg. Li.n + Ks. (V.ri)q)
B = Ia.Kb + Σ Ii.((1-Ks).Kb. Li.n + Ks. (V.ri)q)
Propiedades
del cuerpo
Kr, Kg, Kb
Ks, q
V
r
n
Surface
L
Intensidad de la luz
Decae como 1/r2
Misma energía en todas las
direcciones
En realidad se usa 1/r
Modelo de iluminación simple
Flat shading
Gourard shading
Gourard shading
n1 , n2 , n3
Ir1 , Ig1 , Ib1
Ir2 , Ig2 , Ib2
Ir3 , Ig3 , Ib3
3
A2 A1
A3
Irpixel= (Ir1.A1+Ir2.A2+Ir3.A3)/A
1
2
Phong shading
n1 , n2 , n3
npixel
Ir , Ig , Ib
Modelo de iluminación simple
Modelo de iluminación simple
Que falta tener en cuenta?
Para obtener imágenes realistas
Texturas
Sombras
Transparencias
Reflexiones
Refracciones
Fuentes no puntuales
Iluminación proveniente de otros objetos
Resumen - Texturas
•Por qué usar texturas
•Conceptos básicos
•Mapeo y Tiling
•Filtros y Mipmapping
•Lightmaps y efectos.
•Environment Mapping
Resumen - Sombras
•Fake shadows
•Planar & Projective
•Shadow Mapping
•Shadow volumes
Transparencias
Refracción
Reflexiones
Ray Tracing
I = Ilocal + Ireflejada + Irefractada
Sombras difusas
Radiosity
Que falta tener en cuenta?
Para lograr realidad virtual
Inmersión
Comportamientos realistas
Matrix
Efectos físicos
Efectos físicos