You are on page 1of 19

O Pipeline de Renderizao

Processamento Grco Marcelo Walter - UFPE

The Graphics Pipeline


Processo de sintetizar imagens bidimensionais a partir de cmeras e objetos virtuais Viso em alto nvel inicial para aprofundarmos nas prximas aulas Quais as etapas que constituem este processo??
2

The Graphics Pipeline


Trs estgios conceituais O desempenho determinado pelo estgio mais lento Sistemas grcos modernos: software: hardware:

Application Geometry Rasterizer Image


3

The Graphics Pipeline

1 - Instanciamento Translao, Rotao, Escala


Coordenadas UNIVERSO (3D float) Coordenadas de OBJETO (3D float)

2 - Recorte

3 - Projeo

coordenadas CMERA (3D) Aps projeo: 2D normalizadas

coordenadasTELA (2D integer)

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

Normalized Device Coordinates

Transformaes Modelagem Iluminao (Shading) Transformao Cmera Recorte


NDC

Resumo

Coordenadas de Tela

Projeo Rasterizao Visibilidade

Os vrtices so projetados para 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

Escala Similares Corpos Rgidos

Reflexo Lineares

Deslizamento (shear)

Escala Translao Rotao Escala uniforme Reflexo Deslizamento

L(p+q) = L(p) + L(q) L(ap) = aL(p)

19

Transformaes Am

Afim
Similares Corpos Rgidos Escala Translao Rotao Escala uniforme Reflexo Deslizamento Lineares

Preservam linhas paralelas

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

x'= x " sx y'= y " sy


" x'% " sx $ '=$ # y'& # 0 0 %" x % "0% '$ ' + $ ' sy &# y & #0&
23

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
!

" x'% " 1 $ '=$ # y'& # Shy

% 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

Porm, interessante uma notao uniforme e consistente


Permitir que se expresse as trs operaes de maneira idntica Permitir que se expresse a combinao destas trs operaes tambm de maneira idntica

Como fazer isso?


27

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;

Homogeneizar: dividir por w Em CG SEMPRE se usa w=1!


28

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 %

Translao agora tambm pode ser representada por multiplicao de matrizes!!

29

Escala Coord. Homogneas


" x ! % "sx $ y! ' = $ 0 $ ' $ $w !' $ 0 # & # 0 sy 0 0% " x % 0' $ y ' '$ ' 1' $w ' &# &

" x !! = sx w # y! $ w! = sy
" x ! = sx x $ # y ! = sy y $w ! = w %

x w y w

30

15

Rotao Coord. Homogneas


" x ! % "cos ( $ y ! ' = $ sin ( $ ' $ $w !' $ 0 # & # ) sin ( cos ( 0 0% " x % 0' $ y ' '$ ' 1' $w ' &# &

x $ x !! = cos " w # sin " w % y! x & w! = sin " w + cos "

y w y w

" x ! = cos &x ' sin & y $ # y ! = sin &x + cos & y $w ! = % w

31

Composio de Transformaes
Escala seguida de Translao

p'= T(Sp) = TSp

32

16

Composio de Transformaes
Translao seguida de Escala

p'= S(Tp) = STp

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&

T(tx, ty, tz):

Escala glScalef(Sx, Sy, Sz)


"Sx 0 ! S(Sx, Sy, Sz): $ 0 S y $ $0 $ #0 0 0 0 0 Sz 0 0% ' 0' 0' ' 1&

35

Rotao 3D
Rotao
$cos " #sin " & sin " cos " (" ) : & Rz & 0 0 & 0 % 0 0 0 1 0 0' ) 0) 0) ) 1(

& cos( $ 0 (( ) : $ Ry $' sin ( $ % 0

0 sin ( 1 0 0 cos( 0 0

0# 0! ! 0! ! 1"

0 &1 $0 cos( Rx (( ) : $0 sin ( $ $ 0 %0

0 ' sin ( cos( 0

0# 0! ! 0! ! 1"
36

18

Rotao - Eixo genrico


Frmula de Rodrigues

onde c = cos

s = sin

glRotatef(angle,x,y,z)
37

19

You might also like