Antialiasing
MC930
Computação Gráfica
Luiz M. G. GOnçalves
Aliasing
“Aliasing” ocorre
quando a taxa de
amostragem do sinal
não é adequada para
sua reconstrução,
criando ilusão de um
sinal de baixa
frequência.
Images
• Imagens analógicas
–
–
–
–
–
região 2-D de cor variada
ex: imagem ótica, sinal eletrico do monitor
Imagem simbólica
Qualquer função de duas variáveis reais
ex: sin(x2 + y2)
• Imagem digital
– array 2-D valores de cor c/ espaçamento
uniforme
– ex: frame-buffer
Image Transformations
Symbolic
Rendering
Image
Analog
Image
Scanning
Digital
Image
Display
System
Analog
Image
Digital
Image
Display
System
Analog
Image
Amostragem e reconstrução
Symbolic
Discrete
Sampling
Reconstruction
Image
Samples
Continuous
Image
Transformada de
Fourier1-D
• Tira qualquer sinal I(x)
fora de ondas senoidais
• Converte domínio do
tempo em frequência
• Permite usar espectro
I
de frequência F(u)
• F(0) = “termo DC” ou
média do sinal
• F(-u) = F(u)
1
I ( x) exp( jux)dx

2
1
I ( x) 
F (u ) exp( jux)du

2
F (u ) 
j 2  1
exp( jux)  cosux  j sin ux
a  bj  a 2  b 2
arg a  bj  arctan(b / a)
p
1/p
F
x
u
0
Convolução
( g * h)( t )   g ( s )h(t  s)ds
• Convolução de ondas
quadradas com ondas
quadradas resulta em
onda triangular
• f*g  FG
• fg  F*G
Filtragem passa-baixa
• Transf. Fourier de
uma função box é
uma função sinc
• Conv. com uma
função sinc é filtro
passa-baixa ideal
• Multiplica altas
frequências por zero
Amostrando o sinal
I(x)
F(u)
s(x)
S(u)
p
1/p
(Is)(x)
(F*S)(u)
s’(x)
S’(u)
(Is’)(x)
(F*S’)(u)
Teorema de Shannon
Um sinal cujo espectro não possui energia
acima de uma frequência f pode ser
recuperado com amostragens a uma taxa de
2f ou mais
Transformada de Fourier 2-D
1
F (u , v) 
I ( x, y ) exp( j (ux  vy))dxdy

2
1
I ( x, y ) 
F (u , v) exp( j (ux  vy))dxdy

2
I(x,y)
fy
fx
Perfect Sampling
Imperfect Sampling
Antialiasing Methods
• Aproximar uma amostragem de area
– com uma amostragem por área analítica
– com uma amostragem por pontos de um objeto
suavizado (“borrado”)
– com muitas amostragens discretas
Traçando num cone
•
•
•
•
Amanatides SIGGRAPH 84
Troca raios por cones
Cone amostra área de um pixel
Intersepta cone com objetos
– Soluções analíticas similar a “ray tracing”
– Custoso
Traçando com um canhão
• Heckbert & Hanrahan SIGGRAPH 84
• Troca raios por piramides generalizadas
• Interseção com cenas poligonais
– Interseção plano-plano fácil e rápido
– Anti-aliasing usando “scan conversion”
• Pode executar traçado por canhão recursivo
– Cena transformada para um novo ponto de vista
– Resultado é “clipado” p/ um polígono refletivo
Covers
Super-amostragem
• Traçar a uma solução alta, manter média
• Amostragem adaptativa
– traçar a uma resolução alta só onde necessário
• Problemas
– Não elimina “aliases” (e.g. moire patterns)
– Transforma “aliases” em “higher-frequency”
– Devido a uniformidade de amostragens
Amostragem estatística
•
•
•
•
•
Olho é extremamente sensível a padrões
Remove padrões da amostragem
Torna aleatório padrão de amostragem
Resultado: padrão -> ruído
Alguns ruídos são melhores que outros
Padrões
• “Jitter”
– Pega n pontos aleatórios no espaço-amostragem
• “Jitter” uniforme
– Subdivide o espaço-amostragem em n regiões
• Disco de Poisson
– Pega n pontos aleatórios, mas não próximos
Amostragem estatística
Adaptativa
• Proximidade inv. proporcional à variancia
• Como gerar padrões em vários níveis?
–
–
–
–
Cook: Jitter numa quadtree
Dippe/Wold: Jitter numa k-d-tree
Dippe/Wold: Disco Poisson “on-the-fly” (lento)
Mitchell: Pre-comp. níveis - ráp. mas granular
Reconstrução

g ( x) 
g(x1)
 k ( x  xn ) g ( xn )
n  
g(x2)
g(x3)

 k(x  x )
n  
n
g(x4)
k
Reconstrução de amostragens
estocásticas
Download

Antialiasing