Professional Documents
Culture Documents
2 - Recorte
3 - Projeo
4 - Mapeamento Window/Viewport
Transformaes Modelagem Iluminao (Shading) Transformao Cmera Recorte Projeo Rasterizao Visibilidade
Adaptao e melhoramentos de uma aula sobre o mesmo assunto (MIT - EECS 6.837 Durand and Cutler)
Resumo
Transformaes Modelagem Iluminao (Shading) Transformao Cmera Recorte Projeo Rasterizao Visibilidade
Objetos definidos no seu prprio sistema de coordenadas Transformaes de modelagem orientam os modelos geomtricos num sistema comum de coordenadas (UNIVERSO)
Resumo
Coordenadas Objeto
Coordenadas Universo
Transformaes Modelagem Iluminao (Shading) Transformao Cmera Recorte Projeo Rasterizao Visibilidade
Resumo
Vrtices iluminados de acordo com as propriedades geomtricas e de material Modelo de Iluminao Local (Flat, Gouraud)
Transformaes Modelagem Iluminao (Shading) Transformao Cmera Recorte Projeo Rasterizao Visibilidade
Resumo
Mapeamento de coordenadas de Universo para cmera Escolha da projeo: perspectiva ou ortogrfica
Transformaes Modelagem Iluminao (Shading) Transformao Cmera Recorte Projeo Rasterizao Visibilidade
Resumo
Transformao para Coordenadas Normalizadas Eliminao de objetos inteiros e partes de objeto que esto fora do Frustum
cmera
Resumo
Coordenadas de Tela
Transformaes Modelagem Iluminao (Shading) Transformao Cmera Recorte Projeo Rasterizao Visibilidade
Resumo
Rasterizao das linhas em pixels e possvel preenchimento Interpolao dos valores (profundidade, normal, cor) dos vrtices conforme necessidade
Transformaes Modelagem Iluminao (Shading) Transformao Cmera Recorte Projeo Rasterizao Visibilidade
Resumo
Z-buffer: cada pixel armazena a coordenada z mais prxima
Espao de Objeto Transformaes Modelagem Iluminao (Shading) Transformao Cmera Espao da cmera Recorte Projeo Espao de recorte Rasterizao Visibilidade
Espao de Universo
Espao de tela
Sistemas de Coordenadas
Objeto
Local a cada objeto
Universo
Comum a todos os objetos
Cmera
Derivado a partir da especicao do Frustum de visibilidade
Clip space/NDC
[-1,-1,-1] [1,1,1]
15
Tela
(0,0) [largura, altura]
O que so Transformaes?
Mapeiam pontos (x,y,z) em um sistema de coordenadas para pontos (x,y,z) em outro sistema de coordenadas So utilizadas em CG para:
Posicionar objetos na cena Mudar forma dos objetos Criar mltiplas cpias dos objetos Animaes Projeo para cmera virtual
16
Classes de Transformaes
Corpos rgidos
Preservam distncia e ngulos
Corpos Rgidos
Translao
Rotao
17
Classes de Transformaes
Similares
Preservam ngulos
Similares Corpos Rgidos Translao Rotao Escala uniforme
18
Transformaes Lineares
Reflexo Lineares
Deslizamento (shear)
19
Transformaes Am
Afim
Similares Corpos Rgidos Escala Translao Rotao Escala uniforme Reflexo Deslizamento Lineares
20
10
Representando Transformaes
Genericamente em 2D
21
Transformaes 2D - Translao
x'= x + t x y'= y + t y
" x'% " 1 0%" x % " t x % $ '=$ '$ ' + $ ' # y'& # 0 1&# y & # t y &
!
22
11
Transformaes 2D - Escala
Coordenadas so multiplicados pelos fatores de escala Tipos de Escala
Uniforme:
sx = sy
No-Uniforme
sx <> sy
!
!
Transformaes 2D - Rotao
Como chegar matriz de rotao?
x = r. cos " x' = r. cos(" + ! ) y = r. sin " y ' = r. sin(" + ! )
x' = r. cos " . cos ! # r. sin " . sin ! y ' = r. cos " . sin ! + r. cos " . sin ! x' = x. cos ! # y. sin ! y ' = x. sin ! + y. cos !
sin(" + ! ) = cos " . sin ! + sin " . cos ! cos(" + ! ) = cos " . cos ! # sin " . sin !
" x'% " cos ( )sin ( %" x % "0% $ '=$ '$ ' + $ ' # y'& # sin ( cos ( &# y & #0&
24
!
12
Transformaes 2D Reexo
Ao longo do eixo X
" x'% " 1 0 %" x % " 0% " x % $ '=$ '$ ' + $ ' = $ ' # y'& # 0 (1&# y & # 0& # (y &
Ao longo do eixo Y " x'% " (1 0%" x % " 0% " (x % $ '=$ '$ ' + $ ' = $ ' # y'& # 0 1&# y & # 0& # y &
" % " %" % " % " % XY $ x'' = $ (1 0 '$ x ' + $0' = $(x ' # y'& # 0 (1&# y & #0& #(y &
! !
25
Transformaes 2D Deslizamento
Deslizamento na direo x
" x'% " 1 Shx %" x % " 0% " x + y ( Shx % $ '=$ '$ ' + $ ' = $ ' y # y'& # 0 1 &# y & # 0& # &
Deslizamento na direo y
!
% 0%" x % " 0% " x +$ '=$ '$ ' ' 1&# y & # 0& # Shx ( x + y &
26
!
13
Resumo Transformaes 2D
Notao matricial simplica escrita
Translao expressa como uma soma de vetores Escala e Rotao expressas como multiplicao
Coordenadas Homogneas
Adiciona uma outra dimenso w 2D -> 3D
(x,y) -> (x,y,w)
3D -> 4D
(x,y,z) -> (x,y,z,w)
w = 0, pontos no innito
til em projees;
14
Qual a vantagem?
" x ! % "1 $ y ! ' = $0 $ ' $ $ ' $ #w !& #0 0 t x %" x % 1 t y '$ y ' '$ ' '$ ' 0 1 & # w&
x " x !! = w + t x w # y! y $ w! = w + t y
" x ! = x + wt x $ # y ! = y + wt y $w ! = w %
29
" x !! = sx w # y! $ w! = sy
" x ! = sx x $ # y ! = sy y $w ! = w %
x w y w
30
15
y w y w
" x ! = cos &x ' sin & y $ # y ! = sin &x + cos & y $w ! = % w
31
Composio de Transformaes
Escala seguida de Translao
32
16
Composio de Transformaes
Translao seguida de Escala
33
Composio de Transformaes
Multiplicao de Matrizes no comutativa Ordem das operaes inuencia diretamente
Rotao seguida de translao diferente de translao seguida de rotao
http://www.cs.princeton.edu/~min/cs426/jar/transform.html
34
17
Translao/Escala 3D
Translao glTranslatef(tx, ty, tz)
"1 $ $0 $0 $ #0 0 0 tx % ' 1 0 ty ' 0 1 tz ' ' 0 0 1&
35
Rotao 3D
Rotao
$cos " #sin " & sin " cos " (" ) : & Rz & 0 0 & 0 % 0 0 0 1 0 0' ) 0) 0) ) 1(
0 sin ( 1 0 0 cos( 0 0
0# 0! ! 0! ! 1"
0# 0! ! 0! ! 1"
36
18
onde c = cos
s = sin
glRotatef(angle,x,y,z)
37
19