13
Fundamentos da Computação Fundamentos da Computação Gráfica Gráfica (Trabalho 2) (Trabalho 2) Filtro Anti-aliasing para Filtro Anti-aliasing para Mapeamento de Texturas Mapeamento de Texturas baseado em EWA baseado em EWA Gilberto Medeiros Júnior 05/2007 PUC-RJ

Fundamentos da Computação Gráfica (Trabalho 2) Filtro Anti-aliasing para Mapeamento de Texturas baseado em EWA Gilberto Medeiros Júnior 05/2007 PUC-RJ

Embed Size (px)

Citation preview

Page 1: Fundamentos da Computação Gráfica (Trabalho 2) Filtro Anti-aliasing para Mapeamento de Texturas baseado em EWA Gilberto Medeiros Júnior 05/2007 PUC-RJ

Fundamentos da Computação Fundamentos da Computação GráficaGráfica

(Trabalho 2)(Trabalho 2)

Filtro Anti-aliasing para Filtro Anti-aliasing para Mapeamento de Texturas Mapeamento de Texturas

baseado em EWAbaseado em EWA

Gilberto Medeiros Júnior

05/2007

PUC-RJ

Page 2: Fundamentos da Computação Gráfica (Trabalho 2) Filtro Anti-aliasing para Mapeamento de Texturas baseado em EWA Gilberto Medeiros Júnior 05/2007 PUC-RJ

AliasingAliasing

SerrilhadoSerrilhado Aparece, por exemplo, ao se desenhar Aparece, por exemplo, ao se desenhar

uma reta na diagonaluma reta na diagonal

Proposta Antialiasing Proposta Antialiasing Filtro EWA Filtro EWA

Page 3: Fundamentos da Computação Gráfica (Trabalho 2) Filtro Anti-aliasing para Mapeamento de Texturas baseado em EWA Gilberto Medeiros Júnior 05/2007 PUC-RJ

Proposta do TrabalhoProposta do Trabalho

Mapeamento de uma textura 2D em Mapeamento de uma textura 2D em uma imagem em perspectivauma imagem em perspectiva

Mapeamento projetivo (Matriz de Mapeamento projetivo (Matriz de Homografia)Homografia)

Aplicação do filtro EWAAplicação do filtro EWA

Page 4: Fundamentos da Computação Gráfica (Trabalho 2) Filtro Anti-aliasing para Mapeamento de Texturas baseado em EWA Gilberto Medeiros Júnior 05/2007 PUC-RJ

HomografiaHomografia

Matriz de HomografiaMatriz de Homografia Paralelogramo no espaço (u,v) para um quadrilátero Paralelogramo no espaço (u,v) para um quadrilátero

qualquer no espaço (x,y)qualquer no espaço (x,y) Abordagem do programa:Abordagem do programa:

Homografia Inversa: quadrilátero qualquer em (x,y) para Homografia Inversa: quadrilátero qualquer em (x,y) para um paralelogramo em (u,v)um paralelogramo em (u,v)

Para cada ponto na imagem a direita (quadrilátero Para cada ponto na imagem a direita (quadrilátero qualquer), calcula-se o texel correspondente na textura à qualquer), calcula-se o texel correspondente na textura à esquerda (paralelogramo)esquerda (paralelogramo)

Matriz de Homografia InversaMatriz de Homografia Inversa A cor do texel encontrado na textura será a cor do pixel A cor do texel encontrado na textura será a cor do pixel

(em RGB) no ponto ao qual estamos analisando(em RGB) no ponto ao qual estamos analisando

Page 5: Fundamentos da Computação Gráfica (Trabalho 2) Filtro Anti-aliasing para Mapeamento de Texturas baseado em EWA Gilberto Medeiros Júnior 05/2007 PUC-RJ

texel correspondente ao ponto

cor rgb do texel atribuída ao pixel

[[texeltexel] =[H]] =[H]-1-1 * *

[[pixelpixel]]

Page 6: Fundamentos da Computação Gráfica (Trabalho 2) Filtro Anti-aliasing para Mapeamento de Texturas baseado em EWA Gilberto Medeiros Júnior 05/2007 PUC-RJ

Filtro Antialiasing EWAFiltro Antialiasing EWA

Visão Geral:Visão Geral: Para cada ponto (x,y) da imagem, calcular Para cada ponto (x,y) da imagem, calcular

Jacobiano (matriz)Jacobiano (matriz) Com jacobiano, calcular elipse correspondente Com jacobiano, calcular elipse correspondente

no espaço de textura, centrada no ponto (u,v)no espaço de textura, centrada no ponto (u,v) Achar o “bounding box” que envolve a elipse Achar o “bounding box” que envolve a elipse

(espaço de textura)(espaço de textura) Escanear o “bounding box”Escanear o “bounding box”

Texels dentro da elipse contribuem para cálculo da Texels dentro da elipse contribuem para cálculo da cor RGB do ponto da imagem (ponderação)cor RGB do ponto da imagem (ponderação)

Texels fora da elipse são desconsideradosTexels fora da elipse são desconsiderados

Page 7: Fundamentos da Computação Gráfica (Trabalho 2) Filtro Anti-aliasing para Mapeamento de Texturas baseado em EWA Gilberto Medeiros Júnior 05/2007 PUC-RJ

Cálculo JacobianoCálculo Jacobiano

)(

)()(2ihygx

cbyaxgihygxaux

)(

)()(2ihygx

cbyaxhihygxbu y

)(

)()(2ihygx

feydxgihygxdvx

)(

)()(2ihygx

feydxhihygxevy

'

'

'

1

.

w

v

u

ihygx

feydx

cbyax

y

x

ihg

fed

cba

11'/'

'/'

'/'

v

u

ww

wv

wu

ihygx

feydxihygx

cbyax

yy

xx

vu

vu

[H][H]-1-1 pixelpixel texeltexel

[J][J]

Page 8: Fundamentos da Computação Gráfica (Trabalho 2) Filtro Anti-aliasing para Mapeamento de Texturas baseado em EWA Gilberto Medeiros Júnior 05/2007 PUC-RJ

Cálculo da ElipseCálculo da Elipse

FCyBxyAx 22

4/

1

)(2

1

F

C

Β

Α

BBAC

uuuu

vuvu

vvvv

yyxx

yyxx

yyxx

Page 9: Fundamentos da Computação Gráfica (Trabalho 2) Filtro Anti-aliasing para Mapeamento de Texturas baseado em EWA Gilberto Medeiros Júnior 05/2007 PUC-RJ

Geração da Tabela de PesosGeração da Tabela de Pesos

Gaussiana:Gaussiana:

qeqWTAB ][ alfa = decaimento da gaussianaalfa = decaimento da gaussiana Q = dist. até o centro da elipseQ = dist. até o centro da elipse

Reescalar elipse de forma que F = tamanho de WTABReescalar elipse de forma que F = tamanho de WTAB

Page 10: Fundamentos da Computação Gráfica (Trabalho 2) Filtro Anti-aliasing para Mapeamento de Texturas baseado em EWA Gilberto Medeiros Júnior 05/2007 PUC-RJ

Cálculo do “Bounding Box”Cálculo do “Bounding Box”

Derivar equação da elipse com relação a x Derivar equação da elipse com relação a x e a ye a y

Igualar as derivadas a zero para descobrir Igualar as derivadas a zero para descobrir pontos extremospontos extremos x’ = 0 (limites horizontais do box – u1 e u2)x’ = 0 (limites horizontais do box – u1 e u2) y’ = 0 (limites verticais do box – v1 e v2)y’ = 0 (limites verticais do box – v1 e v2)

u1u1 u2u2

v1v1 v2v2

Page 11: Fundamentos da Computação Gráfica (Trabalho 2) Filtro Anti-aliasing para Mapeamento de Texturas baseado em EWA Gilberto Medeiros Júnior 05/2007 PUC-RJ

Executando EWAExecutando EWA

Escanear “bounding box”Escanear “bounding box” calcula Q(u,v) = Aucalcula Q(u,v) = Au22 + Buv + Cv + Buv + Cv22

se ponto estiver dentro do contorno da elipsese ponto estiver dentro do contorno da elipse calcula peso do ponto: peso = WTAB[Q]calcula peso do ponto: peso = WTAB[Q] calcula contribuição RGB dada pelo ponto (u,v)calcula contribuição RGB dada pelo ponto (u,v)

peso * rgb(u,v)peso * rgb(u,v) soma contribuição RGB do ponto ao RGB do ponto central da soma contribuição RGB do ponto ao RGB do ponto central da

elipseelipse

prossegue escaneando próximo ponto do bounding box e prossegue escaneando próximo ponto do bounding box e somando a sua contribuição RGB ao RGB do ponto da somando a sua contribuição RGB ao RGB do ponto da elipseelipse

se nenhum ponto dentro da elipse tiver uma contribuição se nenhum ponto dentro da elipse tiver uma contribuição efetiva no RGB final, então será aplicado um filtro bilinearefetiva no RGB final, então será aplicado um filtro bilinear

Page 12: Fundamentos da Computação Gráfica (Trabalho 2) Filtro Anti-aliasing para Mapeamento de Texturas baseado em EWA Gilberto Medeiros Júnior 05/2007 PUC-RJ

Exemplo de Execução do Programa

Page 13: Fundamentos da Computação Gráfica (Trabalho 2) Filtro Anti-aliasing para Mapeamento de Texturas baseado em EWA Gilberto Medeiros Júnior 05/2007 PUC-RJ

Referências:Referências:

P. S. Heckbert. “Fundamentals of texture mapping and image warping.” M.sc. thesis,Department of Eletrical Enginneering and Computer Science, University of California,Berkeley, 1989.

Wikipedia – Anti-aliasinghttp://pt.wikipedia.org/wiki/Anti-aliasing

Matemática Essencial - Derivada Implícita http://pessoal.sercomtel.com.br/matematica/superior/maxmin/mm08.htm