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

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

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

Introdução à Computação Gráfica Visibilidade e Recorte

Algoritmos de Recorte em 2D

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

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

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

Pipeline Gráfico Cluter & Durand, MIT

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

RECORTE (CLIPPING) por janelas rectangulares

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

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

de Recta e Polígonos

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

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

Objetos definidos no seu próprio sistema de coordenadas

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

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

Remoção de Faces Traseiras Recorte

Pipeline de Visualização 3D

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

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

Algoritmos de Visibilidade. Computação Gráfica Visibilidade. Backface Culling. Outras abordagens. Renato Ferreira

Arranjos. Claudio Esperança Paulo Roma LCG/UFRJ. All rights reserved.

Interseção de Semiplanos

Pipeline de Visualização 2D

Ponto em Polígono. António Leslie Bajuelos Departamento de Matemática Universidade de Aveiro

Poliedros 1 ARESTAS FACES VERTICES. Figura 1.1: Elementos de um poliedro

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

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

Determinação de Superfícies Visíveis

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

Geometria Descritiva 28/08/2012. Elementos Primitivos da Geometria

Algoritmos geométricos

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

Visualização 3D. Soraia Raupp Musse

d) Por dois pontos distintos passa uma única reta

GEOMETRIA MÉTRICA ESPACIAL

Aula 4: Clipping (Recorte)

FCTUNIVERSIDADE NOVA DE LISBOA!

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

Geometria Espacial Profº Driko

Geometria Computacional: Fecho convexo

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

Noções de Geometria. Professora: Gianni Leal 6º B.

Algoritmos de Rasterização e Recorte

Recorte e seleção de linhas e polígonos

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

PROPOSTA DIDÁTICA. 3. Desenvolvimento da proposta didática (10 min) - Acomodação dos alunos, apresentação dos bolsistas e realização da chamada.

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

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

The Graphics Pipeline

Computação Gráfica II

PARTE I - INTRODUÇÃO

Análise e Complexidade de Algoritmos

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

Geometria Computacional: Polígonos

Computação Gráfica - OpenGl 02

Transformações 3D. Soraia Raupp Musse

Geometria Analítica. Geometria Analítica Geometria É importante compreender a geometria, para dar resposta a questões como: 15/08/2012

5. Invólucros Convexos no Plano

Resumo. Maria Bernardete Barison apresenta Prisma em Geometria Descritiva. Geométrica vol.2 n PRISMA

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

Revisão. Soraia Raupp Musse

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

Computação Gráfica - 11

Geometria Descritiva Básica (Versão preliminar)

Geometria Computacional

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

Geometria Analítica. Cônicas. Prof Marcelo Maraschin de Souza

Geometria Computacional Primitivas Geométricas. Claudio Esperança Paulo Roma Cavalcanti

Geometria Descritiva. Revisão: Polígonos regulares/irregulares. Linhas e Pontos pertencentes a Faces/Arestas de Poliedros

1º Exame Computação Gráfica

Aula 9 Representação e Descrição. Profa. Fátima Nunes AULA 9 / 1. Profa. Fátima L. S. Nunes

U. E. PROF. EDGAR TITO - Turma: 2º ano A Prof. Ranildo Lopes Obrigado pela preferência de nossa ESCOLA!

Desenho Técnico. Aula 02

Capitulo 4 Figuras Geométricas Planas

Projeto Testes Intermédios 2017/2018

Transformações 3D. Soraia Raupp Musse

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

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

Nº Nome: Antes de começar: Identifique todas as folhas com o seu número.

Posições relativas entre elementos geométricos no espaço

Modelação de Sólidos. Sistemas Gráficos/ Computação Gráfica e Interfaces FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

USP Universidade de São Paulo

MATEMÁTICA MÓDULO 16 CONE E CILINDRO. Professor Haroldo Filho

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

OS PRISMAS. 1) Definição e Elementos :

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).

VISUALIZAÇÃO EM 3D. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR

GEOMETRIA ANALI TICA PONTO MEDIANA E BARICENTRO PLANO CARTESIANO DISTÂNCIA ENTRE DOIS PONTOS CONDIÇÃO DE ALINHAMENTO DE TRÊS PONTOS

Histórico. Estado da Arte. Histórico. Modelagem de Objetos. Modelagem por arames (wireframes). Modelagem por superfícies (década de 60).

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

Exame Final Nacional de Geometria Descritiva A Prova ª Fase Ensino Secundário º Ano de Escolaridade

ln(x + y) (x + y 1) < 1 (x + y 1)2 3. Determine o polinômio de Taylor de ordem 2 da função dada, em volta do ponto dado:

Projeções de entidades geométricas elementares condicionadas por relações de pertença (incidência) 8

2 Conceitos básicos de topologia

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

Introdução 20. Figura 1.1 Interseção entre malhas de superfícies [8]. Figura 1.2 Caso patológico de interseção de superfícies [6].

Transcrição:

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

O Problema de Recorte Dada uma superfície M fechada de codimensão 1 do R n, o complemento de M, (R n -M), possui duas componentes conexas. Se S é um subconjunto do R n, chama-se de recorte de S por M à operação que consiste em determinar os subconjuntos de S que estão em cada uma das componentes conexas.

Recorte (Clipping( Clipping) Problema definido por: Geometria a ser recortada Pontos, retas, planos, curvas, superfícies Regiões de recorte Janela (2D) Volume de visibilidade Frustum (tronco de pirâmide) Paralelepípedo Polígonos Convexos Genéricos (côncavos, com buracos, etc)

Resultado Depende da geometria: Pontos: valor booleano (visível / não visível) Retas: segmento de reta ou coleção de segmentos de reta Planos: polígono ou coleção de polígonos

Recorte de Segmento de Reta x Retângulo Problema clássico 2D Entrada: Segmento de reta P 1 - P 2 Janela alinhada com eixos (xmin, ymin) - (xmax, ymax) Saída: Segmento recortado (possivelmente nulo) Variantes Cohen-Sutherland Liang-Barksy / Cyrus-Beck Nicholl-Lee-Nicholl

Cohen-Sutherland A janela é definida pela interseção de 4 semi-planos: ymin y ymax e xmin x xmax Os vértices do segmento são classificados em relação a cada semi-plano que delimita a janela, gerando um código de 4 bits: Bit1 = (y > ymax) Bit2 = (y < ymin) Bit3 = (x < xmin) Bit4 = (x > xmax) Se ambos os vértices forem classificados como fora, descartar o segmento (totalmente invisível) Se ambos forem classificados como dentro, testar o próximo semi-plano Se um vértice estiver dentro e outro fora, computar o ponto de interseção Q e continuar o algoritmo com o segmento recortado (P 1 -Q ou P 2 -Q)

Códigos

Cohen-Sutherland ymax ymin xmin xmax

Cohen-Sutherland ymax ymin xmin xmax

Cohen-Sutherland ymax ymin xmin xmax

Cohen-Sutherland ymax ymin xmin xmax

Cohen-Sutherland ymax ymin xmin xmax

Cohen-Sutherland - Detalhes Recorte só é necessário se um vértice estiver dentro e outro estiver fora Classificação de cada vértice pode ser codificada em 4 bits, um para cada semi-plano Dentro = 0 e Fora = 1 Rejeição trivial: 3 4 1000 Classif(P 1 ) & Classif(P 2 ) 0 Aceitação trivial: 1 Classif(P 1 ) Classif(P 2 ) = 0 Interseção com quais semi-planos? 2 Classif(P 1 ) ^ Classif(P 2 ) 0101

Algoritmo de Liang-Barsky Refinamento que consiste em representar a reta em forma paramétrica É mais eficiente visto que não precisamos computar pontos de interseção irrelevantes Porção da reta não recortada deve satisfazer x y min min x 1 y 1 t Δ x x t Δ y y max max x y x 2 y 2 x 1 y 1

Algoritmo de Liang-Barsky Linha infinita intercepta semi-espaços planos para os seguintes valores do parâmetro t: q onde k tk p 1 x q 1 x 1 x min pk p 2 x q 2 x max x 1 p 3 y q 3 y 1 y min p 4 y q 4 y max y 1

Algoritmo de Liang-Barsky Se p k < 0, à medida que t aumenta, reta entra no semi-espaço plano Se p k > 0, à medida que t aumenta, reta sai do semi-espaço plano Se p k = 0, reta é paralela ao semi-espaço plano (recorte é trivial) Se existe um segmento da reta dentro do retângulo, classificação dos pontos de interseção deve ser entra, entra, sai, sai

Algoritmo de Liang-Barsky Entra Sai Sai Sai Sai Entra Entra Entra

Liang-Barsky Pseudo-código Computar valores de t para os pontos de interseção Classificar pontos em entra ou sai Vértices do segmento recortado devem corresponder a dois valores de t: t min = max (0, t s do tipo entra) t max = min (1, t s do tipo sai) Se t min <t max, segmento recortado é não nulo Computar vértices substituindo os valores de t Na verdade, o algoritmo calcula e classifica valores de t um a um Rejeição precoce Ponto é do tipo entra mas t > 1 Ponto é do tipo sai mas t < 0

Recorte de Polígono contra Retângulo Inclui o problema de recorte de segmentos de reta Polígono resultante tem vértices que são Vértices da janela, Vértices do polígono original, ou Pontos de interseção aresta do polígono/aresta da janela Dois algoritmos clássicos Sutherland-Hodgman Figura de recorte pode ser qualquer polígono convexo Weiler-Atherton Figura de recorte pode ser qualquer polígono

Recorte de Polígono contra Retângulo Casos Simples Casos Complicados

Algoritmo de Sutherland-Hodgman Idéia é semelhante à do algoritmo de Sutherland-Cohen Recortar o polígono sucessivamente contra todos os semi-espaços planos da figura de recorte

Algoritmo de Sutherland-Hodgman Polígono é dado como uma lista circular de vértices Vértices e arestas são processados em seqüência e classificados contra o semi-espaço plano corrente Vértice: Dentro: copiar para a saída Fora: ignorar Aresta Intercepta semi-espaço plano (vértice anterior e posterior têm classificações diferentes) : Copiar ponto de interseção para a saída Não intercepta: ignorar

Algoritmo de Sutherland-Hodgman Fora Dentro Fora Dentro Fora Dentro Fora s p p i s p s i p s Copiar p Copiar i Ignorar Copiar i,p

Sutherland-Hodgman Exemplo

Sutherland-Hodgman Exemplo

Sutherland-Hodgman Exemplo

Sutherland Hodgman Eliminando Arestas Fantasmas Distinguir os pontos de interseção gerados De dentro para fora: rotular como do tipo De fora para dentro: rotular como do tipo β Iniciar o percurso de algum vértice fora Ao encontrar um ponto de interseção, ligar com o último β visto Resultado pode ter mais de uma componente conexa Dentro β Fora

Sutherland Hodgman Eliminando Arestas Fantasmas Exemplo

Sutherland Hodgman Eliminando Arestas Fantasmas Exemplo

Sutherland Hodgman Eliminando Arestas Fantasmas Exemplo

Sutherland-Hodgman - Resumo Facilmente generalizável para 3D Pode ser adaptado para implementação em hardware Cada vértice gerado pode ser passado pelo pipeline para o recorte contra o próximo semiespaço plano Pode gerar arestas fantasma Irrelevante para propósitos de desenho Podem ser eliminadas com um pouco mais de trabalho

Algoritmo de Weiler-Atherton Recorta qualquer polígono contra qualquer outro polígono Pode ser usado para computar operações de conjunto com polígonos União, Interseção, Diferença Mais complexo que o algoritmo de Sutherland-Hodgman Idéia: Cada polígono divide o espaço em 3 conjuntos Dentro, fora, borda Borda de cada polígono é duplicada Uma circulação corresponde ao lado de dentro e outra ao lado de fora Nos pontos de interseção, é preciso costurar as 4 circulações de forma coerente

Algoritmo de Weiler-Atherton Interior do polígono à esquerda da seta (circulação anti-horária) A B

Algoritmo de Weiler-Atherton Exterior do polígono à direita da seta (circulação horária) A B

Algoritmo de Weiler-Atherton Pontos de interseção são calculados A B

Algoritmo de Weiler-Atherton Circulações são costuradas

Algoritmo de Weiler-Atherton A B Circulações são classificadas B A A B A B (A B)