Buscar

Aula 03 - Rasteirização

Prévia do material em texto

Disciplina: Computação Grá�ca
Aula 3: Rasteirização
Apresentação
Após estudarmos a origem da computação grá�ca e posteriormente apreendermos como a sensação de
tridimensionalidade é fornecida.
Voltaremos nossos estudos em direção ao funcionamento das representações grá�cas e seus dispositivos, bem como,
abordaremos o processo de rasterização.
Após o entendimento do mecanismo de funcionamento da rasterização, iremos estudar alguns algoritmos clássicos da
Computação Grá�ca.
Objetivos
Entender o funcionamento dos periféricos matriciais e os periféricos vetoriais;
Conhecer o processo de geração da imagem;
Entender como funciona o processo de Rasterização;
Conhecer os algoritmos tradicionais de desenho de segmento de reta, círculos e preenchimento de regiões.
Processo de Geração da Imagem
Construção do Modelo da Aplicação:
Modelo: Coleção de dados representando objetos (físicos ou abstratos) e relações, bem como de operações que ajudam a de�nir
a sua estrutura e/ou comportamento.
Descrevemos este modelo em termos de primitivas grá�cas (pontos, segmentos de reta, polígonos, etc.) em vez de estruturas de
dados próprias da Aplicação (automóvel, avião, casa, mesa, histograma, etc.).
Dispositivo Vetorial
Normalmente, as imagens apresentadas por esse tipo de
dispositivo são de�nidas através de primitivas
geométricas como pontos, segmentos de retas, polígonos,
etc.
Dispositivo Raster
Dispositivos grá�cos podem ser pensados como matrizes
de pixels (rasters).
Rasterização é o processo de conversão entre representações vetorial e matricial.
Grá�cos em um dispositivo raster
A qualidade de uma imagem exibida em um
dispositivo raster aumentará com o aumento da
resolução do display.
Quanto maior a resolução, maior a quantidade de
pixels para desenhar o grá�co.
Quanto maior a quantidade de pixels, mais “suave” e “contínua” será a imagem.
A qualidade de uma imagem exibida em um dispositivo raster diminuirá com o aumento da resolução da imagem, pois o
aumento da resolução de uma imagem faz com que pixels inexistentes devam ser “criados” para serem inseridos na
nova imagem.
Construção de um Segmento
de Reta
Um segmento de reta é, na verdade, formado por um conjunto
de pontos (ou pixels).
O objetivo é pintar os pixels atravessados pelo segmento de
reta.
Algoritmo de Bresenham
Algoritmo clássico da computação grá�ca que utiliza apenas
soma e subtração de inteiros. Sua ideia básica admite que
pixels variam de x a x e de y a y .
O algoritmo inicia-se em x e percorre pixel a pixel em direção a
x , onde a cada mudança em X, o algoritmo tem que decide se
o próximo pixel vai ter coordenadas (x + 1, y) ou (x + 1, y + 1).
Esta decisão requer somente que se avalie onde a linha passa:
acima ou abaixo do ponto médio (x + 1, y + ½). Se a linha
passou abaixo do ponto médio o pixel pintado será (x+1, y)
caso contrário (x + 1, y + 1).
1 2 1 2
1
2
Algoritmo de Bresenham
 
Bresenham (inteiro: x , y , x , y , cor);
a ← y – y
b ← x – x
V ← 2 * a + b
x ← x
y ← y
Enquanto x ≤ x faça
Pintar pixel (x, y, cor)
x ← x + 1
Se V ≤ 0
Então V ← V + 2 * a
Senão V ← V + 2 * (a + b); y ← y + 1c
1 1 2 2
2 1
1 2
1
1
2
Círculos
Para desenhar círculos, adotamos a mesma ideia de avaliar
incrementalmente uma função que classi�ca o ponto médio
entre um pixel e outro com relação a uma função implícita.
Sabendo que o circulo possui octantes (8 “fatias”) simétricas,
precisamos calcular apenas os pontos de uma octante e para
cada ponto calculado pintamos mais 7 pontos adicionais
utilizando a simetria dos octantes.
Preenchimento de Regiões
Esse algoritmo tem por objetivo pintar uma região de uma
�gura. Não é propriamente rasterização uma vez que operação
se dá no espaço da imagem.
O algoritmo utiliza o conceito de regiões que são de�nidas por
critérios de vizinhança a um dado pixel (semente). Esse
algoritmo é conhecido como “Flood Fill”.
Como podemos notar no quadro abaixo o algoritmo é
recursivo e preenche os vizinhos da semente sempre que
atendem ao critério (possuírem a mesma cor) tornando esses
pixels em semente da próxima chamada recursiva. O algoritmo
termina quando nenhum vizinho atende ao critério.
 
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)
Atividade
1 - Leia o texto Monitores: LCD x CRT x Plasma x OLED. <galeria/aula3/anexo/atividade.pdf> .
Agora, comente as principais diferenças entre os diversos tipos de monitores.
Referências
ANGEL, Edward. Interactive computer graphics: a top-down approch using OpenGL tm. 5. ed. Boston: Addison-Wesley, 2009.
AZEVEDO, Eduardo; CONCI, Aura. Computação grá�ca: teoria e prática. São Paulo: Campus, 2003.
AZEVEDO, Eduardo; CONCI, Aura. Computação grá�ca: teoria e prática. Volume 2. São Paulo: Campus, 2003
FOLEY, James D. Computer graphics: principles and practice. 2.ed. Massachusetts: Addison-Wesley, 1996.
WATT, A, POLICARPO, F. 3D Games. [S.l]: Addison Wesley, 2003. v.2.
Próxima aula
Transformações geométricas utilizadas em ambientes 2D e 3D.
Explore mais
Pesquise na internet sites, vídeos e artigos relacionados ao conteúdo visto.
Em caso de dúvidas, converse com seu professor online por meio dos recursos disponíveis no ambiente de aprendizagem.
https://estacio.webaula.com.br/cursos/DIS060/galeria/aula3/anexo/atividade.pdf

Continue navegando