You are on page 1of 13

Rasterização

,
Anti-aliasing e Preenchimento
Alex F. V. Machado
alexcataguases@hotmail.com

Aplique o algoritmo de Bresenham para unir os pontos das seguintes imagens. Quais foram os algorimos de rasterização de seguimentos de retas estudados? 4. Que métricas podemos usar para definir se um algoritmo de rasterização de seguimentos de reta é melhor do que um outro? 3. O que é rasterização? 2. . posteriormente defina sua forma de aplicação. Rasterização: Revisão 1.

 Tal discretização pode causar distorções visuais como cisalhamento ou efeito de escada. Aliasing.  Para reduzir o problema de aliasing. é amostrada em uma matriz finita 2D de pixels. e Anti-aliasing  A linha. usa-se uma técnica chamada anti-aliasing. Amostragem.  A técnica consiste em uma superamostragem (uma vez que o aliasing é causada por uma subamostragem) . que no universo físico é contínua.  Essas distorções são chamadas de aliasing.

SUPERAMOSTRAGEM  Superamostragem = Amostrar um objeto numa resolução maior do que será reconstruído. dividir os pixels em sub- pixels (i. . 9). aplicar o algoritmo de Bresenham nesses sub-pixels contar o número de sub-pixels “acesos” por pixel O pixel será aceso com 1 3 3 intensidade proporcional ao número de sub-pixels 3 3 2 acesos.e.

o anti-aliasing deve fazer uma composição da intensidade com a cor de fundo. mas também para polígonos e texturas (o que já é mais complicado) . Exemplo de Anti-aliasing em Linhas  Observe que quando a cor de fundo não é preto.  Anti-aliasing é necessário não só para linhas.

os demais são simétricos – Para cada pixel computado.y) = 0 SE V1’ • Apenas um octante precisa ser avaliado. oito y são pintados • Derivação um pouco mais difícil que a da reta • Outras cônicas podem também ser rasterizadas de forma semelhante x . Rasterização de Círculos • Mesma idéia de avaliar incrementalmente uma função E que classifica o ponto médio entre um pixel e outro com relação a V0 V1 uma função implícita C(x.

Preenchimento de regiões • Fill methods: 2 algoritmos – Boundary Fill – Flood Fill (para bordas multicoloridas) – Atuam ao nível do pixel – Interessantes para aplicações do tipo painting • Scanline-Fill Approaches – Atuam no nível dos polígonos – Melhor performance .

Fill Methods • Algoritmos não tratam objetos isoladamente • Dá-se um ponto interior a figura e prossegue-se até a borda • Similar a função existente em aplicativos do tipo paintbrush • Denominados seed-fill (preenchimento a partir da semente) • Dado um pixel qualquer. quais são seus vizinhos? – 4-connected – 8-connected .

mas podem apresentar problemas . Fill Methods • Inicia com um ponto dentro de uma região • Pinta o interior até a próxima aresta • Deve ser definida a cor da aresta • Pinta regiões 4-connected ou 8-connected • Regiões 4-connected são mais rápidas.

Fill Methods • Algoritmo recursivo – Preenche vizinhos da semente que atendem ao critério – Aplica o algoritmo recursivamente tomando esses vizinhos como sementes – Termina quando nenhum vizinho atende o critério .

novaCor) • Uso abusivo de recursão pode ser contornado preenchendo intervalos horizontais iterativamente . y) ← novaCor FloodFill (x + 1. cor .1. cor . y. y . cor . Fill Methods Algoritmo de Preenchimento • Pseudo-código: Procedure FloodFill (x.1. cor. novaCor) FloodFill (x . novaCor) FloodFill (x. y + 1. cor . novaCor) Se pixel (x. y) = cor então pixel (x. novaCor) FloodFill (x. y. y.

Algoritmos scanline-fill (Rasterização de Polígonos) • Operação fundamental em computação gráfica • Polígono é dado por uma lista de vértices – Último vértice = primeiro vértice • Usar conceito de paridade .

d.a.c) e – Linha de varredura ymin perpendicular ao eixo y percorre o polígono x (desde ymin até ymax) – Intervalos horizontais entre pares de arestas são preenchidos .b. Algoritmos scanline-fill (Rasterização de Polígonos) y • Algoritmo clássico usa técnica de varredura ymax – Arestas são ordenadas b c a • Chave primária: y mínimo • Chave secundária: x mín. d • Exemplo: (e.