Filtro EWA
Mapeamento de texturas com
redução de aliasing
Lorenzo Ridolfi
Descrição do problema
• O uso de texturas na renderização de cenas 3D é um recurso
amplamente usado para aumentar o realismo da cena
• As texturas usualmente são imagens 2D tradicionais que
sofrem transformações, usualmente de perspectiva, para que
sejam posicionadas corretamente na cena
• O mapeamento direto da imagem gera aliasing na imagem
• O aliasing pode ser reduzido se a imagem for filtrada por meio
de um filtro “passa baixa” que reduz as altas frequências
Mapeamento 3D sem filtro
A transformação de uma textura por uma perspectiva gera aliasing
onde há compressão espacial da textura
Aliasing
Mapeamento 3D com filtro
O uso de um filtro que atua na atenuação das altas-frequências
reduz consideravelmente o aliasing e melhora a aparência da
textura transformada
Aliasing
reduzido
Resumo do Filtro EWA
•
O EWA [1], ou Elliptical Weighted Average, é um filtro digital
especialmente desenvolvido para a redução de aliasing no
mapeamento 3D de texturas
– O EWA é um filtro de suporte finito que reduz as altas frequências da
textura por meio da ponderação de cada texel com a sua vizinhança
– A vizinhança do texel é determinada por uma elipse centrada no próprio
texel a ser mapeado
– A ponderação de cada texel da vizinhança é dada por uma função
gaussiana da distância entre o texel da vizinhança e o que está sendo
mapeado
– A elipse que determina a vizinhança é determinada diretamente a partir da
transformação 3D que atua sobre a textura
Transformação da textura
• As coordenadas da textura são mapeadas por uma
transformação homogênea definida por uma matriz 3 x 3 H:
u
y
Transformação
x
v
 x '
u 
 y '  H   v 
3x3  
 
 z ' 
1 
x'
y'
x ,y
z'
z'
Ponderação por função gaussiânica
• O EWA pondera o valor de um texel com o uso de função
gaussiânica
• A distância dos texels da vizinhança ao texel a ser mapeado é o
parâmetro da função gaussiânica
 

 u uc
w(u )  e

u é o texel da vizinhança

uc é o texel sendo mapeado
Região elíptica de atuação
• O círculo de atuação da função gaussiana no espaço x,y
corresponde a uma elipse no espaço u,v
• Essa elipse de atuação é determinada a partir da transformação
inversa de H, H-1
u
y
Transformação
v
x
Pseudo-código do EWA
Parâmetros de entrada:
– Inversa da transformação H-1
– Pontos X, Y
Parâmetros de saída:
– Valor final dos componentes r, g e b para as coordenadas X, Y
Calcular o centro da elipse uc, vc
Calcular os parâmetros da elipse a partir da matriz H-1
Calcular o bounding box da elipse
Para cada texel no interior da bounding box
Se o texel estiver dentro da elipse
Calcular o peso do texel
Acumular o peso e o valor ponderado do texel para os
componentes r, g e b
Calcular o valor final dos componentes r, g e b do texel
Detalhamento do Pseudo-Código
• O pseudo-código do EWA está descrito em [1]
• Alguns passos do pseudo-código não foram
totalmente documentados e são descritos a seguir:
– Calcular o centro da elipse uc, vc
– Calcular os parâmetros da elipse a partir da matriz H-1
– Calcular o bounding box da elipse
Calcular o centro da elipse uc, vc
• Os valores de uc, vc são determinados diretamente a partir de x,
y e da matriz H-1
 uc' 
 x
 '
1  
 vc   H 3 x 3  y 
 wc' 


1


 
'
c
'
c
'
c
'
c
u
v
uc  , vc 
w
w
Calcular os parâmetros da elipse a partir da matriz H-1
• Os parâmetros da elipse são obtidos a partir da jacobiana da matriz
H-1
H 3x13
J H 1
3x3
 hu
 x
  h
 u
 y
a
  d
 g
hv 
x 
hu 

y 
b
e
h
c
f 
i 
a x b y  c
g  x  h y i
d  x  e y  f
vc  hv ( x, y ) 
g  x  h y i
uc  hu ( x, y) 
 a  ( g  x  h  y  i )  g  (a  x  b  y  c) b  ( g  x  h  y  i )  h  (a  x  b  y  c) 


( g  x  h  y  i) 2
( g  x  h  y  i) 2
J H 1  

3x3
d

(
g

x

h

y

i
)

g

(
d

x

e

f

c
)
e

(
g

x

h

y

i
)

h

(
a

x

b

y

c
)


2
2


( g  x  h  y  i)
( g  x  h  y  i)
Calcular os parâmetros da elipse a partir da matriz H-1
• Seja JH a matriz jacobiana e a elipse definida por A, B,C e F:
J H 1
3x3
 j xu
 u
 j y
j xv 

j yv 
A u2  B  u  v  C  y2  F
• A elipse derivada é:
• Por fim, a elipse é normalizada
A'  J xv  J xv  J yv  J yv  1

B'  2  J xu  J xv  J yu  J yv
C '  J xu  J xu  J xv  J xv 1
'2
B
F '  A'  C ' 
4

A'
A '
F
B'
B '
F
C'
C '
F
F 1
Calcular o bounding box da elipse
• Para achar o “bounding box” da
elipse, precisamos achar os valores
mínimos de u e v:
e(u, v)  A  u 2  B  u  v  C  y 2
e
 2 Au  B v
u
e
 2C v  B u
v
Calcular o bounding box da elipse
Para minimizar u e v, temos
as seguintes equações:
A u2  B  u  v  C  y2  F
O bounding box será:
uc  ub
vc  vb
2 Au  B v  0
2C v  B u  0
Resolvendo as equações:
ub  
vb  
(uc  ub , vc  vb )
F
4 A C
A
B2
(uc  ub , vc  vb )
2
F
4 AC2
C
B2
(uc , vc )
(uc  ub , vc  vb )
(uc  ub , vc  vb )
Referências
[1] Heckbert, Paul, “Fundamentals of Texture Mapping and Image
Warping”, Master’s Thesis, Department of Electrical
Engineering and Computer Science, University of California,
Berkeley, CA, 1989.
Download

EWA