Rasterizacao Ppt
1256 palavras
6 páginas
Introdução à Computação GráficaRasterização
Claudio Esperança
Paulo Roma Cavalcanti
Representação Vetorial x Matricial
• Normalmente, gráficos são definidos através de primitivas geométricas como pontos, segmentos de retas, polígonos, etc
Representação vetorial
• Dispositivos gráficos podem ser pensados como matrizes de pixels (rasters)
Representação matricial
• Rasterização é o processo de conversão entre representações vetorial e matricial Considerações Gerais
• Rasterização é um processo de amostragem
Domínio contínuo discreto
Problemas de aliasing são esperados
• Cada primitiva pode gerar um grande número de pixels
Rapidez é essencial
• Em geral, rasterização é feita por hardware
• Técnicas de antialiasing podem ser empregadas, usualmente extraindo um custo em termos de desempenho
Rasterização de Segmentos de Reta
• Segmento de reta entre P1= (x1, y1) e P2= (x2, y2)
Já foi recortado com relação ao viewport
• Objetivo é pintar os pixels atravessados pelo segmento de reta
Na verdade, nem todos, apenas os mais próximos
• Reta de suporte dada por a x + b y + c = 0
• Queremos distinguir os casos
Linhas ~ horizontais computar y como função de x
Linhas ~ verticais computar x como função de y
Algoritmo Simples
• Assumimos segmentos de reta no primeiro octante, com
Demais casos resolvidos de forma simétrica
• Inclinação (entre 0 e 1) dada por m = (y2 – y1) / (x2 – x1)
• Algoritmo:
Para x desde x1 até x2 fazer:
• y ← y1 + m * (x – x1) + 0.5
• Pintar pixel (x, y)
P2
P1
Algoritmo Incremental
• Algoritmo simples tem vários problemas:
Utiliza aritmética de ponto-flutuante
Sujeito a erros de arredondamento
Usa multiplicação
Lento
• Se observarmos que m é a variação em y para um incremento unitário de x, podemos fazer ligeiramente melhor: x ← x1 ; y ← y1
Enquanto x ≤ x2 fazer: x←x+1 y ← y+ m
Pintar pixel (x, y + 0.5 )
• Ainda usa ponto-flutuante
Algoritmo de Bresenham
• Algoritmo clássico da computação gráfica
•