Sunteți pe pagina 1din 9

Introducci

Transformaciones

La generacin de un mundo 3D requiere 3


componentes esenciales:
El mundo 3D de los objetos
La o las fuentes de luz
La cmara o el ojo que observa la escena

Al mundo virtual que generemos lo denominaremos


escena y a los objetos en la misma, actores.
Una cmara especifica nuestra posicin de vista y
ciertos parmetros de vista (longitud focal, tamao
de la imagen, etc.).
VyGLab Lab. de Investigacin y Desarrollo en Visualizacin y
Computacin Grfica
Dpto. de Ciencias e Ingeniera de la Computacin
Universidad Nacional del Sur
S.Castro, D.Urribarri

CG 2015

Usaremos
transformaciones
geomtricas
para
posicionar y mover actores y cmaras en la escena.
Tambin
usaremos estas transformaciones para
modelar objetos.
S.Castro, D.Urribarri
2015

CG

Introducci
n
La traslacin, la rotacin, el escalado y el
sesgado son ejemplos
de
transformaciones
geomtricas.
Estas transformaciones
son
lineales; tambin podemos usar transformaciones
no lineales.
Veremos
primero
cmo
llevar
a
cabo
estas
transformaciones y luego, a partir de esto, veremos
cmo podemos crear escenas a partir de stas y de
distintos objetos.

S.Castro, D.Urribarri

CG 2015

Transformacione
s
Las transformaciones geomtricas nos permitirn,
entre otras cosas,
Crear mltiples copias de objetos en la escena
Mapear puntos de un sistema de coordenadas en otro.
Cambiar la forma de los objetos
Posicionar objetos en una escena
Proyectar escenas tridimensionales en la pantalla
Crear animaciones

S.Castro, D.Urribarri

CG 2015

Transformaciones
2D

Traslacin

Esta operacin se usa para mover un objeto o


grupo de objetos de manera lineal a una nueva
ubicacin en el espacio bidimensional.

Transformaciones Geomtricas
en 2D

Trasladar un objeto una distancia tx en x y una distancia ty


en y se expresa como:

x t x

y t y
S.Castro, D.Urribarri

CG 2015

S.Castro, D.Urribarri

0 1 y

0 x t x
t
y
CG 2015

Transformaciones
2D

Escalad
Es una transformacin que permite cambiar el
o
tamao o la proporcin de un objeto o grupo de
objetos. Hay escalados proporcionales y no proporcionales.

Sesgad
Un objeto se puede sesgar tanto en sentido
o
horizontal como en sentido vertical.

Sesgar un objeto en sentido horizontal se expresa


como:

Escalar un objeto en ex segn x y en ey segn y se


expresa como:

x ex 0 x
xy
eexy xy


y 0 ey y
S.Castro, D.Urribarri

Transformaciones
2D

x x

x 1 a x


y 0 1 y

ay y y

CG 2015

S.Castro, D.Urribarri

CG 2015

Transformaciones
2D
Rotaci
Esta transformacin geomtrica se usa para
n

Transformaciones
2D
La matriz de rotacin
ciertas propiedades

tiene

mover un objeto o grupo de objetos alrededor de un punto.


x cos

y sin

sin x

cos y

La norma de cada fila es uno: sin 2 cos 2 1


Las filas son ortogonales :

Decimos que las matrices de rotacin son


ortonormales
La inversa de .una matriz ortonormal es su

Rotar un objeto un ngulo en sentido horario se


expresa como:

x x cos y sin
y x sin y
cos
S.Castro, D.Urribarri

x cos

y sin

cos sin sin cos 0

traspuesta.

sin x


cos y
CG 2015

S.Castro, D.Urribarri

Transformaciones
2D
Las transformaciones de traslacin y rotacin se
conocen como
transformaciones
de
cuerpo
rgido.
Estas transformaciones preservan las
distancias y los ngulos.

CG 2015

Transformaciones
2D
Si a las transformaciones de similaridad les
adicionamos las transformaciones de deslizamiento
(shear)
y
escalado
no uniforme, tenemos las
transformaciones afines.

Si a las transformaciones de cuerpo rgido les


adicionamos las transformaciones de reflexin y
escalado uniforme, tenemos las
transformaciones
de similaridad. stas preservan los ngulos, las
distancias
entre
puntos
cambian
en
una
proporcin fija y se mantiene una forma similar
(tringulos similares, crculos mapean a crculos, ).
stas preservan las lneas paralelas.
S.Castro, D.Urribarri

CG 2015

S.Castro, D.Urribarri

CG 2015

Transformaciones
2D
Dado un polgono y su normal, se escala ste en
segn x.
Cmo debe transformarse la normal para que siga
siendo normal al mismo?

Transformaciones
2D

Supongamos que P es el punto de la superficie y la normal en ese


punto es
N. Adems T es la tangente a la superficie en P y est
dada como Q-P.
Entonces

N T 0 y en forma vectorial

N TT 0

Si transformamos los puntos por una matriz M, stos se convierten


en:

P ' MP

Q ' MQ

El nuevo vector tangente es entonces:

T ' Q'
MQ MP
M (Q P) MT
N '
Si N es la normal
enPel' espacio
transformado
Si R es la transformacin que transforma la normal N
'N
a
T 0

S.Castro, D.Urribarri
2015

T RN MT N R MT N R
R M I R M R M
M T

0 N'

Cul es la matriz de transformacin que debe


usarse? Por qu?

Dado que

CG

'

S.Castro, D.Urribarri

Transformaciones
2D

CG 2015

Transformaciones
2D

No podemos aplicar las frmulas que


vimos directamente ya que definen
rotaciones con respecto al origen.

Qu ocurre
cuando queremos
realizar una
determinada transformacin con respecto a un punto
cualesquiera?

Cmo se ubicara la casita si aplicamos la


transformacin que vimos?
Qu pasos debemos seguir
para lograr nuestro objetivo?

Supongamos que queremos rotar 90 grados con respecto


al punto (1.5,5)
S.Castro, D.Urribarri

CG 2015

S.Castro, D.Urribarri

CG 2015

Transformaciones
2D
Si tenemos las transformaciones :

Transformaciones
2D
Escribimos las transformaciones como:

1 00 10
y
y

x 1 0 x t x

*
y
0 1 y t y

x ex

y 0

0 x
*
e y y

x cos sin * x
y sin
cos y

podemos escribir cada punto transformado como:

p = p + T

S.Castro, D.Urribarri

p = E p

t x

t1 y * 1

ex

1 00
y

e0y

10 * y1

cos sin 0 x
y sin cos 0 * y


0
1 1
1 0

As podemos escribir cada punto como:

p = Tp

p = E p

p = Rp

p =
Rp

Estamos trabajando en coordenadas homogneas.


CG 2015

S.Castro, D.Urribarri

CG 2015

Transformaciones
2D
Al poder
como:

escribir

cada

punto

Transformaciones
2D
Dadas las transformaciones:
p= T1 R T1
p
La matriz de transformacin que se aplica a cada punto es:

p = Tp

MT= T1 R
T1

p = E p
Qu transformaciones tenemos que aplicar si queremos rotar un
p = Rpobjeto alrededor de un punto cualesquiera?

Esto significa que estamos haciendo primero la translacin T1, luego


la rotacin R y luego la translacin T1.

Aplicamos las transformaciones del siguiente modo:


podemos aplicar sucesivas transformaciones a un punto concatenando
p = T1p
p=R
p la p=T
las matrices de transformacin,
incluida
traslacin.
Para responder
1 p
a la pregunta:

p= T1 R p

p= T1 R T1p

AB
BA

Las matrices aparecen en orden reverso al que son aplicadas las


transformaciones.
S.Castro, D.Urribarri

El orden importa! Recuerden que

S.Castro, D.Urribarri

CG 2015

CG 2015

Transformaciones Geomtricas en
2D
Ejemplo:
Se aplican las transformaciones de rotacin de 90 y reflexin sobre x.

Transformaciones Geomtricas
en 3D

S.Castro, D.Urribarri

CG 2015

S.Castro, D.Urribarri

Transformaciones geomtricas en
3D
En este mundo 3D que generaremos, cada objeto se crea en su sistema
de coordenadas local. Por otro lado, su ubicacin en el mundo, est dada
por su posicin en un sistema de coordenadas global: es el
sistema de coordenadas del mundo.

CG 2015

Transformaciones
3D
Vimos que las transformaciones que le aplicamos a los
distintos objetos pueden utilizarse tanto para posicionar los
objetos como para modelarlos.

Oo
Om

Las transformaciones pueden llevarse a cabo sobre los objetos o sobre


todo el ambiente 3D. As tenemos transformaciones locales y
transformaciones globales.
S.Castro, D.Urribarri
2015

CG

Veremos ahora las distintas transformaciones que pueden aplicarse


en 3D.

S.Castro, D.Urribarri

CG 2015

Transformaciones
3D
La especificacin de las transformaciones bsicas en 3D
son: Traslacin
1 0 0 T x
0
1 0 Ty

Transformaciones
3D
Rotacin antihoraria alrededor de cada uno de los ejes:

Escalado

1
T
z

0
0

0
1

S.Castro, D.Urribarri

CG 2015

Rotacin alrededor de un eje arbitrario:

Transformaciones
3D

As especificamos la rotacin alrededor de un eje arbitrario teniendo


en cuenta tres ngulos que se denominan ngulos de Euler.

S.Castro, D.Urribarri

Gimbal Lock:

CG 2015

Transformaciones
3D

Una rotacin de 90 alrededor de uno de los ejes, reduce en uno los


grados de libertad; si se rota 90 alrededor de x, luego rotar alrededor de
y ser lo mismo que rotar alrededor de z

Problemas con los ngulos de Euler:


El resultado no es nico ya que es dependiente del orden en que
se realizan las rotaciones.
Las rotaciones no pueden sumarse
(90 cw + 90 ccw = 0, no la
Identidad) No pueden componerse
rotaciones
Gimbal lock
Dificultoso interpolar ngulos en
una animacin
S.Castro, D.Urribarri

Qu es una orientacin?

CG 2015

Transformaciones
3D

Representacin de la orientacin

CG 2015

Transformaciones
3D

Una cuestin importante en computacin grfica, y en


especial
en animacin, es lograr la mejor manera de
representar la posicin y la orientacin de un objeto en el
espacio y tambin interpolar posiciones y orientaciones a
medida
que
transcurre
el
tiempo
para
producir
as
movimiento.

Posicin en el espacio del


mundo (20,-10,35)
Orientacin del avin
(23,-14,40)-(20,-10,35) (3,-4,5)
En general, cualquier orientacin puede obtenerse efectuando una
rotacin alrededor del eje z, seguida por una rotacin alrededor de y y por
una rotacin alrededor de x. Esta secuencia no es nica.
La transformacin que ubica al avin en la posicin y orientacin deseada
puede obtenerse determinando los senos y cosenos necesarios para las
matrices de rotacin para los ejes x, y y z.
S.Castro, D.Urribarri
2015

S.Castro, D.Urribarri

CG

Un escenario tpico es aqul en el que se especifican dos


posiciones
y orientaciones y deben interpolarse los estados
intermedios para producir as la animacin de un determinado
objeto. Otro es cuando es necesario aplicar a un objeto sucesivas
transformaciones y debe tenerse una forma eficiente de
concatenar esas transformaciones antes de aplicarlas a
todos los vrtices del objeto.
Veremos
distintas
posibles
representaciones
de
orientaciones
e identificaremos
sus
fortalezas
y
debilidades.
Asumimos
que
la transformacin final aplicada
al objeto es el resultado slo de rotaciones y traslaciones, es
decir transformaciones de cuerpo rgido.
S.Castro, D.Urribarri
2015

CG

Transformaciones
3D
Si tenemos dos matrices de transformaciones que representan los
estados inicial y final de un detrminado objeto, podra pensarse que una
interpolacion entre los estado equivale a una interpolacin de las
matrices.

Transformaciones
3D
Representacin de la orientacin mediante ngulo fijo
Una representacin de ngulo fijo se refiere a los ngulos usados
para rotar alrededor de ejes fijos. Se entiende que existe un
orden fijo para las tres rotaciones, tales como x - y - z . Esto
significa que la orientacin est dada por un conjunto de 3
parmetros ordenados que representan 3 rotaciones ordenadas
alrededor de ejes fijos: primero alrededor de x, luego alrededor
de y y finalmente alrededor de z. Lo importante es que la
orientacin de un objeto est dada por 3 ngulos, por
ejemplo, (10, 45, 90) lo que es equivalente a R z (90) R y (45)
R x (10).

Supongamos que queremos interpolar de una rotacin de +90


alrededor del eje y a una de -90 alrededor del mismo eje.
Las matrices para ambos estados son respectivamente:

La matriz interpolada que representa la orientacin


a mitad de camino entre ambos estados es:
Esto, evidentemente no tiene sentido
S.Castro, D.Urribarri

CG 2015

S.Castro, D.Urribarri

Transformaciones
3D

CG 2015

Transformaciones
3D

Representacin de la orientacin mediante ngulo fijo

Representacin de la orientacin mediante ngulo fijo

Se considera un objeto orientado de acuerdo a (0, 90, 0).


Examinemos el efecto que un pequeo cambio en los
valores
del
primero
y
tercer parmetro, tiene sobre la
orientacin del objeto.

La causa de este problema puede hacer que la interpolacin


entre dos posiciones
y
orientaciones
clave
sea
problemtica. Considerar las orientaciones (0, 90, 0) y (90,
45, 90). La segunda orientacin es una rotacin de 45-grados
alrededor del eje x con respecto a la primera posicin.

La interpolacin directa de las representaciones de las


orientaciones produce (45, 67.5, 45) como la orientacin a mitad
de camino, que es muy distinta de (90, 22.5, 90) que es la
orientacin deseada (pq es la orientacin que est intuitivamente
a mitad de camino entre las dos orientaciones.
S.Castro, D.Urribarri

CG 2015
S.Castro, D.Urribarri
2015

Transformaciones
3D

CG

Transformaciones
3D

Representacin de la orientacin mediante ngulos de Euler

Representacin de la orientacin mediante ejes y ngulos

En una representacin de ngulos de Euler los ejes de rotacin


son los ejes del sistema de coordenadas local del objeto, que
rotan con el mismo (a diferencia de los ejes del sistema de
coordenadas global). Un ejemplo tpico de uso de los ngulos de
Euler es el de roll, pitch y yaw de una cmara.

El teorema de rotacin de Euler establece que para dos


orientaciones dadas de un objeto, una puede alcanzarse a
partir de la otra por una simple rotacin alrededor de un eje
arbitrario.

Como en la representacin fija, esta representacin puede


usar
varios ordenamientos de los 3 ejes de rotacin como
esquema de representacin. Cualquier sistema de ngulos de
Euler que se use es equivalente al sistema de ngulos fijos, en
orden reverso. Por ello, esta representacin tiene las mismas
ventajas y desventajas (i.e. gimbal lock) que las de
la representacin de ngulo fijo.
Sist. de coord. global
S.Castro, D.Urribarri

Sist. de coord. local del objeto


CG 2015

S.Castro, D.Urribarri

CG 2015

Transformaciones
3D

Transformaciones
3D

Representacin de la orientacin mediante ejes y ngulos

Representacin de la orientacin mediante cuaterniones

La interpolacin de representaciones de ejes y ngulos entre


(A1,1) y (A2,2) por k para obtener (Ak,k) se realiza
mediante la rotacin Rotate(a,b,c) que rota c alrededor de a en b
grados.

La
representacin
anterior
tiene
problemas
en
lograr
interpolaciones de las orientaciones intermedias cuando un
objeto o unin tiene tres grados de libertad rotacional. Una
mejor herramienta para representar orientaciones la constituyen
los cuaterniones.
Un cuaternin es un vector 4D que se trata de una manera
especial. Cualquier cambio puro de orientacin que permite
cambiar de un sistema de coordenadas
a
otro
puede
representarse
por una rotacin de algn determinado ngulo
ngulo =

alrededor
de un determinado eje. Un cuaternin permite codificar
, uy, uz
esta
rotacin
ngulo/eje
Eje de
rotacin
unitario deu xrotacin

S.Castro, D.Urribarri

CG 2015

q cos 2 , sin 2x u iy u zj

k
El cuaterninu unitario
(de longitud
S.Castro, D.Urribarri
1) es:

CG 2015

Pipeline 3D
Del mundo 3D a la pantalla

Pipeline 3D

S.Castro, D.Urribarri

CG 2015

Pipeline
3D

S.Castro, D.Urribarri

CG 2015

Transformacin de Modelado

Miramos la escena

Pipeline
3D

Esta
transformacin
transforma los objetos en el espacio del objeto; permite
generar distintas instancias de un objeto dado.

Escalar, rotar.

Espacio del objeto


S.Castro, D.Urribarri

CG 2015

S.Castro, D.Urribarri

CG 2015

Pipeline
3D

Transformacin del Mundo

Esta transformacin orienta los


objetos dentro del espacio del mundo.

Esta
transformacin
puntos del espacio del mundo en el espacio del ojo.

Trasladar, rotar.

Espacio del objeto

Pipeline
3D

Transformacin de Vista

Rotar, trasladar

Espacio del mundo

S.Castro, D.Urribarri

Espacio del mundo


CG 2015

Espacio del ojo

S.Castro, D.Urribarri

CG 2015

Pipeline

Pipeline
3D

3D
Transformacin de Proyeccin
Esta transformacin mapea
el frustum de vista al espacio de clipping.

Espacios
Objeto

Mundo

Rotar
Trasladar

Transf. perspectiva,
escalar, trasladar

Espacio del ojo

Modelado

CG 2015

Pipeline
3D
Mundo

Ojo

Escalar
Trasladar
Perspectiva

Especificacin
de la cmara

Ubicacin
en el Mundo

Clipping

CG 2015

CO
T.Model.

Clipping

Rotar
Trasladar

Clipping

S.Castro, D.Urribarri

CO

Espacios

Ojo

Escalar
Rotar

Espacio de clipping

S.Castro, D.Urribarri

Objeto

mapea

CM
T.Mundo

Pipeline
3D

COjo
T.Vista

COjo

Iluminacin

T.Perspectiva
CClip
Divisin
Perspectiva
(/w)

Rotar
Trasladar

Modelado

Rotar
Trasladar

Ubicacin
en el Mundo

Pantalla 3D (CND)
T. Viewport

Escalar
Trasladar
Perspectiva

Especificacin
de la cmara

Clipping

Operaciones
Raster

Escalar
Rotar
S.Castro, D.Urribarri

CG 2015

S.Castro, D.Urribarri

CP

CP

CP

Proc.fragmento,
Texturado, Ilum
fragmento,

CP
Rasterizacin

CG 2015

CO

CO
T.Model.

CM
T.Mundo

COjo
T.Vista

Bibliograf
a

Pipeline
3D
COjo

Iluminacin

T.Perspectiva
CClip

Procesamiento Geomtrico (de vrtices)

Divisin
Perspectiva
(/w)
Pantalla 3D (CND)
T. Viewport

CP

CP
Operaciones
Raster

S.Castro, D.Urribarri

CP
Proc.fragmento,
Texturado, Ilum
fragmento,

ACM SIGGRAPH Proceedings


Agoston, M. Computer graphics & geometric modeling / Mathematics,
Springer- Verlag London Ltd., 2005.
Angel, E., Shreiner, D. Interactive Computer Graphics: A top-down
approach with shader-based OpenGL, Addison W esley, 2011, 6th. Ed.
Foley, J., van Dam, A., Feiner, S. y Hughes, J., Computer Graphics.
Principles and Practice, Addison Wesley, 1992, 2nd Edition.
Hearn, D., Baker, M.P., Computer Graphics, C Version, Prentice Hall
Inc., 2003, 3rd Edition.
Hill, F. Jr, Kelley, S., Computer Graphics Using OpenGL, Prentice Hall.,
2006, 3rd Ed.

CP
Rasterizacin

CG 2015

S.Castro, D.Urribarri

CG 2015

S-ar putea să vă placă și