>> Transformación <<
Cámara, Avatar
LINK
http://www.sc.ehu.es/ccwgamoa/docencia/Material/Presentaciones
Trfm.Cámara-Avatar
A. García-Alonso
1
Bibliografía
•
•
•
•
Foley 6
Hearn 12
Vince 3.5
OpenGL Programming Guide 3
Trfm.Cámara-Avatar
A. García-Alonso
2
Contenido
•
•
•
•
•
Proyecciones
La cámara
El avatar
Cámara y transformaciones: OpenGL, H/W
Control de la cámara
Trfm.Cámara-Avatar
A. García-Alonso
3
Proyecciones ***
• Paralela
– Elementos
• Plano proyección
• Dirección de proyección
– Perpendicular es lo más frecuente
• Perspectiva
– Elementos
• Plano proyección
• Centro de proyección
– Efectos
b
• a>b pero a´<b´
a
Trfm.Cámara-Avatar
A. García-Alonso
4
Planar geometric projections
• Parallel
• Perspective
– Orthographic
•
•
•
•
– One-point
– Two-point
– Three-point
Top (plan)
Front elevation
Side elevation
Axonometric
– Isometric
– Other
Ver Figuras en :
Foley 6.1
ACM educational set 1991
– Oblique
• Cabinet
• Cavalier
• Other
Trfm.Cámara-Avatar
A. García-Alonso
5
...
Cabinet (gabinete), Caballera, perspectiva con 2 puntos de proyección
Frente (alzado), lateral (perfil), planta (superior), isométrica
http://www.mtsu.edu/~csjudy/planeview3D/tutorial.html
Trfm.Cámara-Avatar
A. García-Alonso
6
La cámara ***
• Definición
–
–
–
–
Perspectiva
Ortogonal
Imágenes estereoscópicas
Foco
• Clasificación de parámetros
– Orientación y posicionamiento
– Intrínsecos
– Proyección sobre la pantalla
Trfm.Cámara-Avatar
A. García-Alonso
7
Parámetros / Estructura datos
orientación y
posicionamiento
• Elementos para su definición:
– Expresados en el sistema de referencia del mundo :
• Punto de vista (view point)
• Punto hacia el que se mira (look at point)
• Vector vertical (up vector)
– Puede tener que ser unitario
– Puede no ser ortogonal a VA
V
A
u
Proyección
– Eje z de la cámara (coordenada ó distancia)
• Plano de recorte cercano (near/front clipping plane)
• Plano de recorte lejano (far/back clipping plane)
dn
df
– Independientes sistema
• Ángulo de apertura (camera aperture)
α
– Sistema pantalla
• Aspect ratio, anchura, altura, (width, height)
Trfm.Cámara-Avatar
A. García-Alonso
a=w/h (w, h)
8
ver nota
Sistema de referencia de la cámara
En las siguientes páginas se define el sistema de
referencia de la cámara (ic, jc, kc) a partir de los
parámetros de orientación y posicionamiento (V,
A, up). Todos ellos expresados en el sistema del
mundo
yc
zc
xc
yw
up
V
A
xw
zw
Trfm.Cámara-Avatar
A. García-Alonso
9
View point & look At point
Los puntos V y A determinan el origen
y el eje zc del sistema de la cámara
kc = vAV / |vAV|
zc
yw
V
xw
A
zw
Trfm.Cámara-Avatar
A. García-Alonso
10
Up vector
El vector u y el eje zc determinan el plano vertical
Perpendicular a este plano será xc
* Su proyección en la pantalla queda horizontal
yw
yc
zc
xc
ic = normalizar( up^kc )
u
V
jc = kc^ic
zw
Trfm.Cámara-Avatar
xw
A
El eje yc queda definido por kc^ic
* Estará contenido en el plano vertical
* Su proyección en la pantalla queda vertical
A. García-Alonso
11
ver nota
Plano cercano y Plano lejano
yc
Los planos de recorte se definen,
en unos casos por su distancia a V,
en otros por la coordenada de corte
con el eje z
zc
xc
V
yw
A
xw
zw
Trfm.Cámara-Avatar
A. García-Alonso
12
Pirámide de visión
Vince 9.1.9 :
“The binocular visual field extends approx.
±100º horizontally and ± 60º vertically,…”
( Xc,Zc plane
Yc,Zc plane )
yc
zc
xc
V
yw
xw
zw
Trfm.Cámara-Avatar
Pirámide de visión
A. García-Alonso
13
Angulo de apertura
Near clipping plane
yc
Far clipping plane
α
V
zc
α aperture angle
A
Trfm.Cámara-Avatar
A. García-Alonso
14
Trfm.Cámara-Avatar
A. García-Alonso
15
Volumen de recorte
Volumen de recorte (volume clipping)
Frustum culling
yc
zc
xc
V
yw
A
xw
zw
Trfm.Cámara-Avatar
A. García-Alonso
16
ver nota
Plano proyección, distancia
dp distance to projection plane : PV
hp drawingarea height (pixels)
Projection plane
wp drawingarea width
α aperture angle
yc
α
hp
P
V
zc
tg (α/2) = (hp/2) / dp
 dp = hp / ( 2 · tg (α/2) )
Trfm.Cámara-Avatar
A. García-Alonso
17
yp
Proyección
zp
xp
Transformación de proyección
V
Nota : se puede usar
una expresión matricial homogénea
xp = (xc · dp) / zc
yp = (yc · dp) / zc
zp = zc
Projection plane
yc
(yc, zc)
yp
dp
Trfm.Cámara-Avatar
A. García-Alonso
zc
18
ver nota
Cámara con proyección ortogonal
• Se define un prisma recto rectangular
de visión en el sistema de la cámara :
– xmin, xmax
– ymin, ymax
– zmin, zmax
Trfm.Cámara-Avatar
yc
zc
xc
V
A. García-Alonso
19
Imágenes estereoscópicas
• Cfr. Vince 3.4-5
• Stereoscopic vision : 3-D sensation when seeing with
two eyes
• Binocular disparity
• Stereopsis : process of obtaining two views of an object
when viewed with two eyes
• Eye convergence
• Interpupillary (interocular) distance
V 3.21
Trfm.Cámara-Avatar
A. García-Alonso
20
ver nota
http://www.yorku.ca/eye/disparit.htm
Trfm.Cámara-Avatar
A. García-Alonso
21
Enfoque
• Importancia
– Simulación
– Cine y publicidad
• Se aproxima con el alpha-buffer (H/W, OpenGL)
• Aquí no hemos considerado parámetros para su control
Architecture and CAAD, Department of Architecture, ETH Zurich
http://caad.arch.ethz.ch/info/maya/manual/UserGuide
Trfm.Cámara-Avatar
A. García-Alonso
22
El avatar ***
• Definiciones
• In online chat, your handle used to be the thing that
distinguished you from everyone else. But as 3D chat worlds
proliferate, the avatars are taking over. An avatar is a graphical
representation that you select to stand in for you; it can look
like a person, an object, or an animal. Since an avatar may look
nothing like you (unless you happen to resemble a blue fish),
you should choose one that fairly represents the way you'd like
to be seen by the people you're chatting with.
http://www.cnet.com/Resources/Info/Glossary/
• The abstract representation of the user in a VRML world. The
physical dimensions of the avatar are used for collision
detection and terrain following. User : a person or agent who
uses and interacts with VRML files by means of a browser.
ISO-VRML’97
• An embodiment (as of a concept, philosophy, or tradition)
usually in human form (Vishnu)
Trfm.Cámara-Avatar
A. García-Alonso
23
...
• Avatara (http://www.encyclopedia.com)
– Pronounced As: avtâr [Skt.,=descent], incarnations of
Hindu gods, especially Vishnu. The doctrine of avatara
first occurs in the Bhagavad-Gita, where Krishna declares:
"For the preservation of the righteous, the destruction of
the wicked, and the establishment of dharma [virtue], I
come into being from age to age. Vishnu is believed to
have taken nine avatara, in both animal and human form,
with a tenth yet to come. The avatara of Shiva are
imitations of those of Vishnu.
– Vishnu and his avatara (incarnations) : Matsya (the fish),
Kurma (the tortoise), Varaha (the boar), Narasimha (the
man-lion), Vamana (the dwarf), Parashurama (Rama with
the ax), Rama, Krishna, Buddha, and Kalkin (who is yet to
appear)
Trfm.Cámara-Avatar
A. García-Alonso
24
...
• The use of the word Avatar for a graphical representation of a
human in a multi-user, computer generated environment was
made popular by Neal Stephenson's science fiction novel
'Snow Crash'. Since humans are the creators of cyberspace,
and since humans cannot walk in their created worlds in their
normal form, we create avatars of ourselves to walk among our
creations. Which makes the idea of avatars a mind-boggling
concept, since it implies that humans are the deities of
cyberspace going out to walk among their digital creations.
(e3D News, vol. 3, n. 3, Dec. 2001)
• “En la religión hindú, encarnación terrestre de alguna deidad,
en especial Visnú. Reencarnación, transformación.” Real
Academia Española ( www.rae.es )
Trfm.Cámara-Avatar
A. García-Alonso
25
Avatar en VRML
• El avatar queda definido por tres parámetros
– Altura a la que está situado su ojo
• Posiciona la cámara relativa al suelo
– Altura a la que está la rodilla
• colisión/escalón
– Radio (grosor)
• Colisiones
ISO/IEC 14772-1:1997
The Virtual Reality Modeling Language (VRML)
Trfm.Cámara-Avatar
A. García-Alonso
26
...
• Las colisiones en VRML
– El navegador (browser) las determina entre el cilindro que
define al avatar y los objetos colisionables de la escena
– Una geometría compleja se puede sustituir por un proxy
Trfm.Cámara-Avatar
A. García-Alonso
27
...
• La altura a la que está la rodilla
– Determina si un obstáculo es superable o no al chocar con el
al andar (peldaño vs. pared, ventana, mesa, etc)
• Al avatar se le puede ligar un objeto que le dé forma
– Éste no interviene en las colisiones
Trfm.Cámara-Avatar
A. García-Alonso
28
Cámara y transformaciones *** +++
• Resumen conceptual
• Aplicación
– OpenGL
– H/W
Trfm.Cámara-Avatar
A. García-Alonso
29
Resumen conceptual (pipeline)
•
•
•
•
•
•
Hearn 12.42, 45
Del sistema de modelado al mundo
Del mundo a la cámara
Al cubo normalizado
Recorte contra los planos
Transformación a coordenadas de pantalla
Trfm.Cámara-Avatar
A. García-Alonso
30
Control cámara ***
•
•
•
•
•
•
•
•
•
VRML
Examinar (examine, circle, arc)
Traslación cámara (crane, dolly)
Zoom
Rotación (Tabla equivalencia terminológica)
– Cámara fija en “trípode” (pan, tilt)
– Cámara volando, analogía avión (yaw-heading, pitch)
– “God view”
Pasear
Seguimiento
Plano cercano (near clipping plane)
Posición inicial automática para examinar
Trfm.Cámara-Avatar
A. García-Alonso
31
ver nota
Consideraciones previas
• Un estado de la cámara queda determinado por los
valores que toman los parámetros de su estructura en
un momento dado.
• Qué acciones se señalan sobre el interfaz de usuario
para mover la cámara
• Cómo se mueve la cámara, es decir, cómo se determina
un nuevo estado de la cámara a partir de:
– Un estado dado y
– Una determinada acción sobre el interfaz de usuario
Trfm.Cámara-Avatar
A. García-Alonso
32
VRML
• WALK navigation is used for exploring a virtual world on
foot or in a vehicle that rests on or hovers above the
ground.
• FLY navigation is similar to WALK except that terrain
following and gravity may be disabled or ignored.
• EXAMINE navigation is used for viewing individual
objects and often includes (but does not require) the ability
to spin around the object and move the viewer closer or
further away.
Trfm.Cámara-Avatar
A. García-Alonso
33
Examinar
• El control de la cámara es similar a mover la cámara
(V) sobre la superficie de una esfera de centro en A
• El usuario elige el centro de atención, en el que sitúa A
– El centro del objeto
– Un vértice determinado …
arc over
arc left
V
A
arc right
Φ Latitud, elevación
θ Longitud
arc under
Trfm.Cámara-Avatar
A. García-Alonso
34
Arc over-under
• arc over - under : “mover” en meridiano (entre polos)
– Mover por un meridiano el punto V es rotarlo alrededor de
un eje paralelo al plano XZ del mundo y perpendicular a
VA, y que pasa por A.
– Suele ser conveniente impedir que la cámara rebase un polo,
pues la imagen pasa a ser invertida “cabeza abajo”.
– El ángulo a rotar, ΔΦ , se controla de diversos modos
• Por cada pulsación de un botón se “rota” un valor cte ΔΦ
• En cada evento producido al mover el ratón se rota un valor
variable ΔΦ : proporcional al desplazamiento del ratón
• Etc
A´ = A (queda fijo)
• ΔΦ > 0 “baja”, < 0 “sube”
e = (- kc ) ^ jw (ver nota)
V´ = rotar V [eje(e , A), giro ΔΦ ]
up´ = rotar up [eje(e , A), giro ΔΦ35]
Trfm.Cámara-Avatar
A. García-Alonso
ver nota
Arc left-right
• arc left - right : “mover” en un paralelo
– Mover por un paralelo el punto V es rotarlo alrededor de un
eje paralelo al eje “y” del mundo, que pasa por A
– El ángulo a rotar, Δθ , se controla de modo similar
– Δθ > 0 “la cámara se mueve a la derecha”, < 0 “izquierda”
A´ = A (queda fijo)
V´ = rotar V [eje(jw , A), giro Δθ ]
up´ = rotar up [eje(jw , A), giro Δθ ]
Trfm.Cámara-Avatar
A. García-Alonso
36
Traslación
• La cámara se puede mover sobre un pié o carro móvil,
sobre un elevador, una jirafa u otras combinaciones
NOTA : las aplicaciones CAD denominan “pan” al dolly l/r & crane, en
video juegos se denomina strafe al desplazamiento derecha-izquierda
Crane up
Dolly left
Dolly in / truck in
Dolly out / truck out
Dolly right
Crane down
Trfm.Cámara-Avatar
A. García-Alonso
37
Crane, dolly (truck)
• Trasladar V y A sobre un eje de la cámara
– Crane traslada sobre eje Y : jc (step +, up), (step -, down)
– Dolly traslada sobre eje X : ic (step +, right), (step -, left)
– Dolly/truck traslada sobre eje Z : kc (step +, out), (step -, in)
Crane (+up/-down) :
A´ = A + step * jc
V´ = V + step * jc
up´ = up (queda fijo)
Dolly (+right/-left) :
A´ = A + step * ic
V´ = V + step * ic
up´ = up (queda fijo)
Dolly (+out/-in) :
A´ = A + step * kc
V´ = V + step * kc
up´ = up (queda fijo)
Trfm.Cámara-Avatar
A. García-Alonso
38
Zoom & “Dolly”
• Zoom & Dolly
– Zoom consiste en modificar el ángulo de apertura
– Produce un efecto similar al acercar/alejar la cámara (dolly )
– Para hacer “zoom” con una especie de “dolly”, suele
convenir mantener fijo el punto de atención
• Dolling vs. zooming :
– El zoom no produce efecto de profundidad porque no varía
la perspectiva
Trfm.Cámara-Avatar
A. García-Alonso
39
...
A, V, up constantes
• Zoom : modificar el ángulo de apertura Ángulo apertura (variar)
– Ángulos de apertura grandes (+ de 70º ~ 80º) generan
imágenes que dan impresión de estar distorsionadas
• “Dolly” : desplazar V sobre eje Z de la cámara (A fijo)
– Step > 0 aleja V de A (zoom out), < 0 lo acerca (zoom in)
– Hay peligro numérico de acercar demasiado V a A
– Si V se acerca demasiado al objeto, pueden aparecer recortes
no deseados por interferir el plano cercano con el objeto, por
penetrar V dentro del objeto, etc
A´ = A (queda fijo)
V´ = V + step * kc
up´ = up (queda fijo)
Trfm.Cámara-Avatar
A. García-Alonso
40
Rotación respecto al “trípode”
• Giros relativos a los ejes de la cámara
NOTA : en aplicaciones de CAD pan no es un giro, sino una
traslación según los ejes XY de la cámara
pan right / left ; yaw ; colear
tilt ; roll
pan up / down ; pitch ; cabecear
Trfm.Cámara-Avatar
A. García-Alonso
41
Base móvil : analogía del avión
It BANKS by tipping its wings to the left or to the right
It changes HEADING by turning left or right
It PITCHES forward by bowing down
It PITCHES back by bowing up
http://artemis.simmons.edu/
~bwhite/SYL/xyz.html
Trfm.Cámara-Avatar
A. García-Alonso
42
Analogía vehículos (avión, coche, ...)
Rota sobre el eje X
Rota sobre el eje Z
Rota sobre el eje Y
http://liftoff.msfc.nasa.gov/academy/rocket_sci/shuttle/attitude/pyr.html
Trfm.Cámara-Avatar
A. García-Alonso
43
ver nota
Tabla equivalencia terminológica
Camera
Rotation
Axis
Airplane
Airplane & car
Camera
Z
BANK
inclinar (al virar)
ROLL
balancearse
TILT
inclinarse
Y
Change HEADING
YAW
colear (avión)
PAN (right-left)
mirada en derredor
panorámica horizontal
X
PITCH
cabecear
PITCH
cabecear
PAN (up-down)
panorámica
Trfm.Cámara-Avatar
A. García-Alonso
44
Pan left-right (yaw, heading)
• Rotar alrededor del eje Y de la cámara (V fijo)
– Δψ > 0 left, < 0 right
A´ = rotar A [eje(jc , V), giro Δψ ]
V´ = V (queda fijo)
up´ = rotar up [eje(jc , V), giro Δψ ]
Trfm.Cámara-Avatar
A. García-Alonso
45
Pan up-down (pitch)
• Rotar alrededor del eje X de la cámara (V fijo)
– Δθ > 0 up, < 0 down
A´ = rotar A [eje(ic , V), giro Δθ ]
V´ = V (queda fijo)
up´ = rotar up [eje(ic , V), giro Δθ ]
Trfm.Cámara-Avatar
A. García-Alonso
46
Tilt (bank, roll)
• Inclinar, ladear la cabeza (cámara)
– Rotar sobre el eje de mirada, el Z de la cámara
– Δφ > 0 ladea “cabeza” a la izquierda, < 0 derecha
A´ = A (queda fijo)
V´ = V (queda fijo)
up´ = rotar up [eje(kc , V), giro Δφ ]
Trfm.Cámara-Avatar
A. García-Alonso
47
Orientado por la vista
• En los paseos virtuales, la cámara emula los ojos de la
persona que se ha introducido en el modelo virtual
Sagital
Horizontal
Sagital
Horizontal
Images from graphics.stanford.edu/projects/mich
www.cs.princeton.edu/gfx/proj/sugcon/models/
Trfm.Cámara-Avatar
A. García-Alonso
48
Pasear
• En los paseos virtuales, la cámara emula los ojos de la
persona que se ha introducido en el modelo virtual
– Modelo con avatar simple : identifica control de avatar y de
cámara
– Cámara posicionada relativa al avatar : desacopla
parcialmente la cámara del avatar (orientación avance y de
mirada)
– Modelo avatar “actor” : la cámara depende totalmente del
modelo del avatar, se coloca en sus ojos. No se habla de
control de cámara sino de control del actor
Trfm.Cámara-Avatar
A. García-Alonso
49
Pasear : modelo simple
• Incrementar posición (punto P) hacia delante
o hacia atrás siguiendo el vector de marcha
• Rotar dirección de marcha -el vector de
marcha- (o mirada) a derecha o izquierda
• P y m se definen en el sistema del mundo
• Las acciones sobre los controles modifican

m
P
– La posición sobre el suelo (Px, Pz) del avatar
– El vector de orientación (marcha y mirada)
– Para la marcha sólo se consideran las
componentes (mx, mz)
Trfm.Cámara-Avatar
A. García-Alonso
50
ver nota
...
• La posición del ojo en la coordenada vertical (Py)
– Forzada por los siguientes elementos
• La altura asignada al avatar
• El modelo de suelo, con obstáculos salvables (escalones)
– Gozar de cierta libertad mediante un tercer gdl que permite
agacharse o realizar saltos
• Modificar la inclinación alrededor del eje de mirada
(mirar con la cabeza ladeada)
Trfm.Cámara-Avatar
A. García-Alonso
51
...
• Control de la cámara
A

m
– View point : en la posición del ojo del avatar
V
– Look at point : la posición de V más cierta distancia en la
dirección del vector de marcha
– Up vector se puede determinar de dos modos
• El usuario controla un ángulo de inclinación φ medido respecto
al eje Y del mundo, y en función de éste se recalcula u
• Al ordenar el usuario una inclinación de cabeza se rota el
vector u actual alrededor del eje Z actual de la cámara (esto
evita indeterminaciones si se mira hacia el “cielo”)
Trfm.Cámara-Avatar
A. García-Alonso
52
Seguimiento (de un punto móvil)
• Base fija
– El view point permanece fijo, el look at point pasa de A a A´
• Traveling, chase
– Al moverse el objeto de atención de A a A´, el look at point
debe cambiar a esa nueva posición, y el view point debe
sufrir una traslación idéntica
A
A´
A´
V
Trfm.Cámara-Avatar
V´
A. García-Alonso
A
V
53
...
• Base fija (track)
– Ángulo de apertura (se suele ajustar en función de la
distancia)
– Planos recorte (control complicado, problemas precisión)
• Base móvil
– Sistemas referencia (objeto seguido, objeto q mueve cámara)
Trfm.Cámara-Avatar
A. García-Alonso
54
Variar la posición del plano cercano
• Normalmente permanece fijo
– Si está demasiado cerca del ojo pueden aparecer problemas
de “superposición” por falta de precisión en el Z-buffer y la
proyección de perspectiva
– Si se aleja del ojo, pueden desaparecer elementos gráficos
situados entre V y el near clipping plane, creando imágenes
“falsas” (desaparece una pared y se ve la habitación
contigua, o se ve “el interior” de un objeto)
– Adecuar control de “colisiones” y posición de este plano
• En ocasiones se aprovecha este “defecto” para ver a
propósito “el interior de objetos”, pues se elimina la
parte del objeto que está entre “el ojo” y ese plano
Trfm.Cámara-Avatar
A. García-Alonso
55
Posición inicial automática (examinar)
• Contenedor de los objetos de interés
– Sistema de referencia del mundo
– Xmin, Xmax, Ymin, Ymax, Zmin, Zmax
• Esfera que contiene a la caja
• La cámara vea toda la esfera de interés
–
–
–
–
2 * α = apertura/fovy : field of view in the “y” direction
sin(α) = radio / δ => δ = radio / sin(fovy/2)
Plano recorte lejano
A en el centro esfera
Plano recorte cercano
δ : distancia VA
α
Trfm.Cámara-Avatar
A. García-Alonso
56
Descargar

Document