1 / 13

Rasterização, Anti-aliasing e Preenchimento

Rasterização, Anti-aliasing e Preenchimento. Alex F. V. Machado alexcataguases@hotmail.com. Rasterização: Revisão. O que é rasterização? Que métricas podemos usar para definir se um algoritmo de rasterização de seguimentos de reta é melhor do que um outro?

lani-lawson
Télécharger la présentation

Rasterização, Anti-aliasing e Preenchimento

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Rasterização,Anti-aliasing e Preenchimento Alex F. V. Machado alexcataguases@hotmail.com

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

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

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

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

  6. y x Rasterização de Círculos • Mesma idéia de avaliar incrementalmente uma função que classifica o ponto médio entre um pixel e outro com relação a uma função implícita • Apenas um octante precisa ser avaliado, os demais são simétricos • Para cada pixel computado, oito 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 E V1 V0 C(x,y) = 0 SE V1’

  7. 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

  8. 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

  9. 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, mas podem apresentar problemas

  10. 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

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

  12. 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

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

More Related