Dispositivos de Visualização e Rasterização

Slides:



Advertisements
Apresentações semelhantes
Continuidade: sem interrupções
Advertisements

PROJETO GRÁFICO VISUAL
Aula 2 - Dispositivos Gráficos
Instituto de Computação - UFF 1 Computação Gráfica I Professor: Anselmo Montenegro Conteúdo: - Transformações geométricas no plano.
Computação Gráfica I Conteúdo: Professor:
Sistema de Computação Gráfica
The Cyclops Project German-Brazilian Cooperation Programme on IT CNPq GMD DLR Departamento de Informática e Estatística - INE/CTC/UFSC Computação Gráfica:
DCA-0114 Computação Gráfica
PROJETO GRÁFICO VISUAL Projeto Gráfico Visual -> Aula 2 24/8/2009 (4-6 – noite) PROGRAMAÇÃO Aula 5 – 21/9 Imagem bitmap Imagem vetorial.
Tecnologia Hipermídia e Multimídia
Rasterização, Anti-aliasing e Preenchimento
Recursividade Prof. Alex F. V. Machado
António Ramires Fernandes & Luís Paulo Santos – Adaptado por Alex F. V. Machado Computação Gráfica Pipeline Gráfico.
MULTIMÍDIA Mídia, Multimídia e Sistema Multimídia (Slide - 2)
Prof. Alex Fernandes da Veiga Machado
Projeções e OpenGL Alex F. V. Machado.
Computação Gráfica (Slide 5)
COMPUTAÇÃO GRÁFICA.
Introdução à Computação Gráfica
Introdução à Computação Gráfica Colorização
Eduardo Freire Santana
Geoprocessamento na Agricultura de Precisão
Iana Alexandra Alves Rufino (UAEC/CTRN/UFCG)
Iana Alexandra Alves Rufino (PPGECA/CTRN/UFCG)
Rasterização de linhas e polígonos
Computação Gráfica Introdução
Os desenhos.
Prof. M.Sc. Rogério Eduardo da Silva
Teoria e Método em Geoprocessamento. Exercícios.
Computação Gráfica: Aula5: Rendering e Rasterização
Computação Gráfica: Aula5: Rendering e Rasterização
Computação Gráfica: Rendering e Rasterização
Técnicas para algoritmos de superfície visível eficientes (Techniques for efficient visible-surface algorithms) Fabio Utzig Rodrigo Senger.
UNIVERSIDADE KIMPA VITA
Computação Gráfica Aula 1 – Visão Geral
Hardware/Software para Multimédia
Sistemas Multimídia e Interface Homem-Máquina
Algoritmos de varredura linear e busca de padrões
Visibilidade em Computação Gráfica
(ANALÓGICO).
DISCIPLINA: SR, Geoprocessamento I e II e Cartografia A tecnologia do Geoprocessamento – Aplicações e Potencialidades 12/3/ Aula 5.
Computação Gráfica aula 01
Prof. Leandro da Silva Taddeo
Estrutura de Dados Os dados com componente geográfico podem possuir dois tipos de estrutura ou modelo de dados: Vetorial ou Raster. Tipo de organização.
Computação Gráfica – Visibilidade
Computação Gráfica 1ª Aula.
Sistemas de Informações Geográficas SIGs.
Computação Gráfica - Amostragem
UNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO COMPUTAÇÃO GRÁFICA
Computação Gráfica – Visibilidade Profa. Mercedes Gonzales Márquez.
Introdução à Computação Gráfica
Classificação de Imagens de Sensoriamento Remoto
Computação Gráfica - Amostragem Profa. Mercedes Gonzales Márquez.
INF 1366 – Computação Gráfica Interativa Rasterização
Introdução à Computação Gráfica
Computação Gráfica - Amostragem Profa. Mercedes Gonzales Márquez.
Operações para entrada de dados –Compilação de dados codificação de dados geográficos de uma forma conveniente para o sistema; incluem a digitalização,
Operações para entrada de dados –Compilação de dados codificação de dados geográficos de uma forma conveniente para o sistema; incluem a digitalização,
Computação Gráfica - Amostragem Profa. Mercedes Gonzales Márquez.
Multimídia Hardware/Software para Multimídia (Parte I)
Proposta de trabalho: Rastreamento da movimentação de uma câmera.
3) Unidades de Entrada e/ou Saída de Dados
Introdução à Computação Gráfica Rasterização
Aula 1 – Parte II O PROBLEMA DA REPRESENTAÇÃO COMPUTACIONAL DO ESPAÇO
1/6/2016 Computação Gráfica
1 Computação Gráfica Prof. Dr. Júlio C. Klafke UNIP-Objetivo
Dispositivos de Visualização e Rasterização
Teoria Computação Gráfica
Computação Gráfica (Slide 5)
Dispositivos de Visualização e Rasterização
Transcrição da apresentação:

Dispositivos de Visualização e Rasterização Alex F. V. Machado alexcataguases@hotmail.com

Dispositivos de Visualização Toda imagem criada através de recursos computacionais deve ser representada em algum dispositivo físico que permita a sua visualização. Diversas tecnologias e diferentes tipos de dispositivos são utilizados para gerar representações visuais.

Dispositivos de Visualização É possível classificar os dispositivos de exibição (traçadores, impressoras e terminais de vídeo) em duas principais categorias, segundo a forma pela qual as imagens são geradas: Dispositivos vetoriais: traçadores digitais, osciloscópio e monitor CRT (Cathode Ray Tube). Dispositivos matriciais: Impressoras e Dispositivos de Vídeo de Varredura (Raster Scanning VDUs)

Dispositivos de Visualização Dispositivo gráfico vetorial (osciloscópio)

Dispositivos de Visualização Dispositivo gráfico matricial (Dispositivos de Vídeo de Varredura)

Dispositivos de Visualização Dispositivo gráfico matricial (Dispositivos de Vídeo de Varredura)

Rasterização

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

Representação Vetorial x Matricial Obs.: SRU - Sistema de Referência do Universo SRT - Sistema de Referência da Tela SRC - Sistema de Referência da Câmera (3D)

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

Rasterização de Segmentos de Reta (algoritmo básico) yi = m xi + b onde: m = Dy/Dx b = y1 - m x1

Rasterização de Segmentos de Reta (algoritmo básico) yi = m xi + b onde: m = Dy/Dx b = y1 - m x1

Rasterização de Segmentos de Reta (algoritmo básico) yi = m xi + b onde: m = Dy/Dx b = y1 - m x1 void Line1(int x1, int y1, int x2, int y2, int color) { float m = (y2-y1)/(x2-x1); float b = y1 - m*x1; float y; int x; PutPixel(x1,y1,color); for (x=x1+1; x<=x2; x++) y = m*x + b; PutPixel(x,ROUND(y), color); }

Rasterização de Segmentos de Reta (algoritmo básico) yi = m xi + b onde: m = Dy/Dx b = y1 - m x1 void Line1(int x1, int y1, int x2, int y2, int color) { float m = (y2-y1)/(x2-x1); float b = y1 - m*x1; float y; int x; PutPixel(x1,y1,color); for (x=x1+1; x<=x2; x++) y = m*x + b; PutPixel(x,ROUND(y), color); } (x1,y1) (x2,y2) y=mx+b b (3,2) (9,4) y=(1/3)x+1 1 3 4 (4,2.33) 5 2 (4,2) (5,3) (5,2.66) Exemplo Calcula-se m e b 1a iteração 2a iteração 3a iteração

Como melhorar o algoritmo? void Line2(int x1, int y1, int x2, int y2, int color) { float m = (y2-y1)/(x2-x1); float b = y1 - m*x1; float y; int x; PutPixel(x1,y1,color); for (x=x1+1; x<=x2; x++) y = m*x + b; PutPixel(x,ROUND(y), color); } ① multiplication ② addition ③ round operation Como tirar a multiplicação?

Rasterização de Segmentos de Reta (outros algoritmos) (Algoritmo de linha incremental) (Algoritmo de Bresenham)

Rasterização de Segmentos de Reta (algoritmo de linha incremental) xi+1 = xi + 1 então yi+1 = yi + Dy/Dx m void LineDDA(int x1, int y1, int x2, int y2, int color) { float y; float m = (y2-y1)/(x2-x1); int x; PutPixel(x1,y1, color); y = y1; for (x=x1+1; x<=x2; x++) y = y+m; PutPixel(x,ROUND(y), color); }

Rasterização de Segmentos de Reta (algoritmo de linha incremental) xi+1 = xi + 1 então yi+1 = yi + Dy/Dx void LineDDA(int x1, int y1, int x2, int y2, int color) { float y; float m = (y2-y1)/(x2-x1); int x; PutPixel(x1,y1, color); y = y1; for (x=x1+1; x<=x2; x++) y = y+m; PutPixel(x,ROUND(y), color); } m Ainda são necessários uma adição de floats e uma round operation. É possível fazer um algoritmo apenas com somas de inteiros. O nome desse algoritmo é: Bresenham’s algorithm.

Entendendo o prolema: Desenho de linhas

Rasterização de Segmentos de Reta (Algoritmo de Bresenham)

Rasterização de Segmentos de Reta (Algoritmo de Bresenham)

Rasterização de Segmentos de Reta (Algoritmo de Bresenham)

Rasterização de Segmentos de Reta (Algoritmo de Bresenham) void BresLine(int x1, int y1, int x2, int y2, int cor) x = x1; y = y1; dy = y2-y1; dx = x2-x1; m = dy/dx; e = m – 0.5; for(i=1;i<=dx;i++){ WritePixel(x, y); IF (e > 0) { y = y+1; e = e – 1; } e = e+m; x = x+1; PutPixel(x,ROUND(y), color);

Rasterização de Segmentos de Reta (Algoritmo de Bresenham) Outros Octantes

Rasterização de Segmentos de Reta (Algoritmo de Bresenham) Vantagens: