Alberto Raposo – PUC-Rio
INF 1366 – Computação Gráfica Interativa
Revisando...
Alberto B. [email protected]
http://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:
byax
yx''
yx
ba
yx
00
''
Matriz de escalamento
D. Brogan, Univ. of Virginia
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
yx
yx
cossinsincos
''
D. Brogan, Univ. of Virginia
Alberto Raposo – PUC-Rio
Translação 2D
y
x
y
xtytx
tt
yx
yx
''
y
xx
y
y
x
tt
t
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 muitas transformações úteis em CG
1 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
11000cossin0sincos
1''
yx
yx
11001001
1''
yx
tt
yx
y
x
11000101
1''
yx
shsh
yx
y
x
Translação
Rotação Cisalhamento (Shear)
11000000
1''
yx
ss
yx
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
wzyx
ponmlkjihgfedcba
wzyx
''''
Alberto Raposo – PUC-Rio
Transformações 3D Básicas
wzyx
wzyx
1000010000100001
'''
wzyx
ttt
wzyx
z
y
x
1000100010001
'''
wzyx
ss
s
wzyx
z
y
x
1000000000000
'''
IdentidadeEscalamento
TranslaçãoD. Brogan, Univ. of Virginia
Alberto Raposo – PUC-Rio
Transformações 3D Básicas
wzyx
wzyx
1000010000cossin00sincos
'''
Rotação em torno de Z:
wzyx
wzyx
10000cos0sin00100sin0cos
'''
wzyx
wzyx
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
=
xyz1
1000
0100
0000
0001
MIT EECS 6.837, Durand and Cutler
Alberto Raposo – PUC-Rio
Projeção cônica simples
xe
ye
ze
P
Pp
nz
yzny
xznx
p
ee
p
ee
p
e
eh
eh
eh
zwznzynyxnx
10100000000000
e
e
e
h
h
h
zyx
nn
n
wzyx
Alberto Raposo – PUC-Rio
Câmera
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
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:
Ln
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 uma superfí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
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
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 seu
próprio sistema de coordenadas (object space)
• Transformações de modelagem orientam os modelos de acordo com um sistema de coordenadas comum (world space)
Modeling Transformations
Illumination(Shading)
Viewing Transformation(Perspective / Orthographic)
Clipping
Projection (to Screen Space)
Scan Conversion(Rasterization)
Visibility / Display Object space World spaceCluter & 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ção de 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 objeto fora 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
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 objeto mais
próximo (depth buffer)
• Quase todas as etapas do pipeline gráfico envolve mudança de sistema de coordenadas. Transformações são fundamentais
em computação grá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.51014
Hz)
Alberto Raposo – PUC-Rio
Luz branca
luzbranca
prisma
vermelhoalaranjadoamareloverdeazulvioleta
luz branca (acromática) tem todos os comprimentos de onda
Newton
Cor Violeta 380-440 nmAzul 440-490 nmVerde 490-565 nmAmarelo 565-590 nmLaranja 590-630 nmVermelho 630-780 nm
1 nm = 10-9 m
Alberto Raposo – PUC-Rio
Fontes luminosas
fonte luminosa branca
100
0
50
nm
Eluz 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 menos saturadas oumenos puras
nm
E
matiz (hue)
comprimento de onda dominante
define a matiz (hue)
400 500 600 700
Alberto Raposo – PUC-Rio
Processos aditivos de formação de cores
Ea+b() = Ea ()+Eb()
Ea
Eb
a
ba+b
Ea+b
O olho não vê componentes!
Alberto Raposo – PUC-Rio
Processos subtrativos de formação de cores
filtros
Luz branca
Filtro verde
Luz verde
Ei Eft
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)
.020
.04
.06
.08
.10
.12
.14
.16
.18
.20
400 440 480 520 560 600 640 680
fraç
ão d
e lu
z ab
sorv
ida
por
cada
con
e
comprimento de onda (nm)
B(
G(
R(
Alberto Raposo – PUC-Rio
Fração da luz absorvida pelo olho
0
50
100
sens
ibili
dade
rela
tiva
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
PretoIn
tens
idad
e
Efeito da Banda de Mach
Alberto Raposo – PUC-Rio
Contraste Simultâneo
Alberto Raposo – PUC-Rio
Contraste
Alberto Raposo – PUC-Rio
Contraste
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
BG
R
• 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
510540
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
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 cor dependentes de dispositivo - mRGB
I ) Sistemas dos Monitores - mRGB
B
normalmentetemos 1 byte para cada componentemapeando[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 cor dependentes 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
processo predominantementesubtrativo
C
Y
M
R G
B
K
luz branca (1,1,1)
tinta ciano (0,1,1)
luz ciano (0,1,1)
componente vermelha é absorvidapapel branco (1,1,1)
normal
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
verdeamarelo
ciano
magenta
branco
1.0
1.0
1.0
Y
M
C
W
Kpreto
amarelo
ciano
magenta
branco
verde
vermelho
azul
(r,g,b) (c,m,y)
(c,m,y) = (1-r, 1-g, 1-b)