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

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

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

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

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

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

Introdução ao Processamento e Síntese de imagens -Linhas e superfícies escondidas

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

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

Objetos definidos no seu próprio sistema de coordenadas

RECORTE (CLIPPING) por janelas rectangulares

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

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

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

Pipeline de Visualização 2D

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

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

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

de Recta e Polígonos

Objetos Gráficos Planares

Algoritmos geométricos

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

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

Computação Gráfica - 12

Thanks to Isabel Harb Manssour Marcelo Cohen

Pipeline de Visualização 3D

Características Principais. Introdução à Computação Gráfica Ray Tracing. Ray Casting. Contexto Histórico. Claudio Esperança Paulo Roma Cavalcanti

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

Algoritmos de Recorte em 2D

Pipeline Gráfico Cluter & Durand, MIT

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

Revisão. Soraia Raupp Musse

Neste capítulo, definimos o problema que estudamos e descrevemos os principais algoritmos

Preenchimento de Polígonos

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

Proposta de teste de avaliação

Determinação da Visibilidade

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

Geometria Analítica. Geometria Analítica 28/08/2012

Introdução ao Processamento e Síntese de imagens - Projeções

3 Extração de Regras Simbólicas a partir de Máquinas de Vetores Suporte 3.1 Introdução

Curvas e Superfícies

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

P R O P O S T A D E R E S O L U Ç Ã O D O E X A M E T I P O 6

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

Professor: Computação Gráfica I. Anselmo Montenegro Conteúdo: - Objetos gráficos planares. Instituto de Computação - UFF

Álgebra Linear I - Aula 4. Roteiro. 1 Determinantes (revisão rápida)

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

António Costa. Paulo Roma Cavalcanti

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

Computação Gráfica - 09

Professor: Anselmo Montenegro Conteúdo: Aula 2. - Primitivas Geométricas. Instituto de Computação - UFF

Visualização 3D. Soraia Raupp Musse

Análise e Complexidade de Algoritmos

Computação Gráfica e Processamento de Imagens. - Sistemas 3D (conceitos básicos) Prof. Julio Arakaki

Computação Gráfica Viewing

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

Domínio: Geometria. CONSELHO de DOCENTES 1.º Ciclo Página 1

BANCO DE EXERCÍCIOS - 24 HORAS

1º Exame Computação Gráfica

Modelagem Geométrica. André Tavares da Silva. Capítulo 12 do Foley Capítulo 4 de Azevedo e Conci Capítulo 11 de Mortenson

Computação Gráfica Introdução

Computação Gráfica - 09

- Plano Anual 4º Ano de Escolaridade -

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

1º Período MATEMÁTICA 4.º ANO. setembro. Domínios Conteúdos programáticos Objetivos/Descritores de desempenho

Plano Curricular de Matemática 4.º Ano - Ano Letivo 2016/2017

The Graphics Pipeline

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

FICHA de AVALIAÇÃO de MATEMÁTICA A 10.º Ano Versão 2

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. Agostinho Brito. Departamento de Engenharia da Computação e Automação Universidade Federal do Rio Grande do Norte

Reflexões e Sombras em Superfícies Planares Animação e Visualização Tridimensional Prof. João Madeiras Pereira Instituto Superior Técnico 2005/2006

Proposta de teste de avaliação

A Reta no Espaço. Sumário

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

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

Transformações 3D. Soraia Raupp Musse

ESTUDANDO MATEMÁTICA COM O AUXÍLIO DO GEOGEBRA UTILIZANDO AS JANELAS CAS E 3D

Geometria Computacional: Fecho convexo

PLANIFICAÇÃO ANUAL MATEMÁTICA 4º ANO

MORFOLOGIA MATEMÁTICA

Aula Orientação do espaço. Observação 1

Universidade de Aveiro Departamento de Electrónica, Telecomunicações e Informática. Transformações 2D

Rendering de Polígonos. Determinação de Superfícies Visíveis. Back Face Culling. Back Face Culling. Back Face Culling. Back Face Culling.

FICHA de AVALIAÇÃO de MATEMÁTICA A 10.º Ano Versão 3

PLANIFICAÇÃO ANUAL 2015/ º Ano Matemática. METAS Domínios/Conteúdos Objetivos Descritores de Desempenho

4. Curvas Paramétricas e Transformações 2D

4 º Ano Matemática. METAS Domínios/Conteúdos Objetivos Descritores de Desempenho

FICHA de AVALIAÇÃO de MATEMÁTICA A 10.º Ano de escolaridade Versão 1

TEMA / CONTEÚDOS OBJETIVOS / DESCRITORES DE DESEMPENHO AVALIAÇÃO GESTÃO DO TEMPO Contar até ao bilião (mil milhões).

FICHA de AVALIAÇÃO de MATEMÁTICA A 10.º Ano de escolaridade Versão 1

BANCO DE QUESTÕES MATEMÁTICA A 10. O ANO

Síntese de Imagem. Sistemas Gráficos/ Computação Gráfica e Interfaces FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

Técnico em Eletrônica Módulo I Eletrônica Digital (ED) - Prof. Samuel M. B. Cavalcante

Computação Gráfica - 10

Transcrição:

1 Introdução ao Processamento e Síntese de imagens Recorte 2D Fontes: Rogers, D. F. Procedural Elements for Computer Graphics Traina, A. J. M. & Oliveira, M. C. F. (2004) 2016

2 Recorte - (Clipping) Numa cena tridimensional, normalmente não é possível ver todas as superfícies de todos os objetos. Assim, essa técnica se preocupa em eliminar objetos ou partes deles não visíveis. Existem várias abordagens de recorte: Recorte da primitiva antes da conversão matricial - cálculo analítico das suas intersecções com o retângulo de recorte/visualização. Esses pontos de intersecção são os novos vértices da primitiva recortada. (Espaço Objeto) Conversão do polígono para o modo raster, mas traçar apenas os pixels visíveis no retângulo de visualização. Verificar cada pixel contra o retângulo de visualização. (Espaço Imagem)

3 Espaço do Objeto x Espaço da Imagem Métodos que trabalham no espaço do objeto Entrada e saída são dados geométricos Independente da resolução da imagem Menos vulnerabilidade a aliasing Rasterização ocorre depois Exemplos: Maioria dos algoritmos de recorte e culling Recorte de segmentos de retas Recorte de polígonos

4 Espaço do Objeto x Espaço da Imagem Métodos que trabalham no espaço da imagem Entrada é vetorial e saída é matricial Dependente da resolução da imagem Visibilidade determinada apenas em pontos (pixels) Podem aproveitar aceleração por hardware Exemplos: Z-buffer Algoritmo de Warnock Mapas de sombra

Recorte bidimensional 5 - definir quais pontos, linhas ou partes das linhas estão dentro da janela de recorte. Teste para ponto xl x xr e yb y yt YT os pontos nas bordas da janela pertencem a janela de visualização. XL YB XR

Teste para Linhas Linha ab: extremos dentro da janela linha toda dentro Linha gh: extremos fora da janela parte da linha na janela Linhas ij: os extremos estão totalmente a esquerda, a direita, acima ou abaixo da janela linhas invisiveis Reta análise dos extremos Posição na janela de Estado da reta Extremo 1 Extremo 2 recorte Dentro Dentro Reta interna Visível Dentro Fora Tem intersecção Parcialmente Visível Fora Fora 2 extremos à direita 2 extremos à esquerda 2 extremos acima Invisível 2 extremos abaixo Qualquer posição indefinida Os testes acima não eliminam as linhas: gh que são parcialmente visíveis e kl são totalmente invisiveis. 6

7 Dan Cohen e Ivan Sutherland desenvolveram um teste, usando uma codificação com 4 dígitos (bit), indicando qual das nove regiões contém o extremo da linha. Convenção: Quadro de visibilidade Não Não Não Não Sim Não Não Não Não - o bit + a direita é o 1 o bit - os bits recebem o valor zero ou um: 4 o 3 o 2 o 1 o - 1 o bit = 1, se o extremo da linha está à esquerda da janela, senão zero; - 2 o bit = 1, se o extremo da linha está à direita da janela, senão zero; - 3 o bit = 1, se o extremo da linha está abaixo da janela, senão zero; - 4 o bit = 1, se o extremo da linha está acima da janela, senão zero; - T 1001 1000 1010 0001 0000 0010 B 0101 0100 0110 L R

8 Desta forma o código da linha pode ser utilizado para eliminar linhas totalmente invisíveis, segundo o seguinte critério: TRUE = T, FALSE = F T e F = F 1 e 0 = 0 F e T = F F = 0 0 e 1 = 0 F e F = F T = 1 0 e 0 = 0 T e T = T 1 e 1 = 1 Assim, quando a interseção bit a bit (lógico) dos extremos não é zero linha é totalmente invisível, podendo se recortada. Quando a interseção lógica é zero a linha pode ser totalmente visível, parcialmente visível ou totalmente invisível.

9 Assim, para eliminar a dúvida devem-se analisar os códigos dos extremos das linhas isoladamente. i 3 e i g j 2 f i j a 4 h b j k c l d i j Fazer

Preencher com códigos dos extremos. 10 Linh a ab ij ij ij ij cd ef gh kl Código Inicio Fim Interseção Lógica Comentários

11 Linha Código Interseção inicio Fim Lógica Comentários ab 0000 0000 0000 Totalmente visível ij 0010 0110 0010 Totalmente invisível ij 1001 1000 1000 Totalmente invisível ij 0101 0001 0001 Totalmente invisível ij 0100 0100 0100 Totalmente invisível cd 0000 0010 0000 Parcialmente invisível ef 0001 0000 0000 Parcialmente invisível gh 0001 1000 0000 Parcialmente invisível kl 1000 0010 0000 Totalmente invisível

12 Para obter eficiência no processo de recorte deve-se realizar o procedimento por etapas: - 1 o : utilizando o algoritmo de código que eliminam as linhas totalmente visíveis, e as realmente invisíveis. - 2 o : combinando com um segundo procedimento, das quais alguns serão vistos.

13 Processo de interseção de linhas. Assim, as linhas que não podem ser identificadas passam por um novo processo. - uma reta pode ser definida por dois pontos P1(x1, y1) e P2(x2, y2) - cuja equação pode ser definida por: - y = m (x x1) + y1 ou y = m (x x2) + y2 onde: - m = (y2 y1)/(x2 x1)

Para encontrar a intersecção da reta com a janela de recorte. 14 Y t Y= m(x X 1 ) + Y 1 X l X r Y b a interseção com a aresta da janela é dada por: - esquerda xl, y = m (xl x1) + y1 - direita xr, y = m (xr x1) + y1 - Topo yt, x = (1/m) (yt y1) + x1 - Baixo yb, x = (1/m) (yb y1) + x1

15 Algoritmo sem otimizações força bruta: Verificar se os extremos estão dentro da janela de recorte sim: pintar a linha (Retas totalmente visível) verificar se os dois extremos da reta estão totalmente fora da janela de recorte os 2 à esquerda, ou os 2 à direita, ou os 2 acima ou os 2 baixo da arestas da janela não pintar a linha (Retas totalmente invisível) caso não atenda nenhum dos dois caso anteriores: o para cada aresta da janela calcular a interseção com cada reta, verificando se é válida (a interseção deve pertencer aos dois segmentos - aresta e reta) ; e

16 classificar as retas, conforme o número de interseções: 0, 1 ou 2. P1 P3 I2 I1 X l P2 P5 X r I3 Y t Y b P4 P6 0 (P5P6) reta não é visível não pintar 1 (P1P2) um ponto interno e outro externo: do ponto fora até a interseção não pintar; da interseção até o ponto interno (0000) pintar. o 2 (P3P4) dois pontos externos, gerar 3 retas; pintar o segmento entre as interseções não pintar dos extremos a interseção.

17 Recorte de linha para contornos convexos generalizados Pode ser aplicada em janelas de recorte giradas em relação ao sistema de coordenadas. Reta P1P2 pode ser escrita de forma paramétrica, que é independente do sistema de coordenadas. P(t) = P1 + (P2 - P1) t 0 t 1 (define um seg. de reta) x(t) = x1 + (x2 - x1) t 0 t 1 y(t) = y1 + (y2 - y1) t 0 t 1 Recorte utilizando uma janela retangular 1 das coordenadas de interseção é conhecida, só resta calcular a outra. t = (P(t) P1)/(P2 P1)

18 Y T x(t) = x1 + (x2 - x1) t y(t) = y1 + (y2 - y1) t X L X R Y B Para a janela: Aresta esq. tl = (xl x1)/(x2 x1) 0 t 1 Aresta dir. tr = (xr x1)/(x2 x1) 0 t 1 Aresta sup. tt = (yt y1)/(y2 y1) 0 t 1 Aresta inf. tb = (yb y1)/(y2 y1) 0 t 1

19 Reta com valor de t fora do campo (0 1) é descartada, ele representa ponto fora da janela de visualização. Exercício: Calcular os valores de tl, tr, tt e tb para as 2 retas.

Exemplo: linha P 1 (-3/2, -3/4) a P 2 (3/2, ½), janela de recorte (x L = -1, x R = 1, x B = -1, x T = 1) Valores de t = (t L = 1/6, t R = 5/6, t B = -1/5, t T = 7/5) Os valores 1/5 e 7/5 estão fora do intervalo, são rejeitados. Assim: 1/6 t 5/6 - substituindo estes extremos na equação da reta têm-se: t = 1/6 x = -1 e y = -13/24 t = 5/6 x = 1 e y = 7/24 Linha Parcialmente Visível P3(-5/2, -1) e P4(3/2, 2): t L = 3/8, t R = 7/8, t B = 0, t T = 2/3) ordenar crescente: 0, 3/8, 2/3, 7/8 Pegar máximo dos mínimos e mínimo dos máximos. 20

21 Problemas: quando as linhas são totalmente visíveis e totalmente invisíveis, pois, nos dois casos, todos os valores de t estão fora do intervalo. P 1 (-½, ½), P 2 (½, -½) P 3 (3/2, -½), P 4 (2, ½) 1 P4 - p/ P 1 P 2 : t (t L = -1/2, t R = 3/2, t B = 3/2, t T = -1/2) - p/ P 3 P 4 : t (t L = -5, t R = -1, t B = -1/2, t T = 3/2) -1 P1 1-1 P2 P3

22 Algoritmo sem otimizações 4 bits Subdivisão de Sutherland-Cohen para recorte de linha aplica-se o teste dos 4 bits (como programar isso?) Janela de recorte código dos bits YT V[i] = 0 p/ i=0;3 XL YB XR if(xi XL)v[3] = 1 if(xi < XL)v[3] = 1 if(xi XR)v[2] = 1 if(xi > XR)v[2] = 1 if(yi YB)v[1] = 1 ou if(yi < YB)v[1] = 1 if(yi YT)v[0] = 1 if(yi > YT)v[0] = 1

Divisão da reta em duas partes iguais ( 2) Divisão em bits: n o 6 0110, deslocado um bit para a direita = 0011 - n o 3 Tabela 1 Representação dos números nas bases binária e decimal. Base 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 binária Base 0 1 2 3 4 5 6 7 8 9 10 decimal Conversão base binária para decimal - b0*2 n + b1*2 n-1 + b2*2 n-2 +...+ bn-1*2 1 + bn*2 0 Onde: n é o número de dígitos menos 1; b0 é o dígito mais significativo; e bn é o bit menos significativo. Ex: 1 0 1 1 0 1 [n = 6-1 = 5]; val = 1*2 5 + 0*2 4 +1*2 3 +1*2 2 +0*2 1 + 1*2 0 = 45 Calcular o valor o número binário:1 1 0 1 1 1 59 23

Conversão base decimal para binária 1º início {a) nu = INT(nd/2); b) bit = nd nu*2;} nd base decimal 2º e demais operações fazer {a) e b)- com nd = nu } até o valor (nd=1) 3º o valor binário será definido pela concatenação dos bits: nd+bit (de cada divisão da última até a 1ª. Ex: 45 : nd = 45; nd 45 2= 22 2= 11 2= 5 2= 2 2= 1 bit 1 0 1 1 0 Resto de cada operação Número binário = 1 0 1 1 0 1 (contrário) Calcular o valor do número decimal: 67 1000011 24

Subdivisão do ponto médio Algoritmo muito eficiente para implementação em hardware, pois as operações de divisão e adição por 2 em hardware são muito rápidas. O algoritmo utiliza o código de linhas associada à técnica de dividir a linha em duas partes iguais. 25 Procedimento: um teste inicial é aplicado para detectar linhas visíveis, invisíveis ou parcialmente visíveis ou invisíveis; linhas para as quais o teste inicial falha, são divididas em duas partes iguais: - x m = (x 1 +x 2 )/2 y m = (y 1 +y 2 )/2

Reta f subdivisões produzem duas retas, um que é realmente invisível (que é excluído), e a outra com a mesma característica da original, o procedimento continua até que todos os segmentos sejam realmente invisíveis ou até atingir a precisão especificada. Reta c 1 a subdivisão produz dois segmentos com características semelhantes, parcialmente visíveis. O procedimento deve-se concentrar em um dos extremos, por vez, realizando novas subdivisões até que uns dos extremos dos segmentos de retas coincidam com uma das arestas da janela, dentro do critério de precisão. Este ponto é declarado o ponto visível mais distante do outro extremo. 26

Identificação de polígonos convexos Produto Vetorial: A identificação pode ser realizada pelo produto vetorial das arestas adjacentes. Analisando o sinal a partir do produto: - todos zero polígono colinear (linhas paralelas). - positivo e negativo polígono côncavo. - positivos ou zeros polígono convexo, ponto à direita da linha. - negativos ou zeros polígono convexo, ponto à esquerda da linha. (10,10) (10,10) (10,10) 27 (10,5) (9,5) (11,5) (10,0) (10,0) (10,0)

28 O produto vetorial de dois vetores planares, definido por três pontos (vértice central - V2) resulta em: n 1 - (x 1, y 1 ) 2 - (x 2, y 2 ) 3 - (x 3, y 3 ) n = [(x 1 - x 2 ) (y 2 - y 3 ) - (x 2 - x 3 ) (y 1 - y 2 )] k

Translação e rotação Algoritmo: - Para cada vértice do polígono, transladar o polígono de tal forma que i-ésimo vértice esteja na origem. - Rotacione o polígono de tal forma que o (i + 1)-ésimo vértice fique sobre o eixo x (positivo). - Examine o sinal do (i+2) ésimo vértice. - Se todas as coord. Y do (i+2) ésimo vértice tem o mesmo sinal o polígono é convexo; senão é côncavo. - Se todas as coord. Y do (i+2) ésimo vértice são nulos é um polígono degenerado (linha). - Em cada aresta do polígono, a normal interna tem componente y com o mesmo sinal do (i+2) ésimo vértice, e os outros iguais a zero. - Determinando a direção da normal original, somente a rotação inversa deve ser aplicada. 29

30

31