COMPUTAÇÃO GRÁFICA. Rasterização e Preenchimento de Regiões. MARCO ANTONIO GARCIA DE CARVALHO Fevereiro de Computação Gráfica - PDF
COMPUTAÇÃO GRÁFICA. Rasterização e Preenchimento de Regiões. MARCO ANTONIO GARCIA DE CARVALHO Fevereiro de Computação Gráfica
Download "COMPUTAÇÃO GRÁFICA. Rasterização e Preenchimento de Regiões. MARCO ANTONIO GARCIA DE CARVALHO Fevereiro de 2009. Computação Gráfica"
Raul Campos Gama
1 COMPUTAÇÃO GRÁFICA Rasterização e Preenchimento de Regiões
2 Objetivos Conhecer os fundamentos da construção de linhas e círculos Conhecer o modelo scan-line modelo de sementes para preenchimento de polígonos e
3 Rasterização O processo que determina quais pixels produzem a melhor aproximação para a representação de uma linha é denominado de rasterização.
4 Rasterização A escolha é óbvia para linhas verticais, horizontais e linhas a 45º Linhas Verticais, Horizontais e a 45 o
5 Rasterização Para linhas com outras angulações ções
6 Rasterização Características Linhas retas devem parecer retas Brilho constante ao longo da linha Eficiência na construção
7 Algoritmo de Bresenham - Retas Fundamentos (0,1) (1,1) 1/2 Δy / Δx 1 (erro 0) Plot(1,1) 0 Δy / Δx < 1 (erro < 0) Plot(1,0) (0,0) (1,0)
8 Algoritmo de Bresenham - Retas Análise do erro
9 Algoritmo de Bresenham - Retas Análise do erro
10 Bresenham - construção de linhas cujos pontos inicial e final são (x 1,y 1 ) e (x 2,y 2 ), respectivamente x = x 1 y = y 1 Δx = x 2 - x 1 Δy = y 2 - y 1 m = Δy y / Δx e = m - 1/2 PARA i = 1 ATÉ Δx FAÇA PlotarPixelXY(x, y) ENQUANTO (e > 0) FAÇA y = y + 1 e = e - 1 FIM ENQUANTO x = x + 1 e = e + m FIM PARA FIM ALGORITMO % início do laço principal Obs.: algoritmo válido para 0 Δy Δx
11 Algoritmo de Bresenham - Retas Exemplo: Construir uma linha cujas extremidades são (0,0) e (5,5) usando o alg. i setpixel e x y Bresenham x = 0 y = 0 Δx = 5 Δy = 5 m = 1 e = 1/2 1 (0, 0) 2 (1, 1) 3 (2, 2) 4 (3, 3) 5 (4, 4) 1/ / / / / / / / / / /2 5 5
12 Algoritmo de Bresenham - Retas Desenho da linha - (0,0) e (5,5)
13 Algoritmo de Bresenham Algoritmo genérico - retas Algoritmo para construção de círculos
14 Algoritmo de Bresenham - Círculos Eficiente Somente um octante do círculo c é gerado: as outras partes são obtidas por sucessivas reflexões
15 Algoritmo de Bresenham - Círculos Suponha que o círculo será gerado no sentido horário. Portanto, para qualquer ponto pertencente ao círculo, existirá 3 possibilidades de movimento para o pixel seguinte: Horizontalmente à direita; Diagonalmente para baixo à direita; Verticalmente para baixo O algoritmo escolhe o pixel que minimiza uma medida de distância entre estes movimentos e aqueles produzidos por um círculo real.
16 Exercício (prova ) Deseja-se desenhar uma letra V usando os Algoritmos de Bresenham e/ou DDA (veja( Figura ao lado). Como você resolveria esse problema?? (pense( em uma forma eficiente) Faça as considerações que forem necessárias. Apresente o acompanhamento dos algoritmos para a construção da(s) reta(s).
17 Para saber mais: [ROGERS98] Capítulo 2 [FOLEY95] Capítulo 3
18 Preenchimento - Fundamentos Contornos fechados podem ser vistos como polígonos. O método mais simples para se preencher polígonos é o de varrer cada pixel da imagem e verificar se ele está dentro do polígono.
19 Fundamentos Para melhorar a eficiência da varredura, utiliza-se um bounding box. bounding box Bounding box é o menor retângulo que contém o polígono. bounding box
20 Varredura por linha É provável que pixels adjacentes em uma linha de varredura tenham as mesmas características (mudam quando a linha de varredura corta a borda de um polígono). Também conhecido como scan-line
21 Varredura por linha P 5 P 3 P 4 Scan line 4 Scan line 2 P 1 P x < 1 fora do polígono 1 x 8 dentro do polígono x > 8 x < 1 fora do polígono fora do polígono 1 x 4 dentro do polígono 4 < x < 6 fora do polígono 6 x 8 dentro do polígono x > 8 SCAN LINE 2 SCAN LINE 4 fora do polígono
22 Varredura por linha Dificuldade: intersecção de uma linha de varredura com um vértice do polígono P 3 Scan line 10 Um resultado correto é obtido quando se conta duas intersecções quando a scan line cruza com um máximo ou mínimo local (P3 e P1, respectivamente). P 4 P 2 Scan line 5 Scan line 4 Scan line 1 P 1
23 Preenchimento por semente - PPS Assume que pelo menos um ponto no interior do polígono é conhecido. Regiões podem ser definidas no interior do polígono ou em seu contorno.
24 Preenchimento por semente É importante definir a relação de vizinhança entre pixels,, 4 ou 8-conectada. VIZINHANÇA 4-CONECTADA p p VIZINHANÇA 8-CONECTADA
25 ALGORITMO PPS SIMPLES - USA PILHA FILO - Efetua o preenchimento de regiões partindo de um ponto interno conhecido denominado de semente Coloque um pixel qualquer, denotado por semente (s), na pilha ENQUANTO pilha vazio FAÇA -Retire um pixel p da pilha -Atribua o valor da cor de preenchimento ao pixel p -Para cada pixel adjacente a p,, observe o seu status. Caso seja um pixel de contorno ou já tenha sido visitado, ignore-os. Caso contrário, coloque-os na pilha. FIM ENQUANTO FIM ALGORITMO
26 Preenchimento por semente s s s s
27 Preenchimento por semente Exercício: verificar a ordem de preenchimento dos pixels pertencentes à região delimitada pelo contorno abaixo. Faça duas implementações para vizinhanças 4 e 8. Comente os resultados. s
28 Aliasing Efeito gerado pela subamostragem de sinais (imagem). Halftoning Técnica que utiliza uma baixa quantidade de níveis de cinza a fim de obter uma imagem de boa resolução visual.
29 Primitivas - OpenGL Vértices definidos por um bloco As faces de um polígono possuem frente e verso
30 Para saber mais: [ROGERS98] Capítulo 2 [MANSSOUR06] Capítulo 8
Introdução ao Processamento e Síntese de imagens - Preenchimento de Polígonos
1 Introdução ao Processamento e Síntese de imagens - Preenchimento de Polígonos Júlio Kiyoshi Hasegawa Fontes: Rogers, D. F. Procedural Elements for Computer Graphics Traina, A. J. M. & Oliveira, M. C.
Prof. Dr. Leandro Alves Neves. Conceitos Fundamentais. Algoritmos de Conversão Matricial.
Informática II Conteúdo 03 Prof. Dr. Leandro Alves Neves Sumário Rasterização Conceitos Fundamentais. Algoritmos de Conversão Matricial. Polígonos Construção e Preenchimento de polígonos com formas arbitrárias