Dispositivos de Visualização e Rasterização

Slides:



Advertisements
Apresentações semelhantes
Dispositivos de Visualização e Rasterização
Advertisements

Computação Gráfica (Slide 5)
Rasterização de linhas e polígonos
Computação Gráfica - Amostragem Profa. Mercedes Gonzales Márquez.
Introdução à Computação Gráfica Rasterização
1/6/2016 Computação Gráfica
SISTEMAS EMBARCADOS I UNIDADE 7 – CONVERSOR A/D TURMA: 7º Período DISCIPLINA: Sistemas Embarcados I PROFESSOR: Pedro Pacheco Bacheti
POLINÔMIOS. Polinômio ou função polinomial na variável complexa x é toda função P: ℂ → ℂ definida por P(x) = a n x n + a n–1 x n–1 + a n–2 x n–2 +...
Linguagem de Programação – Aula 03 Prof. Me. Ronnison Reges Vidal.
Princípios de Desenvolvimento de Algoritmos MAC122 Prof. Dr. Paulo Miranda IME-USP Variáveis e Atribuições.
Computação Gráfica – Visibilidade Profa. Mercedes Gonzales Márquez.
MATRIZ É uma tabela disposta em “m” linhas e “n” colunas.
Computação Gráfica – Visibilidade
EDIFICAÇÕES - SUBSEQUENTE
GRÁFICOS ESTATÍSTICOS
Márcio Soussa Estrutura de Dados Márcio Soussa
DETERMINANTES de Ordem n (n > 3).
Computação Gráfica - Amostragem
CÁLCULO NUMÉRICO Aula 1 – Introdução ao Programa de
GRANDEZAS ESCALARES E VETORIAIS.
Teoria Computação Gráfica
Tipos de filtros Aqui vamos ver que os núcleos de convolução passa-altas e passa-baixas são mais usados. Também veremos alguns dos filtros não-lineares.
Função Modular.
Computação Gráfica: Imagens Prof. Rafael Vieira (Calibre seu monitor!)
Laboratório 2 de Fundamentos de Física e Matemática Revisão das atividades do Lab anterior: Plot de Graficos – Maximos locais e globais.
Computação Gráfica: Kernels e Quantização
O que você deve saber sobre
Computação Gráfica: Rasterização Prof. Rafael Vieira
Computação Gráfica: Visibilidade Prof. Rafael Vieira
PIT – PROGRAMA INTERNO DE TREINAMENTO 2015
FUNDAMENTO DE PROGRAMAÇÃO
Pesquisa Operacional I Programação Linear
VETORES.
Programação Orientada a Objetos
Funções Racionais.
Noções Básicas de Sensoriamento Remoto e Geoprocessamento
Capítulo 04: Condução Multidimensional em Regime Permanente
Aulas 17 e 18 Limites, limites laterais, limites infinitos, assíntota vertical e propriedades do limite.
, operações, intervalos e desigualdades.
Computação Gráfica (Aula 3)
Filtros no Domínio Espacial e da Frequência
Aula 07 e 08 - Funções Definição de função, representação de funções, função crescente e decrescente, função linear , polinomial, racionais e algébricas.
Computação Gráfica (Slide 5)
APRENDENDO A CONTEXTUALIZAR GRÁFICOS
Tipos de Entes de Expressão Espacial
Interpretação de Imagens com CSP
O que você deve saber sobre
Rasterização, Anti-aliasing e Preenchimento
MATRIZES É uma tabela disposta em “m” linhas e “n” colunas.
AQUI VAI O TÍTULO DO TRABALHO
VETORES.
Derivadas Já definimos o coeficiente angular de uma curva y = f(x) no ponto onde x = x0. Chamamos esse limite, quando ele existia, de derivada de f em.
Interpretação Gráfica
Teoria de Perturbação de Muitos Corpos - MBPT
FUNÇÕES (Aula 7) MATEMÁTICA Prof.Rafael Pelaquim Ano 2011
Dispositivos de Visualização e Rasterização
Isometrias Reflexão, translação e rotação Composição de isometrias.
Como montar uma apresentação de slides
GRÁFICOS ESTATÍSTICOS
Módulo e Equação Modular
Título do Trabalho Nome dos Autores (Sigla da Instituição)
Título do Trabalho Nome dos Autores (Sigla da Instituição)
Coordenadas Retangulares
FÍSICA Maria Clara, Yanna Patriota e Luís Henrique.
( UFSC ) Seja f(x) = ax + b uma função linear. Sabe-se que f(-1) = 4 e f(2) = 7. Dê o valor de f(8). y = ax + b f(-1) = 4 (-1, 4) 4 = a(-1) + b (2,
Técnicas de análise da conjuntura
Funções reais de variável real Nesta aula é dada ênfase às funções reais de variável real, isto é, às funções cujo domínio é um subconjunto de R e o conjunto.
Álgebra Linear Aula 10 Transformações Lineares
Álgebra Linear Aula 10 Transformações Lineares
Funções de Duas ou Mais Variáveis
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 = y/x b = y1 - m x1

Rasterização de Segmentos de Reta (algoritmo básico) yi = m xi + b onde: m = y/x 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 = y/x 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 + y/x 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 + y/x 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: