Computação Gráfica - Recorte

Slides:



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

RECORTE DE FIGURAS Algoritmo proposto para Recorte de Segmentos (atribuído a Ivan Sutherland e Dan Cohen) Para o entendimento do algoritmo a ser proposto,
Cálculo 3 9. Integrais Duplas Volumes Amintas Paiva Afonso
Ensino Superior Cálculo 2 3- Volume de Sólidos Amintas Paiva Afonso.
PREENCHIMENTO DE POLÍGONOS
Lógica Fuzzy Aplicada a Sistemas de Diagnóstico
Capítulo 3 - Aplicações das Derivadas
PERCEPTRON (CONTINUAÇÃO)
Rasterização, Anti-aliasing e Preenchimento
António Ramires Fernandes & Luís Paulo Santos – Adaptado por Alex F. V. Machado Computação Gráfica Pipeline Gráfico.
Projeções e OpenGL Alex F. V. Machado.
Computação Gráfica I Conteúdo: Professor: - Recorte 2D
Introdução à Computação Gráfica Recorte
Geometria Computacional Interseção de Segmentos
Interseção de Semiplanos
Geometria Computacional Fecho Convexo
Recorte e seleção de linhas e polígonos
INF 1366 – Computação Gráfica Interativa Clipping (Recorte)
Linha de produção de imagens com o OpenGL™ (OpenGL Rendering Pipeline)
Descarte por visibilidade
Listas com Ponteiros Listas encadeadas Listas circulares.
Ray Tracing.
Técnicas para algoritmos de superfície visível eficientes (Techniques for efficient visible-surface algorithms) Fabio Utzig Rodrigo Senger.
Análise do Lugar das Raízes
Aula 27 Funções Vetoriais e curvas Espaciais, Continuidade, Derivada e Integral.
2ª SÉRIE DO ENSINO MÉDIO – PROF. ILYDIO PEREIRA DE SÁ
Introdução à Computação Gráfica Projeções
MATEMÁTICA UNIDADE 1 Conteúdo: Geometria Espacial Duração: 10 40’ 28/01/14 AGRONEGÓCIO - TURMA 3º A Matemática – Geometria Espacial.
Colégio Estadual “Antenor Padilha”.
Geometria Espacial – CAp/UERJ
Computação Gráfica – Visibilidade
Computação Gráfica - Amostragem
Visualização Tridimensional (Câmera Sintética)
UNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO COMPUTAÇÃO GRÁFICA
Prismas.
Computação Gráfica – Visibilidade Profa. Mercedes Gonzales Márquez.
Estudo dos Poliedros.
Computação Gráfica – Transformações Projetivas
Computação Gráfica – Modelagem Geométrica
Computação Gráfica – Introdução ao OpenGL
Computação Gráfica - Amostragem Profa. Mercedes Gonzales Márquez.
Computação Gráfica – Modelagem Geométrica
AULA 1 – CÁLCULO COM GEOMETRIA ANALÍTICA II
Estudo dos Poliedros.
Computação Gráfica – Visibilidade Profa. Mercedes Gonzales Márquez.
Prof. Edison Oliveira de Jesus
Computação Gráfica - Amostragem Profa. Mercedes Gonzales Márquez.
Geometria Espacial – CAp/UERJ
Geometria Computacional Fecho Convexo
Figura 5 - O plano mostrando detalhes da projeção em perspectiva.
Geometria Computacional Prof. Walter Mascarenhas Segundo semestre de 2004 Aula 5.
CÁLCULO COM GEOMETRIA ANALÍTICA II Funções de várias variáveis
Introdução à Programação
PRISMAS Prof.: Iran.
Computação Gráfica – Visibilidade Profa. Mercedes Gonzales Márquez.
GEOMETRIA ESPACIAL PRISMAS.
Exercícios Faça um algoritmos para trocar uma lampada queimada.
Introdução à Computação Gráfica Visibilidade e Recorte
Computação Gráfica - Recorte Profa. Mercedes Gonzales Márquez.
Prof. Edison Oliveira de Jesus
Computação Gráfica - Amostragem Profa. Mercedes Gonzales Márquez.
Prismas Módulo 21 – Frente 4
Cálculo 2 Cálculo de volumes.
Introdução à Computação Gráfica Rasterização
Computação Gráfica - Introdução
Volume de Prismas Retos
Geometria plana Prof. Valdir Aguiar.
Geometria Espacial.
Área do Losango L L A = d1 . d2 2 d2 L L d1.
Transcrição da apresentação:

Computação Gráfica - Recorte Profa. Mercedes Gonzales Márquez

Tópicos Recapitulando... Conceito de Recorte Recorte de Pontos Recorte de Segmentos em Regiões Planares – Algoritmo de Cohen Sutherland Algoritmo de Cyrus-Beck Recorte de Polígonos em Regiões Planares – Algoritmo de Sutherland-Hodgeman

Recapitulando... (Conceito CG)

Recapitulando... (Modelagem Geométrica)

Recapitulando... (Modelagem Geométrica)

Recapitulando... (Modelagem Geométrica)

Recapitulando ... (Transformações Geométricas)

Recapitulando ... (Transformações Geométricas)

Recapitulando ... MODELAGEM GEOMETRICA 3D + TRANSFORMAÇÕES GEOMÉTRICAS = CENÁRIO 3D

Recapitulando ... CENÁRIO 3D IMAGEM SERÁ NECESSÁRIO PROJEÇÃO RECORTE AMOSTRAGEM REMOÇÃO DE SUPERFÍCIES ESCONDIDAS (VISUALIZAÇÃO) COLORIZAÇÃO (ILUMINAÇÃO E TEXTURIZAÇÃO)

Recapitulando ... CENÁRIO 3D IMAGEM SERÁ NECESSÁRIO: RECORTE PROJEÇÃO AMOSTRAGEM REMOÇÃO DE SUPERFÍCIES ESCONDIDAS (VISUALIZAÇÃO) COLORIZAÇÃO (ILUMINAÇÃO E TEXTURIZAÇÃO)

Recorte A técnica de recorte consiste na remoção das partes que não estejam dentro do volume de visão. Somente as figuras geométricas contidas na janela de visão devem aparecer.

Recorte Remover os pontos que estão fora do volume de visão se reduz, numericamente, em um problema de interseção entre os seus planos limitantes e as figuras geométricas de uma cena e classificação do resultado.

Recorte de Pontos Objeto: (x,y,z) Região Recortante: Região Retangular: (xmin,xmax,ymin,ymax) Volume Paralelipedal: (xmin,xmax,ymin,ymax,zmin,zmax)

Recorte de Pontos Objeto: (x,y,z) Região Recortante: Região Retangular: (xmin,xmax,ymin,ymax) Um ponto (x, y), estará dentro do retângulo de visualizacao, se: xmin ≤ x ≤ xmax ymin ≤ y ≤ ymax

Recorte de Segmentos em Regiões Planares Objeto: segmentos de reta Região Recortante: Região Retangular: (xmin,xmax,ymin,ymax) Algoritmos de Recorte de Segmentos em Regiões Planares ou Recorte 2D – Algoritmo de Cohen Sutherland Algoritmo de Cyrus-Beck

Recorte de Segmentos em Regiões Planares ou Recorte 2D

Algoritmo de Cohen-Sutherland O algoritmo de Cohen-Sutherland se baseia em dois fatos: um segmento está totalmente contido em uma região, se e somente se, os seus pontos extremos estão contidos nela, um segmento está totalmente fora de uma região, se os seus pontos extremos estiverem em um semi-plano que não contém a região.

Algoritmo de Cohen-Sutherland Cohen e Sutherland dividiram o espaço em sub-espaços a partir da região de interesse e atribuíram um código para cada sub-espaço.

Algoritmo de Cohen-Sutherland Se aplicarmos uma operação lógica AND, bit a bit, entre os códigos dos dois pontos extremos de um segmento teremos as seguintes possíveis situações: 1. os códigos dos pontos extremos e do resultado são 0000: o segmento está contido na região; 2. o resultado é diferente de zero: o segmento está totalmente fora da região; e 3. o resultado é 0000 embora os códigos dos pontos extremos não sejam: é indecidível a pertinência do segmento à região.

Algoritmo de Cohen-Sutherland O que faremos no caso 3?

Algoritmo de Cohen-Sutherland  

Algoritmo de Cohen-Sutherland unsigned char code(double x, double y,double xmin, double xmax, double ymin, double ymax){ unsigned char code=0; if (y > ymax) code += 8; if (y < ymin) code += 4; if (x > xmax) code += 2; if (x < xmin) code += 1; return code; }

Algoritmo de Cohen-Sutherland

Algoritmo de Cohen-Sutherland

Algoritmo de Cohen-Sutherland

Algoritmo de Cohen-Sutherland Teste o programa Cohen-Sutherland para a seguinte região recortante e para os seguintes segmentos: Xmin=-3, xmax=5, ymin=-3, ymax=3 P0=(0,1) e P1=(4,5) P0=(4,6) e P1=(7,2) P0=(0,0) e P1=(3,2) P0=(-4,5) e P1=(-1,4) P0=(3,-4) e P1=(6,-2)

Algoritmo de Cyrus-Beck Objeto: segmentos de reta Região Recortante: Convexa Princípio Básico: - Uso da representação paramétrica da reta. - Uso do conceito de vetor normal das arestas da região de recorte para determinar a que lado da aresta o ponto se encontra.

Algoritmo Cyrus-Beck A Figura abaixo mostra uma aresta Ei da região de recorte,o vetor normal Ni que aponta para fora, e o segmento P0 a P1. Fora da região Dentro da região PEi P1 3 P0 2 1 Ni 1. Ponto fora da região 2. Ponto na interseção com a aresta 3. Ponto dentro da região

Algoritmo Cyrus-Beck Só os pontos cujo t está no intervalo [0,1] estão contidos no segmento de reta. X3 (t>1) X2 (0<t<1) X1 (t<0)

Algoritmo Cyrus-Beck P1 P0 Dado um polígono recortante de n arestas Ei e um segmento P0P1, sua reta suporte interseta as n retas induzidas pelas arestas do polígono (caso geral). Quando n =4 (retângulo) calculamos os quatro valores do parâmetro t no qual a reta interseta as quatro retas laterais do retângulo de recorte. P1 P0

Algoritmo Cyrus-Beck Usamos a equação para encontrar as interseção com a aresta Ei. Após calcular o valor de t para as quatro retas descartamos os valores de t fora do intervalo [0,1]. PEi P1 P0 Ni

Algoritmo Cyrus-Beck Classificamos as interseções restantes em: - Potencialmente Entrando (PE) - Potencialmente Saindo (PL) implica PE → implica PL → Ei P1 P0 Ni Ei P0 P1 Ni

Algoritmo Cyrus-Beck Para cada reta: Ache o PE com maior t (PEm) Ache o PL com menor t (PLM) Se PEm<PLM recorte nesses 2 pontos

Algoritmo Cyrus-Beck Troque o segmento a ser recortado e o polígono recortante no programa cyrus-beck.cpp pelos segmentos A, B e C e o polígono recortante da figura anterior. Dê a fórmula para obter o vetor normal de uma aresta do polígono. Em quais situações ?

Recorte de Polígonos Antes do recorte Depois do recorte

Algoritmo de Sutherland-Hodgeman Princípio Básico: Considerar individualmente cada aresta da região recortante. Recortar o polígono pela equação da aresta. Depois de fazer isso para todas as arestas, o polígono estará completamente recortado. Polígono Original Recorte esquerdo direito inferior Superior

Algoritmo de Sutherland-Hodgeman Entrada/Saída do algoritmo Entrada: lista ordenada de vértices do polígono Saída: lista dos vértices recortados, com alguns vértices originais (possivelmente) e outros novos (possivelmente)

Algoritmo de Sutherland-Hodgeman Aresta de s a p se enquadra em um dos 4 casos: Dentro Fora Dentro Fora Dentro Fora Dentro Fora s p i s p p s i p s Copiar p Copiar i Ignorar Copiar i,p

Algoritmo de Sutherland-Hodgeman

Algoritmo de Sutherland-Hodgeman

Algoritmo de Sutherland-Hodgeman vf3 vf0 vf1 vf2 0 1 1 0 vd1 vd0 vd2 vd3 vf0 0 vd0 0 vf1 vf2 1vd1 vd2 vd3 1 vf3vf0 0 vd0 0 0 e 1 vd1 vd2 vd3 1 1

Algoritmo de Sutherland-Hodgeman 1 0 1 0 vd1 vd0 vd2 vd3

Algoritmo de Sutherland-Hodgeman vd0 vf0 vf3 vd2 vf1 0 vd1 vd3 vf2 0

Algoritmo de Sutherland-Hodgeman vd0 vd2 0 vd1 vd3 0

Algoritmo de Sutherland-Hodgeman Exercício: (1) Mostre passo a passo como seria a saída do recorte do seguinte polígono. (2) Você poderia rodar o exemplo (1) usando o programa SutherlandHodgman.cpp postado no site? Quais modificações deverão ser feitas ?. Faça-as.