Pipeline de Visualização 2D

Documentos relacionados
Rasterização de primitivas 2D e Pipeline 2D. Soraia Raupp Musse

Visualização 2D. Rasterização de primitivas 2D e Pipeline 2D. Soraia Raupp Musse

Revisão. Soraia Raupp Musse

Pipeline de Visualização 3D

Computação Gráfica 09

Aliasing Exemplo. Representação Vetorial x Matricial. Introdução ao Processamento e Síntese de imagens - Rasterização. Considerações Gerais

Transformações 3D. Soraia Raupp Musse

Computação Gráfica. Prof. MSc André Yoshimi Kusumoto

Objetos definidos no seu próprio sistema de coordenadas

Visualização bidimensional. Universidade Católica de Pelotas Centro Politécnico Disciplina: Computação Gráfica

Discretização. Licenciatura em Engenharia Informática e de Computadores Computação Gráfica. Edward Angel, Cap. 7 Apontamentos CG

Computação Gráfica. Rasterização. Aula 4. Engenharia de Computação. CEFET/RJ campus Petrópolis. Prof. Luis Retondaro

Computação Gráfica. Prof. MSc. André Yoshimi Kusumoto

Introdução Geral a Computação Gráfica. Universidade Católica de Pelotas Curso de Engenharia da Computação Disciplina de Computação Gráfica

Computação Gráfica e Processamento de Imagens. recorte ( clipping ) de : o segmentos de retas o polígonos o textos. Prof.

Instituto Tecnológico de Aeronáutica. Prof. Carlos Henrique Q. Forster Sala 121 IEC

Modelagem. Processamento de Imagens

Visualização 2D: - Transformação window to viewport - Clipping

Algoritmos de Rasterização e Recorte

Prof. Dr. Leandro Alves Neves. Conceitos Fundamentais. Algoritmos de Conversão Matricial.

Visualização 3D. Soraia Raupp Musse

Transformações 3D. Soraia Raupp Musse

Introdução ao Processamento e Síntese de imagens Recorte 2D

Imagem Vetorial x Imagem Matricial. Conversão Matricial de Primitivas Gráficas. Sistema de Coordenadas do Dispositivo. Problema

Preenchimento de Polígonos

O Problema de Visibilidade. Computação Gráfica Recorte. Onde Acontece? O que é Recorte? Renato Ferreira

Sumário COMPUTAÇÃO GRÁFICA E INTERFACES. Modelos e modelagem. Modelos e modelagem. Transformações Geométricas e Visualização 2D

Sumário. Traçado de Retas. Antialiasing e OpenGL. 1 Introdução. 2 Conversão Segmento de Reta. 3 Algoritmo DDA. 4 Algoritmo de Bresenham

The Graphics Pipeline

Questão 1: O histograma deve ser: [0, 1, 4, 2, 0, 3, 0,, 0, 2] Exemplo: Para a matriz

Conversão por Varrimento

Rasterização de primitivas 2D

Computação Gráfica. Licenciatura em Engenharia Informática e de Computadores Alameda/Taguspark. 1º Exame 29 Junho de 2010

Transformações 3D. Soraia Raupp Musse

Primitivos gráficos - algoritmos

1 Para expressar um ponto intermediário em função dos pontos extremos, precisamos

Rasterização. Apontamentos CG + Edward Angel, Sec. 7.8 a Instituto Superior Técnico Computação Gráfica 2009/2010

Algoritmos de Varrimento para Desenho de Primitivas 2D

Primitivos gráficos - algoritmos

Introdução à Computação Gráfica. Claudio Esperança Paulo Roma Cavalcanti

Computação Gráfica. Licenciatura em Engenharia Informática e de Computadores Alameda / Taguspark. Terceiro Teste 19 de Maio de 2012

Recorte. Licenciatura em Engenharia Informática e de Computadores Computação Gráfica. Edward Angel, Cap. 7 Apontamentos CG

Representação de Objetos e Cenas. Soraia Musse

Exame de 1ª Época Computação Gráfica

Computação Gráfica. Agostinho Brito. Departamento de Engenharia da Computação e Automação Universidade Federal do Rio Grande do Norte

Sumário. Introdução Câmera sintética Window-to-Viewport Exercício. 29-May-13 Leandro Tonietto!2

Computação Gráfica. Prof. André Yoshimi Kusumoto

ALGORITMOS PARA DESENHAR RETAS E CÍRCULOS

Visibilidade. Apontamentos CG + Edward Angel, Sec Instituto Superior Técnico Computação Gráfica 2009/2010

Recorte. Edward Angel, Cap. 7. Instituto Superior Técnico Computação Gráfica 2009/2010

Algoritmos de Recorte em 2D

Pipeline Gráfico. Clipping (Recorte) Por que o recorte? INF 1366 Computação Gráfica Interativa. Clipping (Recorte)

Introdução à Computação Gráfica Recorte. Claudio Esperança Paulo Roma Cavalcanti

Pipeline Gráfico Cluter & Durand, MIT

António Costa. Paulo Roma Cavalcanti

Instituto de Computação Bacharelado em Ciência da Computação Disciplina: Computação Gráfica Primeira lista de exercícios

Computação Gráfica. Primitivas Gráficas Professora Sheila Cáceres

Desenho de Segmentos de Recta

Prof. Fernando V. Paulovich 3 de agosto de SCC Computação Gráca

Computação Gráfica - 12

Exame de Época Especial Computação Gráfica

1º Teste de Computação Gráfica 3º Ano

1º Teste de Computação Gráfica

FCTUNIVERSIDADE NOVA DE LISBOA!

Os pixels ou pontos podem ser endereçados por dois inteiros, o número horizontal do pixel (dcx) e o número vertical do pixel (dcy).

Transformações de Visualização 2D: Clipping. Antonio L. Bajuelos Departamento de Matemática Universidade de Aveiro

Aula /2 Sistemas de coordenadas Window x Viewport

Imagem e Gráficos. vetorial ou raster?

Visibilidade. Licenciatura em Engenharia Informática e de Computadores Computação Gráfica. Edward Angel, Cap. 7 Apontamentos CG

Recorte. Márcio Bueno Fonte: Material do Prof. Claudio Esperança e do Prof. Paulo Roma Cavalcanti

1º Exame Computação Gráfica

Objetos Gráficos Planares

2º Exame Computação Gráfica

Primitivas Gráficas. Prof. Márcio Bueno Fonte: Material do Prof. Robson Pequeno de Sousa e do Prof.

Computação Gráfica. Exame de Época Especial de. Nº Nome:

Introdução ao Processamento e Síntese de imagens - Preenchimento de Polígonos

Computação Gráfica. Licenciatura em Engenharia Informática e de Computadores Alameda / Taguspark. 1º Exame 6 de Junho de 2011

Computação Gráfica - OpenGl 02

Aula /2 Sistemas de coordenadas Window x Viewport

UNIVERSIDADE FEDERAL FLUMINENSE Pedro Martins Menezes. Um estudo dos estágios dos pipelines gráficos

Sistemas de Referência

Prof. Julio Arakaki. Ciência da Computação

1º Teste Computação Gráfica

Fundamentos da Computação Gráfica Lista de Exercícios Marcelo Gattass TeCGraf/Departamento de Informática/PUC-Rio 19jun2003

Computação Gráfica. Rasterização de Linhas Professora Sheila Cáceres

Instituto de Computação Bacharelado em Ciência da Computação Disciplina: Computação Gráfica Primeira lista de exercícios

Visualização por Computador: Teoria, Prática e Aplicações

Computação Gráfica - 09

Plano de Ensino de Disciplina Ciência da Computação 2º / 2016

Imagem ou Desenhos e Gráficos vetorial ou raster?

Laboratório de Programação com Games. Conteúdo: Professor: - Transformações no plano. Instituto de Computação - UFF

COMPUTAÇÃO GRÁFICA. Rasterização e Preenchimento de Regiões. MARCO ANTONIO GARCIA DE CARVALHO Fevereiro de Computação Gráfica

Rasterização de linhas e polígonos

Computação Gráfica - 11

Pipeline Gráfico Cluter & Durand, MIT

Objetos Gráficos Planares

Computação Gráfica - 09

Computação Gráfica I. Conteúdo: Professor: - Transformações geométricas no plano. Instituto de Computação - UFF

Transcrição:

Pipeline de Visualização 2D André Tavares da Silva andre.silva@udesc.br Capítulo 2 do Foley

Requisitos de matemática para CG Vetores e pontos Matrizes Transformações geométricas Pontos e espaços afim Representação de coordenadas Reta Plano

Computação Gráfica Conjunto de técnicas utilizadas para converter dados, de forma a exibi-los em dispositivos gráficos.

Computação Gráfica Dados Imagem

Computação Gráfica Dados Imagem

Visualização Bidimensional

Visualização 2D Modelo Imagem Dados........................ Processo de Visualização 2D

Visualização 2D Modelo Imagem typedef struct { float xi, yi; float xf, yf; } linha;... Pipeline 2D Estrutura de dados Mapa de bits Vértices Arestas

Instanciamento Objetos Carro Avião Instâncias Parâmetros

Recorte Permite definir qual região da imagem será vista.

Mapeamento Permite que se exiba em um dispositivo (tela) a visualização desejada do universo.

Instanciamento Instâncias Objeto Original typedef struct { float xi, yi; float xf, yf; } linha; Lembrando! Descrito por linhas.

Sistemas de Referência Y Y 50 (20,50) 50 (60,50) 20 Sistema de referência do objeto (SRO) X 60 Sistema de referência do universo (SRU) X

Sistemas de Referência Y Janela de seleção (Window) Y 20 X Sistema de referência do universo (SRU) Sistema de referência da seleção (SRS) X

Processo de Visualização 2D (pipeline) Y 50 (20,50) 20 Sistema de referência do objeto (SRO) X

Processo de Visualização 2D (pipeline) Y Y Instâncias 50 (20,50) Instanciamento dos objetos 20 Sistema de referência do objeto (SRO) X Sistema de referência do universo (SRU) X

Processo de Visualização 2D (pipeline) Y Sistema de referência do universo (SRU) X

Processo de Visualização 2D (pipeline) Y Janela de seleção (Window) 20 X Sistema de referência do universo (SRU)

Processo de Visualização 2D (pipeline) Y Janela de seleção (Window) Y recorte 20 X Sistema de referência do universo (SRU) Sistema de referência da seleção (SRS) X

Processo de Visualização 2D (pipeline) Y Sistema de referência da seleção (SRS) X

Processo de Visualização 2D (pipeline) X Y Especificação da viewport Sistema de referência da seleção (SRS) X Y Sistema de referência do dispositivo (SRD) Tela, óculos, arquivo,...

Processo de Visualização 2D (pipeline) X X Preenchimento Sistema de referência do dispositivo (SRD) Y Sistema de referência do dispositivo (SRD)

Etapas Sistema de referência do objeto (SRO) Y 50 (20,50) 20 Sistema de referência do objeto (SRO) X

Etapas Sistema de referência do objeto (SRO) Y instanciamento Sistema de referência do universo (SRU) 200 (300,200) 300 Sistema de referência do universo (SRU) X

Etapas Sistema de referência do objeto (SRO) instanciamento Sistema de referência do universo (SRU) Y Janela de seleção (Window) recorte 180 (250,180) Sistema de referência da seleção (SRS) 250 Sistema de referência do universo (SRU) X

Etapas Sistema de referência do objeto (SRO) instanciamento 320 X Sistema de referência do universo (SRU) recorte Sistema de referência da seleção (SRS) viewport Sistema de referência do dispositivo (SRD) preenchimento Y 270 (320,270) Sistema de referência do dispositivo (SRD)

Algoritmos Varredura Recorte

Algoritmo de Varredura Rasterização

Algoritmo de Varredura Rasterização

Desenho de linhas Algoritmo de Varredura Algoritmo Incremental (DDA) Algoritmo Bresenham

Algoritmo de Varredura Algoritmo incremental (DDA - Digital Differential Analyzer) Método para resolver equações diferenciais através de métodos numéricos. Sucessivas operações de incremento baseado no ponto atual. Lento pois utiliza floor (arredonda para inteiro inferior ou igual) ou round (arredonda para o o inteiro mais próximo) dependendo da implementação.

Algoritmo de Varredura Método incremental - DDA Calcular os pontos Dx=xf-xi; Dy=yf-yi; m=dy/dx; y=yi; For (x=xi;x<=xf;x++) { draw(x,int(floor(y+0.5), color); y+=m; } (0,0) Resposta (8,8) (0,0);(1,1);(2,2);(3,3);(4,4);(5,5);(6,6);(7,7);(8,8)

Algoritmo de Varredura Algoritmo do Ponto Médio Bresenham Atrativo porque usa somente operações aritméticas (não usa round ou floor) É incremental Idéia básica: Em vez de computar o valor do próximo y em ponto flutuante, decidir se o próximo pixel vai ter coordenadas (x + 1, y) ou (x + 1, y + 1) Decisão requer que se avalie se a linha passa acima ou abaixo do ponto médio (x + 1, y + ½)

Algoritmo de Varredura Algoritmo do Ponto Médio Bresenham (x + 1, y + 1) (x + 1, y + ½) (x, y) (x + 1, y)

Algoritmo do Ponto Médio - Resumo dx = xf xi; dy = yf yi; d = dy * 2 - dx; x = xi; y = yi; while (x <= xf) { draw(x, y,color); x++; if(d <= 0) d += dy * 2; else { d += (dy dx) * 2; y++; } } (5,8) Calcular os pontos Resposta (9,11) (5,8);(6,9);(7,9);(8,10);(9,11)

Algoritmo de Varredura Algoritmos de preenchimento Retângulo for(y=ymin; y<=ymax; y++) for(x=xmin, x<=xmax; x++) draw(x,y,color);

Algoritmo de Varredura Algoritmos de preenchimento Polígonos Passos Scanline 1) Encontrar as intersecções da scan line com as arestas do polígono 2) Ordenar as intersecções 3) Preencher os pixels entre 2 intersecções (regra de paridade que inicia em par, muda quando encontra uma intersecção e escreve quando é impar) Implemente!

Algoritmo de Varredura Algoritmos de preenchimento Problemas?!? Arestas horizontais

Algoritmos de Recorte Pontos C D E H A B F I L K J G

Algoritmos de Recorte Pontos C D E H A B F I L K J G xi <= x <= xf e Yi <= y <= yf

Algoritmos de Recorte Pontos E B F I Recorte pronto

Algoritmos de Recorte Linhas C D E H A B F I L K J G

Algoritmos de Recorte Linhas C D E H A B F I L Trivialmente aceito K J Pontos dentro do recorte G

Algoritmos de Recorte Linhas C D E H A B F I L K J Trivialmente recusado Pontos fora do recorte C y < yi D y < yi G

Algoritmos de Recorte Linhas E H A B F I L K J Trivialmente recusado Pontos fora do recorte H x > xf J x > xf G

Algoritmos de Recorte Linhas E A B F I L Recorte K Um ponto dentro outro fora Os dois pontos estão fora mas: P1 x < xi e P2 x > xf ou P1 y < yi e P2 y > yf Ou... G

Algoritmos de Recorte Linhas E A B K F I L G Recorte pronto

Algoritmo de Cohen-Sutherland Dividir a área em nove partes.

Algoritmo de Cohen-Sutherland Recorte

Algoritmo de Cohen-Sutherland Atribuir códigos de 4 bits às regiões definidas pelas bordas da window. Bit 0: esquerda Bit 1: direita Bit 2: abaixo Bit 3: acima

Algoritmo de Cohen-Sutherland 1001 1000 1010 0001 0000 0010 0101 0100 0110

Algoritmo de Cohen-Sutherland 1001 1000 1010 Bit 0: esquerda Bit 1: direita Bit 2: abaixo Bit 3: acima 0001 0000 0010 0101 0100 0110

Algoritmo de Cohen-Sutherland if(y > yf) seta primeiro bit em 1 if(y < yi) seta segundo bit em 1 if(x > xf) seta terceiro bit em 1 if(x < xi) seta quarto bit em 1

Algoritmo de Cohen-Sutherland Bit codes dos pontos: A K I B C E G D L F J H A = 0001 B = 1000 C = 0000 D = 0000 E = 0000 F = 1000 G = 0000 H = 0010 I = 0001 J = 0110 K = 0101 L = 0100

Algoritmo de Cohen-Sutherland A I C D E G B F H Como devem ser os bit codes dos pontos trivialmente aceitos? P1 e P2 = 0000 K L J

Algoritmo de Cohen-Sutherland A I C D E G B F H Como devem ser os bit codes dos pontos trivialmente recusados? (P1 and lógico P2)! = 0000 K L J

Algoritmo de Cohen-Sutherland A I C D E G B F H O que fazer com os que não são nem aceitos nem recusados? K L J

Algoritmo de Cohen-Sutherland A I C D E G B F H O que fazer com os que não são nem aceitos nem recusados? Calcular segmentos através das intersecções. K L J

Algoritmo de Cohen-Sutherland B F A I C E D G H J

Algoritmo de Cohen-Sutherland Internet Applet