transformações modelagem...
TRANSCRIPT
1
Alberto Raposo – PUC-Rio
INF 1366 – Computação Gráfica Interativa
Revisando...
Alberto B. Raposo
[email protected]://www.tecgraf.puc-rio.br/~abraposo/INF1366/index.htm
Alberto Raposo – PUC-Rio
Estrutura de aplicação gráfica interativa tradicional
Carla Freitas, UFRGS
Alberto Raposo – PUC-Rio
Modelagem Geométrica
• Tipos de estruturação de dados– Wireframe (representação de arestas)– Boundary representation (B-Rep)– Quadtree / Octree
• Malhas de Polígonos– LOD (nível de detalhe)
• Curvas• Geração de 3D a partir de 2D• Outras técnicas
– Metaballs– Subdivision Surfaces– Low-Poly
Alberto Raposo – PUC-Rio
TransformaçõesProjetivas
Perspectiva
Afins
TranslaçãoRotação
EuclidianasLinear
Similaridades
EscalaentoIsotrópico
IdentidadeEscalamento
Shear
Reflexão
Alberto Raposo – PUC-Rio
Escalamento• Escalar uma coordenada significa multiplicar cada
um de seus componentes por um valor escalar• Escalamento isotrópico significa que esse valor
escalar é o mesmo para todos os componentes
× 2
D. Brogan, Univ. of Virginia Alberto Raposo – PUC-Rio
Escalamento
• Operação de escalamento:
• Na forma matricial:
=
by
ax
y
x
'
'
=
y
x
b
a
y
x
0
0
'
'
Matriz de escalamento
D. Brogan, Univ. of Virginia
2
Alberto Raposo – PUC-Rio
Rotação 2D• Na forma matricial:
• Embora sin(θ) e cos(θ) sejam funções não-lineares de θ,– x’ é combinação linear de x e y
– y’ é combinação linear de x e y
( ) ( )( ) ( )
−=
y
x
y
x
θθ
θθ
cossin
sincos
'
'
D. Brogan, Univ. of Virginia
Alberto Raposo – PUC-Rio
Translação 2D
++
≡
+
=
y
x
y
x
ty
tx
t
t
yx
yx
''
y
xx
y
=
y
x
t
tt
M. Gattass, PUC-Rio
Alberto Raposo – PUC-Rio
Coordenadas Homogêneas
• Coloca uma 3a coordenada para cada ponto 3D– (x, y, w) representa um ponto em (x/w, y/w)
– (x, y, 0) representa um ponto no infinito
– (0, 0, 0) não é permitido
Sistema conveniente para
representar muitastransformações úteis em
CG1 2
1
2(2,1,1) or (4,2,2) or (6,3,3)
x
y
D. Brogan, Univ. of Virginia
Alberto Raposo – PUC-Rio
Transformações 2D Básicas
• Representação em matrizes 3x3
ΘΘ
Θ−Θ
=
1100
0cossin
0sincos
1
'
'
y
x
y
x
=
1100
10
01
1
'
'
y
x
t
t
y
x
y
x
=
1100
01
01
1
'
'
y
x
sh
sh
y
x
y
x
Translação
RotaçãoCisalhamento (Shear)
=
1100
00
00
1
'
'
y
x
s
s
y
x
y
x
Escalamento
Alberto Raposo – PUC-Rio
Transformações em 3D
• Mesma idéia que em 2D:– Coordenadas homogêneas: (x,y,z,w)
– Matrizes de trasnformação 4x4
=
wz
yx
ponm
lkji
hgfedcba
wz
yx
''''
Alberto Raposo – PUC-Rio
Transformações 3D Básicas
=
wz
yx
wz
yx
1000010000100001
'''
=
w
z
y
x
t
t
t
w
z
y
x
z
y
x
1000
100
010
001
'
'
'
=
w
z
y
x
s
s
s
w
z
y
x
z
y
x
1000
000
000
000
'
'
'
IdentidadeEscalamento
Translação
D. Brogan, Univ. of Virginia
3
Alberto Raposo – PUC-Rio
Transformações 3D Básicas
ΘΘΘ−Θ
=
wz
yx
wz
yx
1000010000cossin00sincos
'''
Rotação em torno de Z:
ΘΘ−
ΘΘ
=
w
z
y
x
w
z
y
x
1000
0cos0sin
0010
0sin0cos
'
'
'
ΘΘΘ−Θ=
wz
yx
wz
yx
10000cossin00sincos00001
'''
Rotação em torno de Y:
Rotação em torno de X:
Alberto Raposo – PUC-Rio
Visualização e Projeção
viewport
Modelos 3Dcamera setup
John Dingliana, 2004
Alberto Raposo – PUC-Rio
Taxonomia de Projeções
Alberto Raposo – PUC-Rio
Projeção Ortográfica Simples• Projeta todos os pontos ao longo do eixo z
para o plano z = 0
x´
y´
z´
1
=
x
y
z
1
1
0
0
0
0
1
0
0
0
0
0
0
0
0
0
1
MIT EECS 6.837, Durand and Cutler
Alberto Raposo – PUC-Rio
Projeção cônica simples
xe
ye
ze
P
Pp
nz
yz
ny
xz
nx
p
e
e
p
e
e
p
−=
−=
−=
e
eh
eh
eh
zw
znz
yny
xnx
−=
=
=
=
−
=
10100
000
000
000
e
e
e
h
h
h
z
y
x
n
n
n
w
z
y
x
Alberto Raposo – PUC-Rio
Câmera
4
Alberto Raposo – PUC-Rio
Transformações de Visualização
• Cria-se uma visualização centrada na câmera
• Câmera está na origem• Câmera olha para o eixo z no sentido negativo• O ‘up’ é alinhado com o eixo y
D. Brogan, Univ. of Virginia Alberto Raposo – PUC-Rio
Matriz de Transformação de Visualização
Para transformar vértices:
Alberto Raposo – PUC-Rio
Recorte (clipping) • Clip contra uma aresta (plano) de cada vez
�
��
�
Alberto Raposo – PUC-Rio
Remoção de Superfícies Escondidas (Visibilidade)
• Determinar a visibilidade dos polígonos antes de enviá-los para placa gráfica (culling):– Back face culling;
– View frustum culling;
– Occlusion Culling;
– Célula / Portal
Alberto Raposo – PUC-Rio
Rasterizar
•Converter coordenadas da tela em cores de pixels
L. McMillanMIT 6.837 notes (Fall ’98)
Alberto Raposo – PUC-Rio
Scan-line Rasterization
• Requer um “setup”inicial para ser preparado
[P. Shirley, pag 55]
Cluter & Durand, MIT
5
Alberto Raposo – PUC-Rio
Active Edge Table (AET)
Slater, Steed & Chrysanthou, 2002
Alberto Raposo – PUC-Rio
Iluminação
• Iluminação direta (local)– Emissão nas fontes de luz
– Dispersão nas superfícies
• Iluminação global– Sombras
– Refrações
– Reflexões Inter-objetos
Iluminação direta
D. BroganUniv. of Virginia
Alberto Raposo – PUC-Rio
Modelo de Iluminação
• Modelo analítico simples: – reflexão difusa +
– reflexão especular +
– emissão +
– “ambiente”
Superfície
D. BroganUniv. of Virginia
Alberto Raposo – PUC-Rio
Equação de Iluminação
• Para uma fonte de luz:
L
n
SLDALAE IRVKILNKIKII )()( •+•++=
N
LR
V
observador
αθθ
D. BroganUniv. of Virginia
Alberto Raposo – PUC-Rio
Luz ambiente
•Para cada comprimento de onda amostrado(R, G, B), a luz ambiente refletida em umasuperfície depende de– Propriedades da superfície, kambient
– Intensidade, Iambient, da fonte de luz ambiente(constante para todos os pontos em todas as superfícies)
•Ireflected = kambient IambientD. BroganUniv. of Virginia
Alberto Raposo – PUC-Rio
Reflexão Difusa
•θ é o ângulo de incidência:
•Idiffuse = kd Ilight cos θ
•Na prática, usa-se aritmética de vetores
•Idiffuse = kd Ilight (n • l)
nl
θ
D. BroganUniv. of Virginia
6
Alberto Raposo – PUC-Rio
Reflectância especular não-ideal: Aproximação Empírica
•Ilustração da distribuição da reflexão:
D. BroganUniv. of Virginia Alberto Raposo – PUC-Rio
Modelo de Iluminação de Phong
•O termo do cos pode ser calculado via aritmética de vetores:
– v é o vetor unitário em direção ao observador
– r é a direção de reflexão ideal
( ) shinynlightsspecular rvIkI ⋅=
v
D. BroganUniv. of Virginia
Alberto Raposo – PUC-Rio
Shading (tonalização)
• Flat Shading– Calcula a iluminação de Phong uma única vez para
cada polígono
• Gouraud Shading– Calcula a iluminação de Phong para os vértices e
interpola os valores obtidos ao longo do polígono
• Phong Shading– Interpola as normais ao longo do polígono e calcula a
iluminação de Phong ao longo de todo o polígono
Alberto Raposo – PUC-Rio
Suavização da tonalização
c1 c4
c2
c3
c12 c43c
N1 N4
N2
N3
N12 N43
c
GouraudPhong
N
M. Gattass, PUC-Rio
Alberto Raposo – PUC-Rio
Shading
Alberto Raposo – PUC-Rio
Shading
Flat Gouraud
7
Alberto Raposo – PUC-Rio
Shading
Gouraud Phong
Alberto Raposo – PUC-Rio
Pipeline GráficoModeling
Transformations
Illumination(Shading)
Viewing Transformation(Perspective / Orthographic)
Clipping
Projection (to Screen Space)
Scan Conversion(Rasterization)
Visibility / Display
Cluter & Durand, MIT
Alberto Raposo – PUC-Rio
Transformações de Modelagem
• Modelos 3D definidos em seupróprio sistema de coordenadas(object space)
• Transformações de modelagemorientam os modelos de acordocom um sistema de coordenadascomum (world space)
Modeling Transformations
Illumination(Shading)
Viewing Transformation(Perspective / Orthographic)
Clipping
Projection (to Screen Space)
Scan Conversion(Rasterization)
Visibility / Display Object space World space
Cluter & Durand, MIT
√√√√
Alberto Raposo – PUC-Rio
Iluminação (Shading) (Lighting)
• Vértices “acessos” (shaded) de acordo com as propriedades do material, da superfície (normal) e das fontes de luz
Modeling Transformations
Illumination(Shading)
Viewing Transformation(Perspective / Orthographic)
Clipping
Projection (to Screen Space)
Scan Conversion(Rasterization)
Visibility / Display
Cluter & Durand, MIT
√√√√
√√√√
Alberto Raposo – PUC-Rio
Transformação de VisualizaçãoModeling
Transformations
Illumination(Shading)
Viewing Transformation(Perspective / Orthographic)
Clipping
Projection (to Screen Space)
Scan Conversion(Rasterization)
Visibility / Display
Eye space
World space
• Mapeia o world space para o eye space
• Posição do observador écolocada na origem e a direçãode foco é orientada ao longo de um dos eixos (normalmente z)
Cluter & Durand, MIT
√√√√
√√√√
√√√√
Alberto Raposo – PUC-Rio
Clipping (Recorte)
• Transforma para Normalized Device Coordinates (NDC)
• Partes do objetofora do volume de visualização(view frustum) são removidas
Modeling Transformations
Illumination(Shading)
Viewing Transformation(Perspective / Orthographic)
Clipping
Projection (to Screen Space)
Scan Conversion(Rasterization)
Visibility / Display
Eye space NDC
Cluter & Durand, MIT
√√√√
√√√√
√√√√
√√√√
8
Alberto Raposo – PUC-Rio
Projeções• Objetos são projetados para o espaço
2D da imagem (screen space)
Modeling Transformations
Illumination(Shading)
Viewing Transformation(Perspective / Orthographic)
Clipping
Projection (to Screen Space)
Scan Conversion(Rasterization)
Visibility / Display
NDC Screen Space
Cluter & Durand, MIT
√√√√
√√√√
√√√√
√√√√
√√√√
Alberto Raposo – PUC-Rio
Rasterização• Rasteriza objetos em pixels
• Interpola valores (cores, profundidade, etc.)
Modeling Transformations
Illumination(Shading)
Viewing Transformation(Perspective / Orthographic)
Clipping
Projection (to Screen Space)
Scan Conversion(Rasterization)
Visibility / Display
Cluter & Durand, MIT
√√√√
√√√√
√√√√
√√√√
√√√√
√√√√
Alberto Raposo – PUC-Rio
Visibilidade / Display
• Cada pixel lembra o objetomais próximo (depth buffer)
• Quase todas as etapas do pipeline gráfico envolvemudança de sistema de coordenadas. �Transformações são
fundamentais em computaçãográfica!
Modeling Transformations
Illumination(Shading)
Viewing Transformation(Perspective / Orthographic)
Clipping
Projection (to Screen Space)
Scan Conversion(Rasterization)
Visibility / Display
Cluter & Durand, MIT
√√√√
√√√√
√√√√
√√√√
√√√√
√√√√
√√√√
Alberto Raposo – PUC-Rio
Luz e Cor
Marcelo Gattass, PUC-Rio
Alberto Raposo – PUC-Rio
Luz
Onda eletro-magnética
λ (m)
VISÍVEL
f (Hertz)
102 104 106 108 1010 1012 1014 1016 1018 1020
rádioAM FM,TVMicro-Ondas
Infra-VermelhoUltra-Violeta
RaiosX
106 104 102 10 10-2 10-4 10-6 10-8 10-10 10-12
vermelho (4.3 ×1014 Hz), laranja, amarelo,..., verde, azul, violeta (7.5×1014 Hz)
Alberto Raposo – PUC-Rio
Luz branca
luz
branca
prisma
vermelhoalaranjadoamareloverdeazulvioleta
luz branca (acromática) tem todos os comprimentos de onda
luz branca (acromática) tem todos os comprimentos de onda
Newton
Cor λλλλVioleta 380-440 nm
Azul 440-490 nmVerde 490-565 nmAmarelo 565-590 nm
Laranja 590-630 nmVermelho 630-780 nm
Cor λλλλVioleta 380-440 nm
Azul 440-490 nmVerde 490-565 nmAmarelo 565-590 nm
Laranja 590-630 nmVermelho 630-780 nm
1 nm = 10-9 m
9
Alberto Raposo – PUC-Rio
Fontes luminosas
fonte luminosa branca
100
0
50
λλλλ((((nm))))
E
luz branca
luz colorida
400 500 600 700
Alberto Raposo – PUC-Rio
Características das fontes luminosas
400 500 600 700λλλλ
((((nm))))
E
brilho (brightness)
intensidadedefine o
brilho(brightness)
400 500 600 700λλλλ
((((nm))))
E
saturação
a concentração no comprimento de onda dominante
define asaturação ou pureza
cores pastéissão menossaturadas oumenos puras
λλλλ((((nm))))
E
matiz (hue)
comprimento de onda dominante
define amatiz (hue)
400 500 600 700
Alberto Raposo – PUC-Rio
Processos aditivos de formação de cores
Ea+b(λλλλ) = Ea (λλλλ)+Eb(λλλλ)Ea+b(λλλλ) = Ea (λλλλ)+Eb(λλλλ)
λ
λ
Ea
λ
Eb
a
b
a+b
Ea+b
O olho não vê
componentes!
Alberto Raposo – PUC-Rio
Processos subtrativos de formação de cores
filtros
Luz branca
Filtroverde
Luz verde
λλλλ λλλλ λλλλ
EiEft
Ef(λλλλ) = t(λλλλ) . Ei (λλλλ)Ef(λλλλ) = t(λλλλ) . Ei (λλλλ)
transparência
Alberto Raposo – PUC-Rio
O olho humano
retina bastonetes
cones vermelhoverdeazul
Alberto Raposo – PUC-Rio
Espaço de cor do olho humano
Olho humano: Cones (RGB) e Bastonetes (cegos para cor)
.02
0
.04
.06
.08
.10
.12
.14
.16
.18
.20
400 440 480 520 560 600 640 680 λλλλ
fra
ção
de
luz
ab
sorv
ida
po
rca
da
con
e
comprimento de onda (nm)
B(λλλλ))))
G(λλλλ))))
R(λλλλ))))
10
Alberto Raposo – PUC-Rio
Fração da luzabsorvida pelo olho
0
50
100
sen
sib
ilid
ad
e
rela
tiv
a
luminosidade
λλλλ((((nm))))
400 500 600 700
Alberto Raposo – PUC-Rio
Tons de cinza igualmente espaçadosBranco
Inte
nsid
ade
Preto
Posição
Branco
Preto
Inte
nsid
ade
Posição
Alberto Raposo – PUC-Rio
Banda de Mach
Posição
Branco
Preto
Inte
nsid
ade
Efeito da Banda deMach
Alberto Raposo – PUC-Rio
Contraste Simultâneo
Alberto Raposo – PUC-Rio
Contraste
Alberto Raposo – PUC-Rio
Contraste
11
Alberto Raposo – PUC-Rio Alberto Raposo – PUC-Rio
Alberto Raposo – PUC-Rio
Conclusões do cérebro
Alberto Raposo – PUC-Rio
O problema de reprodução de cor em CG
Mundo Real
Espaço Virtual
E
λλλλ400 700
E
λλλλ
B
G
R
• mesma sensação de cor ⇒⇒⇒⇒ Metamerismo
• só distingue 400 mil cores (< 219) ⇒⇒⇒⇒ 19 bits deveriam ser suficientes
• mesma sensação de cor ⇒⇒⇒⇒ Metamerismo
• só distingue 400 mil cores (< 219) ⇒⇒⇒⇒ 19 bits deveriam ser suficientes
Alberto Raposo – PUC-Rio
Cores visíveis representadas no sistema CIE xyY
Alberto Raposo – PUC-Rio
520
480
490
500
510
540
560
Purpura
580
600
700
400
Azul
Cian
Verde
Amarelo
Vermelho
x
y
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
Branco
0.1
0.2
0.3
0.4
0.6
0.5
0.7
0.8
0.9
1.0
Cores visíveis representadas no sistema CIE xyY
12
Alberto Raposo – PUC-Riox
y
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0
0.1
0.2
0.3
0.4
0.6
0.5
0.7
0.8
0.9
1.0
gamute de um monitor
gamute de uma impressora
C1
C2
W
C2 cor não realizável
C1 cor não realizável na impressora
Gamute de cromaticidade de dispositivos
Alberto Raposo – PUC-Rio
Alberto Raposo – PUC-Rio
Monitores
I ) Sistemas dos Monitores - mRGB
processo aditivo
pixel
Alberto Raposo – PUC-Rio
Sistemas de cordependentes de dispositivo - mRGB
I ) Sistemas dos Monitores - mRGB
B
normalmentetemos 1 byte
para cadacomponentemapeando[0, 255] em [0,1]
normalmentetemos 1 byte
para cadacomponentemapeando[0, 255] em [0,1]
processo aditivo
R
G
B
1.0
1.0
1.0
Y
M
CW
K vermelho
azul
preto
verde
amarelo
ciano
magenta
branco
Alberto Raposo – PUC-Rio
Sistemas de cordependentes de dispositivo - mRGB
I ) Sistemas dos Monitores - mRGB
Alberto Raposo – PUC-Rio
Sistemas de cor dependentes de dispositivo - CMY
II ) Sistemas das Impressoras -CMY ou CMYK
processopredominantementesubtrativo
C
Y
M
R G
B
K
luzbranca
(1,1,1)
tinta ciano (0,1,1)
luz ciano (0,1,1)
componente vermelha é absorvidapapel branco (1,1,1)
normal
θθθθ
13
Alberto Raposo – PUC-Rio
Sistemas de cor dependentes de dispositivo - CMY
II ) Sistemas das Impressoras -CMY ou CMYK
Alberto Raposo – PUC-Rio
Conversão RGB para CMY e vice-versa
B
R
G
1.0
1.0
1.0
Y
M
CW
K vermelho
azul
preto
verde
amarelo
ciano
magenta
branco
1.0
1.0
1.0
Y
M
C
W
K
preto
amarelo
ciano
magenta
branco
verde
vermelho
azul
(r,g,b) (c,m,y)
(c,m,y) = (1-r, 1-g, 1-b)(c,m,y) = (1-r, 1-g, 1-b)