130 likes | 262 Views
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. Aliasing. Serrilhado Aparece, por exemplo, ao se desenhar uma reta na diagonal Proposta Antialiasing Filtro EWA. Proposta do Trabalho.
E N D
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
Aliasing • Serrilhado • Aparece, por exemplo, ao se desenhar uma reta na diagonal • Proposta Antialiasing • Filtro EWA
Proposta do Trabalho • Mapeamento de uma textura 2D em uma imagem em perspectiva • Mapeamento projetivo (Matriz de Homografia) • Aplicação do filtro EWA
Homografia • Matriz de Homografia • Paralelogramo no espaço (u,v) para um quadrilátero qualquer no espaço (x,y) • Abordagem do programa: • Homografia Inversa: quadrilátero qualquer em (x,y) para um paralelogramo em (u,v) • Para cada ponto na imagem a direita (quadrilátero qualquer), calcula-se o texel correspondente na textura à esquerda (paralelogramo) • Matriz de Homografia Inversa • A cor do texel encontrado na textura será a cor do pixel (em RGB) no ponto ao qual estamos analisando
cor rgb do texel atribuída ao pixel [texel] =[H]-1 * [pixel] texel correspondente ao ponto
Filtro Antialiasing EWA • Visão Geral: • Para cada ponto (x,y) da imagem, calcular Jacobiano (matriz) • Com jacobiano, calcular elipse correspondente no espaço de textura, centrada no ponto (u,v) • Achar o “bounding box” que envolve a elipse (espaço de textura) • Escanear o “bounding box” • Texels dentro da elipse contribuem para cálculo da cor RGB do ponto da imagem (ponderação) • Texels fora da elipse são desconsiderados
Cálculo Jacobiano pixel texel [H]-1 [J]
Geração da Tabela de Pesos • Gaussiana: • alfa = decaimento da gaussiana • Q = dist. até o centro da elipse • Reescalar elipse de forma que F = tamanho de WTAB
v1 v2 u2 u1 Cálculo do “Bounding Box” • Derivar equação da elipse com relação a x e a y • Igualar as derivadas a zero para descobrir pontos extremos • x’ = 0 (limites horizontais do box – u1 e u2) • y’ = 0 (limites verticais do box – v1 e v2)
Executando EWA • Escanear “bounding box” • calcula Q(u,v) = Au2 + Buv + Cv2 • se ponto estiver dentro do contorno da elipse • calcula peso do ponto: peso = WTAB[Q] • calcula contribuição RGB dada pelo ponto (u,v) • peso * rgb(u,v) • soma contribuição RGB do ponto ao RGB do ponto central da elipse • prossegue escaneando próximo ponto do bounding box e somando a sua contribuição RGB ao RGB do ponto da elipse • se nenhum ponto dentro da elipse tiver uma contribuição efetiva no RGB final, então será aplicado um filtro bilinear
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-aliasing http://pt.wikipedia.org/wiki/Anti-aliasing • Matemática Essencial - Derivada Implícita http://pessoal.sercomtel.com.br/matematica/superior/maxmin/mm08.htm