Trfm.Cámara-AvatarA. García-Alonso1 >> Transformación

Post on 29-Jan-2016

225 views 0 download

Transcript of Trfm.Cámara-AvatarA. García-Alonso1 >> Transformación

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

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

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