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

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

Remoção de Faces Traseiras Recorte

RECORTE (CLIPPING) por janelas rectangulares

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

de Recta e Polígonos

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

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

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

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

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

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

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

1º Teste de Computação Gráfica

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

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

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

Pipeline Gráfico Cluter & Durand, MIT

1º Exame. Computação Gráfica

CG 2013/2014 Segundo Teste LEIC Alameda/Taguspark

1º Exame Computação Gráfica

1º Exame. Computação Gráfica

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

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

Exame Tipo 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.

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

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

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

Câmara Virtual. Licenciatura em Engenharia Informática e de Computadores Computação Gráfica. Edward Angel, Cap. 5 Apontamentos CG

CG 2015/2016 Segundo Teste LEIC Alameda/Taguspark. Segundo Teste. 18 de Novembro de 2015

Pipeline de Visualização 3D

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

Objetos definidos no seu próprio sistema de coordenadas

1º Teste Computação Gráfica

Computação Gráfica. Licenciatura em Engenharia Informática e de Computadores Alameda/Taguspark. 2º Exame 15 de Julho de 2010

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

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

1º Teste / 2º Teste / 2º Exame. Computação Gráfica. 1ª Parte (1º Teste)

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

Algoritmos de Recorte em 2D

2º Exame de Computação Gráfica

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

Determinação da Visibilidade

Pipeline de Visualização Câmara Virtual

Pipeline de Visualização Câmara Virtual

Algoritmos de Rasterização e Recorte

Transformações 3D. Soraia Raupp Musse

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

2º Exame. Computação Gráfica

Visualização 3D. Soraia Raupp Musse

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

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

Pipeline de Visualização 2D

Thanks to Isabel Harb Manssour Marcelo Cohen

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

Triangulação Mapeamento em Viewport Modelação Geométrica

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

Revisão. Soraia Raupp Musse

Visualização e Projeções

Ray-Tracing. Licenciatura em Engenharia Informática e de Computadores Computação Gráfica. Edward Angel, Cap. 13 Apontamentos CG

Câmara Virtual Simples

Análise e Complexidade de Algoritmos

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

Ray-Tracing. Licenciatura em Engenharia Informática e de Computadores Computação Gráfica. Edward Angel, Cap. 13 Apontamentos CG

Modelos Geométricos Transformações

Realismo Visual. Aula 11 UFF

FCTUNIVERSIDADE NOVA DE LISBOA!

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

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

Transformações Geométricas

Transformações Geométricas

Shading (sombreamento) & Smooth Shading

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

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

Determinação de Superfícies Visíveis

Transformações 3D. Soraia Raupp Musse

Pipeline de Visualização Câmara Virtual

Sistemas Gráficos e Modelos

1º Exame/2º Teste Computação Gráfica

Shading (sombreamento) & Smooth Shading

Transformações 3D. Soraia Raupp Musse

Detecção de Colisões entre Pares de Poliedros Rígidos Aplicada ao Projeto ASIMOV. por Anderson Maciel

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

The Graphics Pipeline

Pipeline de Visualização Câmara Virtual

Computação Gráfica - 09

Representação de Objectos. & Estruturas de Dados. ! Os modelos são cada vez mais complexos

2º Exame de Computação Gráfica 2º Ano

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

Computação Gráfica - 09

Visibilidade. Antonio L. Bajuelos Departamento de Matemática Universidade de Aveiro

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

CG 2013/2014 Primeiro Teste LEIC Alameda/Taguspark

2 Estratégias Algoritmicas

5. Invólucros Convexos no Plano

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

Transcrição:

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

Matéria Primeiro Teste 26 de Outubro 2013 Tudo até Sombreamento (inclusivé) 26/10-9h00 Alameda (Q01) e Tagus (A2)

LEIC CG Remoção de Faces Traseiras e Recorte Back-Face Culling

Faces Traseiras Requisitos Objecto é um poliedro sólido faces poligonais envolvem o volume O interior não é exposto pelo recorte Conclusão Faces traseiras não são visíveis Faces Traseiras? Solução Identificar faces traseiras Remover da cena

Faces Traseiras Requisitos Objecto é um poliedro sólido faces poligonais envolvem o volume O interior não é exposto pelo recorte Conclusão Faces traseiras não são visíveis Faces Traseiras? Solução Identificar faces traseiras Remover da cena

Identificar Faces Traseiras Como identificar faces traseiras? Calcular o ângulo entre a normal e a VPN? N N V Front-Face > 90 o < 90 o Back-Face Não é eficiente!

Identificar Faces Traseiras Como identificar faces traseiras? Usar produto interno Normal ao polígono (N) Vector de visualização (V) < 0 Polígono visível = 0 Arestas visíveis > 0 Polígono invisível (back-face) Cálculos em coordenadas de visualização (VRC) N N V Front-Face > 90 o < 90 o Back-Face

Identificar Faces Traseiras Como identificar faces traseiras? Usar produto interno ( N V > 0 back-face) Cálculos em coordenadas da câmara (VRC) É mesmo necessário calcular o produto interno? Não! Basta verificar a componente Z da normal!! N Z > 0 back-face N N Z Front-Face > 90 o < 90 o V Back-Face

Remover Faces Traseiras Cena com umpoliedro convexo RSO fica completa com back-face culling Em poliedros côncavos Algumas front-facespodem estar totalmente ocultas (E) parcialmente ocultas (C) z A B D C H E F G x

Back-Face Culling Remoção de faces traseiras Remove (aprox.) metade dos polígonos Limitações Apenas funciona em Modelos sólidos Definidos com malhas poligonais Para volumes não convexos Apenas serve como passo de pré-processamento É necessário usar outro algoritmo Objectos definidos com outra representação: Convertidos em malhas poligonais

Pipeline de Visualização 3D

Pipeline de Visualização 3D

LEIC CG Remoção de Faces Traseiras e Recorte Recorte

Volume de Visualização Sobre que volume de visualização é feito o recorte? Volume Perspectivo (Frustum)? Volume Ortogonal? Volume Canónico Perspectivo? Volume Canónico Ortogonal? Onde estamos no pipeline 3D? 2º Andar, 3º Passo Recorte de Polígonos Qual o volume de visualização Que temos neste ponto?

Recorte (2/3) Elimina primitivas fora do volume canónico Objectos, vértices, arestas e faces

Recorte (3/3) Vértices: Comparar xe ycom +/-1 zcom 0 e 1 Conservar se dentro dos limites, eliminar se fora Arestas Calcular intersecção com planos de recorte Determinar valores x, y, z na intersecção Conservar parte da aresta dentro do volume Recorte 3D extensão trivial de recorte 2D

LEIC CG Remoção de Faces Traseiras e Recorte Recorte 2D

Recorte de Linhas F D E F Rectângulo de Recorte B A G C G I D I H J H J Recorte A B C G D H (x min X X max ) e (Y min Y Y max ) ponto dentro Extremos dentro [AB]: segmento dentro Um fora outro dentro [CD] Determinar ponto de intersecção [D ] Rejeitar exterior Ambos fora [GH ou IJ]: Determinar pontos de intersecção se houver [GH], usá-los rejeitar se não [IJ]

Recorte de Linhas: Força Bruta Testar extremos contra rectângulo de recorte Tratar os casos triviais de inclusão total Casos não triviais: usar equação paramétrica da recta X = X 0 + t (X 1 - X 0 ) Y = Y 0 + t (Y 1 - Y 0 ) Resolver equações simultâneas segmento de recta (t line ) 4 lados do rectângulo (t edge ) Existe intersecção se: 0 t line 1 e 0 t edge 1

LEIC CG Remoção de Faces Traseiras e Recorte Algoritmo de Cohen-Sutherland

Algoritmo de Cohen-Sutherland (1/5) Usa Outcodes divide plano em 9 regiões 1001 1000 1010 1º Bit: Acima do lado superior (Y > Ymax) 0001 0000 0010 2º Bit: Abaixo do lado inferior (Y < Ymin) 3º Bit: À direita do lado direito (X > Xmax) 0101 0100 0110 4º Bit: À esquerda do lado esquerdo (X < Xmin) Casos triviais: OC 1 = OC 0 = 0000 => aceita OC 1 & OC 0 0000 => rejeita (semiplano ext.)

Algoritmo de Cohen-Sutherland (2/5) Restantes Casos (OC 1 & OC 0 = 0) Subdividir segmento inicial: Corte através de um lado da janela atravessado Partir de um extremo exterior Testar outcode para escolher próximo lado de recorte (bit a 1) Descartar o fragmento exterior Se fragmento interior trivialmente tratável o processo termina. Caso contrário, subdividi-lo repetir o processo.

Algoritmo de Cohen-Sutherland (3/5) Exemplo D 1000 1010 1001 0000 B A Rectangulo de Recorte 0010 0100 Recorte de [AD] Subdividir pelo lado superior [AB] e [BD]. Descartar fragmento exterior [BD]. Aceitar trivialmente [AB](OC A = OC B = 0)

Algoritmo de Cohen-Sutherland (4/5) Exemplo 1000 1010 1001 I 0000 H G Rectangulo de Recorte 0010 0100 F E Partir de E e subdividir por baixo [EF] e [FI] Descartar [EF] [FI] não trivial Subdividir [FI] pelo lado superior [FH] e [HI]. Descartar [HI] [FH] não trivial (OC H = 0010). Subdividir [FH] pelo lado direito [FG] e [GH]. Descartar [GH] Aceitar [FG](OC F = OC G = 0).

LEIC CG Recorte 2D Recorte de Polígonos

Recorte de Polígonos

Recorte de Polígonos Lados do Polígono testados com arestas de recorte Lados iniciais podem ser: trivialmente aceites, rejeitados ou subdivididos Podem surgir novos lados colineares com arestas de recorte O resultado final pode ser um ou mais polígonos

Recorte de Polígonos

Algoritmo de Sutherland-Hodgman (1/4) Abordagem Dividir para Reinar Recortes sucessivos do polígono por aresta infinita Quatro passos (um para cada aresta)

Algoritmo de Sutherland-Hodgman (2/4) Quatro passos (um para cada aresta) Em cada passo: Entrada = cadeia de vértices (V 1, V 2,, V n ) Resultado = nova cadeia de vértices (polígono recortado) Resultado do passo N= Entrada do N+1 Passo 1: LeftClip

Algoritmo de Sutherland-Hodgman (2/4) Quatro passos (um para cada aresta) Em cada passo: Entrada = cadeia de vértices (V 1, V 2,, V n ) Resultado = nova cadeia de vértices (polígono recortado) Resultado do passo N= Entrada do N+1 Passo 2: Top Clip

Algoritmo de Sutherland-Hodgman (2/4) Quatro passos (um para cada aresta) Em cada passo: Entrada = cadeia de vértices (V 1, V 2,, V n ) Resultado = nova cadeia de vértices (polígono recortado) Resultado do passo N= Entrada do N+1 Passo 3: Right Clip

Algoritmo de Sutherland-Hodgman (2/4) Quatro passos (um para cada aresta) Em cada passo: Entrada = cadeia de vértices (V 1, V 2,, V n ) Resultado = nova cadeia de vértices (polígono recortado) Resultado do passo N= Entrada do N+1 Passo 4 : BottomClip

Algoritmo de Sutherland-Hodgman (3/4) Executa o chamado pipeline clipping Quatro andares de clipping Um para cada aresta Pode-se aplicar o Cohen-Sutherland Aresta a aresta Left Clip Top Clip Bottom Clip Right Clip

Algoritmo de Sutherland-Hodgman (4/4) Inserção de pontos Interior Exterior Interior Exterior Interior Exterior Interior Exterior P S S P I I P S P S Caso 1: Caso 2: Caso 3: Caso 4: Inserir ponto P Inserir ponto I Não insere pontos Insere primeiro I Insere depois P Pode gerar falsos lados (remover a posteriori)

Algoritmo de Sutherland-Hodgman (EXEMPLO)

Algoritmo de Sutherland-Hodgman (EXEMPLO) P 0 P 1 P 4 P 5 P 0 P 5 P 4 P 1 Left Clip

Algoritmo de Sutherland-Hodgman (EXEMPLO) P 0 P 1 P 4 P 5 P 0 P 5 P 4 P 1 Left Clip [P 0 P 1 ] Não insere ponto

Algoritmo de Sutherland-Hodgman (EXEMPLO) P 0 P 1 P 4 P 5 P 0 P 5 P 4 P 1 I 0 I 0 Left Clip [P 1 ] Insere pontos I 0

Algoritmo de Sutherland-Hodgman (EXEMPLO) P 0 P 1 P 4 P 5 P 0 P 5 P 4 P 1 P I 2 0 I 0 Left Clip [ ] Insere ponto

Algoritmo de Sutherland-Hodgman (EXEMPLO) P 0 P 1 P 4 P 5 P 0 P 5 P 4 P 1 P I 2 0 I 0 Left Clip [ P 4 ] Insere ponto

Algoritmo de Sutherland-Hodgman (EXEMPLO) P 0 P 1 P 4 P 5 P 0 P 4 P 5 P 1 I 2 I P 1 3 P I 2 0 I 0 Left Clip [P 4 P 5 ] Não insere ponto

Algoritmo de Sutherland-Hodgman (EXEMPLO) P 0 P 1 P 4 P 5 P 0 P 5 P 4 P 1 I 2 P I 2 0 I 0 I 2 Left Clip [P 5 ] Insere pontos I 2 e

Algoritmo de Sutherland-Hodgman (EXEMPLO) P 0 P 1 P 4 P 5 P 0 P 5 P 4 P 1 I 2 P I 2 0 I 0 I 2 Left Clip [ ] Insere ponto

Algoritmo de Sutherland-Hodgman (EXEMPLO) P 0 P 1 P 4 P 5 P 0 P 5 P 4 P 1 I 7 I 2 P I 2 0 I 0 I 2 I 3 Left Clip [ P 0 ] Insere ponto I 3

Algoritmo de Sutherland-Hodgman (EXEMPLO) I 0 I 2 I 3 I 3 P I 5 2 I 0 Top Clip Resultado após Left Clip

Algoritmo de Sutherland-Hodgman (EXEMPLO) I 0 I 2 I 3 I 3 P I 5 2 I 0 Top Clip [I 0 ] Insere ponto

Algoritmo de Sutherland-Hodgman (EXEMPLO) I 0 I 2 I 3 I 3 P I 5 2 I 0 Top Clip [ ] Insere ponto

Algoritmo de Sutherland-Hodgman (EXEMPLO) I 0 I 2 I 3 I 3 P I 5 2 I 0 Top Clip [ ] Insere ponto

Algoritmo de Sutherland-Hodgman (EXEMPLO) I 0 I 2 I 3 I 3 P I 5 2 I 4 I 0 I 4 Top Clip [ I 2 ] Insere ponto I 4

Algoritmo de Sutherland-Hodgman (EXEMPLO) I 0 I 2 I 3 I 3 P I 5 2 I 4 I 5 I 0 I 4 I 5 Top Clip [I 2 ] Insere pontos I 5 e

Algoritmo de Sutherland-Hodgman (EXEMPLO) I 0 I 2 I 3 I 3 P I 5 2 I 4 I 5 I 0 I 6 I 4 I 5 I 6 Top Clip [ ] Insere ponto I 6

Algoritmo de Sutherland-Hodgman (EXEMPLO) I 0 I 2 I 3 I 3 P I 5 2 I 4 I 5 I 0 I 6 I 4 I 5 I 6 Top Clip [ I 3 ] Não insere pontos

Algoritmo de Sutherland-Hodgman (EXEMPLO) I 0 I 2 I 3 I 3 P I 5 2 I 4 = I 7 I 5 I 0 I 0 I 6 I 4 I 5 I 6 I 7 I 0 Top Clip [I 3 I 0 ] Insere pontos I 7 e I 0

Algoritmo de Sutherland-Hodgman (EXEMPLO) I 4 I 5 I 6 I 7 I 0 I 4 = I 7 I 5 I 6 I 0 Right Clip I 4 = I 7 I 5 I 6 I 0 I 4 I 5 I 6 I 7 I 0 Resultado após Top Clip

Algoritmo de Sutherland-Hodgman (EXEMPLO) I 4 I 5 I 6 I 7 I 0 I 4 = I 7 I 5 I 6 I 0 Bottom Clip I 4 = I 7 I 5 I 6 I 0 I 4 I 5 I 6 I 7 I 0 Resultado após Right Clip

Algoritmo de Sutherland-Hodgman (EXEMPLO)

LEIC CG Recorte Recorte 3D

Recorte em 3D (1/3) Extensão do algoritmo de Cohen-Sutherland Usar Outcodede 6 bits: bit 1: ponto em frente VV (z < 0) bit 2: ponto atrás VV (z > 1) bit 3: ponto acima Volume de Visualização (y > 1) bit 4: ponto abaixo VV (y < -1) bit 5: ponto à direita VV (x > 1) bit 6: ponto à esquerda VV (x < -1)

Recorte em 3D (2/3) 01 Volume de Visualização

Recorte em 3D (3/3) Extensão algortimo de Cohen-Sutherland: Aceitação trivial: OC1 = OC2 = 0 Rejeição trivial: OC1 & OC2 0 Calcular 6 intersecções recta-plano VV x = x 0 + t(x 1 -x 0 ) y = y 0 + t(y 1 -y 0 ) z = z 0 + t(z 1 -z 0 ), 0 t 1 Idêntico para recorte de polígonos Sutherland-Hodgman

LEIC CG Pipeline de Visualização 3D

Pipeline de Visualização 3D

Pipeline de Visualização 3D

Pipeline de Visualização 3D