A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Computação Gráfica - Recorte

Apresentações semelhantes


Apresentação em tema: "Computação Gráfica - Recorte"— Transcrição da apresentação:

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

2 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

3 Recapitulando... (Conceito CG)

4 Recapitulando... (Modelagem Geométrica)

5 Recapitulando... (Modelagem Geométrica)

6 Recapitulando... (Modelagem Geométrica)

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

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

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

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

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

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

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

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

15 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

16 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

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

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

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

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

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

22 Algoritmo de Cohen-Sutherland

23 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; }

24 Algoritmo de Cohen-Sutherland

25 Algoritmo de Cohen-Sutherland

26 Algoritmo de Cohen-Sutherland

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

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

29 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

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

31 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

32 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

33 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

34 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

35 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 ?

36 Recorte de Polígonos Antes do recorte Depois do recorte

37 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

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

39 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

40 Algoritmo de Sutherland-Hodgeman

41 Algoritmo de Sutherland-Hodgeman

42 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

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

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

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

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


Carregar ppt "Computação Gráfica - Recorte"

Apresentações semelhantes


Anúncios Google