Você está na página 1de 13

Introducci on Transformaciones b asicas Concatenaci on de Transformaciones Matriz de Transformaci on de la Normal Giro alrededor de un Eje arbitrario Transformaciones en OpenGL

Tema 3: Transformaciones Geom etricas


J. Ribelles

SIE020: S ntesis de Imagen y Animaci on Institute of New Imaging Technologies, Universitat Jaume I
J.Ribelles Tema 3: Transformaciones Geom etricas

Introducci on Transformaciones b asicas Concatenaci on de Transformaciones Matriz de Transformaci on de la Normal Giro alrededor de un Eje arbitrario Transformaciones en OpenGL

Contenido
1 2

Introducci on Transformaciones b asicas Traslaci on Escalado Rotaci on Concatenaci on de Transformaciones Matriz de Transformaci on de la Normal Giro alrededor de un Eje arbitrario Transformaciones en OpenGL

3 4 5 6

J.Ribelles

Tema 3: Transformaciones Geom etricas

Introducci on Transformaciones b asicas Concatenaci on de Transformaciones Matriz de Transformaci on de la Normal Giro alrededor de un Eje arbitrario Transformaciones en OpenGL

Introducci on
Por qu e las necesitamos? En la etapa de modelado los objetos se denen bajo un sistema de coordenadas propio. A la hora de crear una escena, estos objetos se incorporan bajo un nuevo sistema de coordenadas conocido como sistema de coordenadas del mundo. Este cambio de sistema de coordenadas es necesario y se realiza mediante transformaciones geom etricas.

J.Ribelles

Tema 3: Transformaciones Geom etricas

Introducci on Transformaciones b asicas Concatenaci on de Transformaciones Matriz de Transformaci on de la Normal Giro alrededor de un Eje arbitrario Transformaciones en OpenGL

Traslaci on Escalado Rotaci on

Transformaciones b asicas
Traslaci on Consiste en desplazar el punto p = (px , py , pz ) mediante un vector t = (tx , ty , tz ) de manera que el nuevo punto q = (qx , qy , qz ): qx = px + tx , qy = py + ty , qz = pz + tz homog eneas: 0 tx 0 ty 0 tz 0 1 (1)

La representaci on matricial con coordenadas 0 0 0 0 T (t ) = T (tx , ty , tz ) = 0 0 0 0

(2)

Utilizando esta representaci on, el nuevo punto se obtiene as : q = T (t ) p


J.Ribelles Tema 3: Transformaciones Geom etricas

(3)

Introducci on Transformaciones b asicas Concatenaci on de Transformaciones Matriz de Transformaci on de la Normal Giro alrededor de un Eje arbitrario Transformaciones en OpenGL

Traslaci on Escalado Rotaci on

Escalado Consiste en multiplicar el punto p = (px , py , pz ) con los factores de escala sx , sy y sz de tal manera que el nuevo punto q = (qx , qy , qz ): qx = px sx , qy = py sy , qz = pz sz (4)

La representaci on matricial con coordenadas homog eneas: sx 0 0 0 0 sy 0 0 S ( s ) = S ( sx , sy , sz ) = 0 0 sz 0 0 0 0 1 Utilizando esta representaci on, el nuevo punto se obtiene as : q = S (s ) p

(5)

(6)

J.Ribelles

Tema 3: Transformaciones Geom etricas

Introducci on Transformaciones b asicas Concatenaci on de Transformaciones Matriz de Transformaci on de la Normal Giro alrededor de un Eje arbitrario Transformaciones en OpenGL

Traslaci on Escalado Rotaci on

Rotaci on Gira un punto un angulo alrededor de un eje. La representaci on matricial con coordenadas homog eneas:
1 B0 Rx () = @ 0 0 0 0 0 cos sin 0 0 1 0 0 0 sin cos 0 sin 0 cos 0 0 0 1 0 1 0 0C 0A 1 1 0 0C 0A 1 1 0 0C 0A 1 (7)

cos B 0 Ry () = @ sin 0 0 cos B sin Rz () = @ 0 0

(8)

sin cos 0 0

(9)

Utilizando esta representaci on, el nuevo punto se obtiene as :


q = R () p (10)

J.Ribelles

Tema 3: Transformaciones Geom etricas

Introducci on Transformaciones b asicas Concatenaci on de Transformaciones Matriz de Transformaci on de la Normal Giro alrededor de un Eje arbitrario Transformaciones en OpenGL

Traslaci on Escalado Rotaci on

Ejercicio Determina las transformaciones que situan al cono que se muestra en la gura (a) (radio de la base y altura uno) en la posici on que se muestra en la gura (b) (radio de la base uno y altura tres).

(a)

(b)

J.Ribelles

Tema 3: Transformaciones Geom etricas

Introducci on Transformaciones b asicas Concatenaci on de Transformaciones Matriz de Transformaci on de la Normal Giro alrededor de un Eje arbitrario Transformaciones en OpenGL

Concatenaci on de Transformaciones
Descripci on Las transformaciones geom etricas en su forma matricial con coordenadas homog eneas se pueden concatenar. Una sola matriz puede representar a toda una secuencia de matrices de transformaci on. Es muy importante operar la secuencia de transformaciones en el orden correcto ya que el producto de matrices no posee la propiedad conmutativa.
Dibuja en el papel como quedar a una esfera de radio unidad centrada en el origen dadas las dos siguientes matrices de transformaci on T (5, 0, 0) y S (5, 5, 5) si las matrices se multiplican de las dos formas posibles, es decir, M = T S y M = S T .

J.Ribelles

Tema 3: Transformaciones Geom etricas

Introducci on Transformaciones b asicas Concatenaci on de Transformaciones Matriz de Transformaci on de la Normal Giro alrededor de un Eje arbitrario Transformaciones en OpenGL

Matriz de Transformaci on de la Normal


Descripci on La matriz de transformaci on no siempre es v alida para los vectores normales a la supercie. Lo habitual es que la matriz de transformaci on de la normal N sea la traspuesta de la inversa de la matriz de transformaci on.
Sin embargo, la matriz inversa no siempre existe por lo que se recomienda que la matriz N sea la traspuesta de la matriz adjunta. Como la normal es un vector y la traslaci on no le afecta, y el escalado y la rotaci on son transformaciones anes, solo hay que calcular la adjunta de los 3x3 componentes superior izquierda.

Las longitudes de las normales no se preservan si hay una transformaci on de escalado, por lo que es necesario normalizarlas.

J.Ribelles

Tema 3: Transformaciones Geom etricas

Introducci on Transformaciones b asicas Concatenaci on de Transformaciones Matriz de Transformaci on de la Normal Giro alrededor de un Eje arbitrario Transformaciones en OpenGL

Giro alrededor de un Eje arbitrario


Descripci on Sean d y el vector unitario del eje de giro y el angulo de giro. Hay que calcular una base ortogonal que contenga a d . La idea es hacer un cambio de base entre la base que forman los ejes de coordenadas y la nueva base.
Y R f Z e X d Z f Y

e d

J.Ribelles

Tema 3: Transformaciones Geom etricas

Introducci on Transformaciones b asicas Concatenaci on de Transformaciones Matriz de Transformaci on de la Normal Giro alrededor de un Eje arbitrario Transformaciones en OpenGL

C alculo de la matriz R La matriz que representa al cambio de dx dy R = ex ey fx fy e es un vector unitario normal a d .

base es esta: dz ez fz

(11)

f es el producto vectorial de los otros dos vectores f = d e El vector e se puede obtener de la siguiente manera:
Partiendo del vector d haz cero su componente de menor magnitud. Intercambia los otros dos componentes y niega uno de ellos. Normal zalo.

Teniendo en cuenta que R es ortogonal, la matriz de rotaci on nal: Rd () = R T Rx ()R


J.Ribelles Tema 3: Transformaciones Geom etricas

(12)

Introducci on Transformaciones b asicas Concatenaci on de Transformaciones Matriz de Transformaci on de la Normal Giro alrededor de un Eje arbitrario Transformaciones en OpenGL

Transformaciones en OpenGL
La librer a GLM Proporciona funciones tanto para la construcci on de las matrices de transformaci on como para operar con ellas: mat4 translate (oat tx , oat ty , oat tz ) mat4 scale (oat sx , oat sy , oat sz ) mat4 rotate (oat , oat x , oat y , oat z )

// Para o b t e n e r l a m a t r i z de t r a n s f o r m a c i o n d e l modelo mat4 T , S , M; T = t r a n s l a t e (10.0 f , 0.0 f , 0.0 f ) ; S = scale (2.0 f , 2.0 f , 2.0 f ) ; M = TS ; // Para o b t e n e r l a m a t r i z n o r m a l N mat3 N ( mat3 ( t r a n s p o s e ( i n v e r s e (M) ) ) ) ;

J.Ribelles

Tema 3: Transformaciones Geom etricas

Introducci on Transformaciones b asicas Concatenaci on de Transformaciones Matriz de Transformaci on de la Normal Giro alrededor de un Eje arbitrario Transformaciones en OpenGL

D onde calcular las matrices? La construcci on de ambas matrices, la matriz de transformaci on del modelo y la matriz de transformaci on de la normal, es conveniente que tenga lugar en la aplicaci on y que ambas se suministren al procesador de v ertices. Listado 1: Shader para transformar la posici on y la normal de cada v ertice
u n i f o r m mat4 M; // m a t r i z de t r a n s f o r m a c i o n d e l modelo u n i f o r m mat3 N ; // m a t r i z de t r a n s f o r m a c i o n de l a n o r m a l in v ec 3 p o s i c i o n , vNormal ; ou t v e c3 n o r m a l ; v o i d main ( ) { n o r m a l = n o r m a l i z e (N vNormal ) ; g l P o s i t i o n = M vec4 ( p o s i c i o n , 1 . 0 ) ; }

J.Ribelles

Tema 3: Transformaciones Geom etricas

Você também pode gostar