trfm.cámara-avatara. garcía-alonso1 >> transformación
TRANSCRIPT
Trfm.Cámara-Avatar A. García-Alonso 1
>> Transformación <<Cámara, Avatar
LINK http://www.sc.ehu.es/ccwgamoa/docencia/Material/Presentaciones
Trfm.Cámara-Avatar A. García-Alonso 2
Bibliografía
• Foley 6
• Hearn 12
• Vince 3.5
• OpenGL Programming Guide 3
Trfm.Cámara-Avatar A. García-Alonso 3
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 4
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• a>b pero a´<b´
a
b
Trfm.Cámara-Avatar A. García-Alonso 5
Planar geometric projections
• Parallel– Orthographic
• Top (plan)• Front elevation• Side elevation• Axonometric
– Isometric– Other
– Oblique• Cabinet• Cavalier• Other
• Perspective– One-point
– Two-point
– Three-point
Ver Figuras en :
Foley 6.1
ACM educational set 1991
Trfm.Cámara-Avatar A. García-Alonso 6
...
http://www.mtsu.edu/~csjudy/planeview3D/tutorial.html
Cabinet (gabinete), Caballera, perspectiva con 2 puntos de proyección
Frente (alzado), lateral (perfil), planta (superior), isométrica
Trfm.Cámara-Avatar A. García-Alonso 7
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 8
Parámetros / Estructura datos
• Elementos para su definición:– Expresados en el sistema de referencia del mundo :
• Punto de vista (view point)V• Punto hacia el que se mira (look at point) A• Vector vertical (up vector) u
– Puede tener que ser unitario– Puede no ser ortogonal a VA
– Eje z de la cámara (coordenada ó distancia)• Plano de recorte cercano (near/front clipping plane) dn
• Plano de recorte lejano (far/back clipping plane) df
– Independientes sistema• Ángulo de apertura (camera aperture) α
– Sistema pantalla• Aspect ratio, anchura, altura, (width, height) a=w/h (w, h)
orie
ntac
ión
y
pos
icio
nam
ient
o
Pro
yecc
ión
ver nota
Trfm.Cámara-Avatar A. García-Alonso 9
xw
yw
zw
Sistema de referencia de la cámaraEn 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
xc
zc
A
upV
Trfm.Cámara-Avatar A. García-Alonso 10
Los puntos V y A determinan el origen
y el eje zc del sistema de la cámara
View point & look At point
kc = vAV / |vAV|
xw
yw
zw
zc
A
V
Trfm.Cámara-Avatar A. García-Alonso 11
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
El eje yc queda definido por kc^ic
* Estará contenido en el plano vertical
* Su proyección en la pantalla queda vertical
Up vector
ic = normalizar( up^kc )
jc = kc^icxw
yw
zw
yc
xc
zc
A
u V
ver nota
Trfm.Cámara-Avatar A. García-Alonso 12
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
Plano cercano y Plano lejano
xw
yw
zw
yc
xc
zc
V
A
Trfm.Cámara-Avatar A. García-Alonso 13
Pirámide de visión
xw
yw
zw Pirámide de visión
yc
xc
zc
V
Vince 9.1.9 :“The binocular visual field extends approx. ±100º horizontally and ± 60º vertically,…” ( Xc,Zc plane Yc,Zc plane )
Trfm.Cámara-Avatar A. García-Alonso 14
Angulo de apertura
α aperture angle
zc
yc
Vα
A
Far clipping plane
Near clipping plane
Trfm.Cámara-Avatar A. García-Alonso 15
Trfm.Cámara-Avatar A. García-Alonso 16
Volumen de recorte (volume clipping)
Frustum culling
Volumen de recorte
xw
yw
zw
A
yc
xc
zc
V
ver nota
Trfm.Cámara-Avatar A. García-Alonso 17
dp distance to projection plane : PV
hp drawingarea height (pixels)
wp drawingarea width
α aperture angle
tg (α/2) = (hp/2) / dp
dp = hp / ( 2 · tg (α/2) )
Plano proyección, distancia
zc
yc
hp
Projection plane
VP
α
Trfm.Cámara-Avatar A. García-Alonso 18
Proyección
Transformación de proyección
xp = (xc · dp) / zc
yp = (yc · dp) / zc
zp = zc
Nota : se puede usar una expresión matricial homogénea
zc
yc
(yc, zc)
Projection plane
yp
dp
yp
xp
zp
V
ver nota
Trfm.Cámara-Avatar A. García-Alonso 19
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
yc
xc
zc
V
Trfm.Cámara-Avatar A. García-Alonso 20
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
ver nota
Trfm.Cámara-Avatar A. García-Alonso 21
http://www.yorku.ca/eye/disparit.htm
Trfm.Cámara-Avatar A. García-Alonso 22
Enfoque
• Importancia– Simulación
– Cine y publicidad
• Se aproxima con el alpha-buffer (H/W, OpenGL)
• Aquí no hemos considerado parámetros para su controlArchitecture and CAAD, Department of Architecture, ETH Zurich
http://caad.arch.ethz.ch/info/maya/manual/UserGuide
Trfm.Cámara-Avatar A. García-Alonso 23
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 24
...• 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 25
...• 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 26
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 27
...
• 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 28
...
• 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 29
Cámara y transformaciones *** +++
• Resumen conceptual
• Aplicación– OpenGL
– H/W
Trfm.Cámara-Avatar A. García-Alonso 30
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 31
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
ver nota
Trfm.Cámara-Avatar A. García-Alonso 32
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 33
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 34
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 …
A
V
Φ Latitud, elevación
θ Longitud
arc over
arc under
arc right
arc left
Trfm.Cámara-Avatar A. García-Alonso 35
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• ΔΦ > 0 “baja”, < 0 “sube”
A´ = A (queda fijo)
e = (- kc ) ^ jw (ver nota)
V´ = rotar V [eje(e , A), giro ΔΦ ]
up´ = rotar up [eje(e , A), giro ΔΦ ]ver nota
Trfm.Cámara-Avatar A. García-Alonso 36
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 37
Dolly right
Dolly left Dolly in / truck in
Dolly out / truck out
Crane up
Crane down
Traslación• La cámara se puede mover sobre un pié o carro móvil,
sobre un elevador, una jirafa u otras combinacionesNOTA : las aplicaciones CAD denominan “pan” al dolly l/r & crane, en video juegos se denomina strafe al desplazamiento derecha-izquierda
Trfm.Cámara-Avatar A. García-Alonso 38
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 39
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 40
...
• Zoom : modificar el ángulo de apertura– Á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)
A, V, up constantes
Ángulo apertura (variar)
Trfm.Cámara-Avatar A. García-Alonso 41
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 up / down ; pitch ; cabecear
tilt ; roll
pan right / left ; yaw ; colear
Trfm.Cámara-Avatar A. García-Alonso 42
Base móvil : analogía del aviónIt 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 43
Analogía vehículos (avión, coche, ...)
http://liftoff.msfc.nasa.gov/academy/rocket_sci/shuttle/attitude/pyr.html
Rota sobre el eje X
Rota sobre el eje Y
Rota sobre el eje Z
ver nota
Trfm.Cámara-Avatar A. García-Alonso 44
Tabla equivalencia terminológica
CameraRotation
AxisAirplane Airplane & car Camera
ZBANK
inclinar (al virar)ROLL
balancearseTILT
inclinarse
Y Change HEADINGYAW
colear (avión)
PAN (right-left)mirada en derredor
panorámica horizontal
XPITCH
cabecearPITCH
cabecearPAN (up-down)
panorámica
Trfm.Cámara-Avatar A. García-Alonso 45
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 46
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 47
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 48
• En los paseos virtuales, la cámara emula los ojos de la persona que se ha introducido en el modelo virtual
Orientado por la vista
HorizontalSagital
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 49
• 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
Pasear
Trfm.Cámara-Avatar A. García-Alonso 50
• 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– 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)
Pasear : modelo simple
P
m
ver nota
Trfm.Cámara-Avatar A. García-Alonso 51
...
• 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 52
...
• Control de la cámara– View point : en la posición del ojo del avatar
– 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”)
A
V
m
Trfm.Cámara-Avatar A. García-Alonso 53
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
V
A´
V´
A
V
A´
Trfm.Cámara-Avatar A. García-Alonso 54
...
• 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 55
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 56
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)
– A en el centro esfera
– δ : distancia VA
α
Plano recorte lejano
Plano recorte cercano