• Nenhum resultado encontrado

Remoção de Faces Traseiras Recorte

N/A
N/A
Protected

Academic year: 2021

Share "Remoção de Faces Traseiras Recorte"

Copied!
34
0
0

Texto

(1)

Remoção de Faces Traseiras

Recorte

Instituto Superior Técnico

Edward Angel, Cap. 7

Instituto Superior Técnico

Computação Gráfica

2009/2010

(2)

Na última aula...



Câmara Virtual Simples



Transformação de Visualização



Volumes canónicos

©2010, CG&M/IST e Figuras Addison Wesley



Volumes canónicos



Transformações de Normalização

(3)

Sumário



Remoção de Faces Traseiras



Back-face Culling



Back-face Culling

(4)

Computação Gráfica

Câmara Virtual Simples

Câmara Virtual Simples

(5)

Câmara Virtual Simples



Parâmetros de entrada

 posição (VRP)

 orientação (VPN, VUV´)

 localização do plano de visualização (D)  dimensões da janela de visualização

 w, h, RA e FOV (vertical e horizontal)

 planos de recorte através das distâncias F e B sobre VPN  projecção ortográfica ou perspectiva

(6)

Câmara Virtual Simples

VUV (view up vector)

ângulos de abertura (FOVs) B

F

D

©2010, CG&M/IST e Figuras Addison Wesley 6

VPN-direcção de visualização

(view plane normal)

VRP plano de recorte anterior plano de recorte posterior Janela de visualização 2w x 2h

(7)

Computação Gráfica

Pipeline de Visualização 3D

Pipeline de Visualização 3D

(8)

Pipeline de Visualização 3D

(9)

Pipeline de Visualização 3D

(10)

Computação Gráfica

Remoção de Faces Traseiras

Remoção de Faces Traseiras

(11)

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



Solução

 Identificar faces traseiras

 Remover da cena

(12)

Identificar Faces Traseiras



Como identificar faces traseiras?

 Calcular o ângulo entre a normal e a VPN?

N N

©2010, CG&M/IST e Figuras Addison Wesley

 Não é eficiente!

V

> 90o < 90o

(13)

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 Polígono visível = 0 Arestas visíveis

> 0 Polígono invisível (back-face)

 Cálculos em coordenadas de visualização (VRC)

V

N N

> 90o < 90o

(14)

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!

©2010, CG&M/IST e Figuras Addison Wesley

 Não!

 Basta verificar a componente Z da normal!! NZ > 0 ⇒⇒⇒⇒ back-face

V

N N

> 90o < 90o

Front-Face Back-Face

(15)

Remover Faces Traseiras



Em poliedros convexos

 RSO fica completa com back-face culling



Em poliedros côncavos

 Algumas front-faces podem estar

 totalmente ocultas (E)  totalmente ocultas (E)  parcialmente ocultas (C) x z A B C D E F G H

(16)

Back-Face Culling



Remoção de faces traseiras



Remove (aprox.) metade dos polígonos



Limitações

Objectos definidos com outra representação:• Convertidos em malhas poligonais

©2010, CG&M/IST e Figuras Addison Wesley



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

(17)

Computação Gráfica

Pipeline de Visualização 3D

Pipeline de Visualização 3D

(18)

Pipeline de Visualização 3D

(19)

Pipeline de Visualização 3D

(20)

Computação Gráfica

Recorte

Recorte

(21)

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

(22)

Recorte

(1/3)



Usa volume canónico ortogonal



Paralelepípedo z

[0..1], x,y

[-1..1]

y (-1, 1, 1) (-1, 1, 0)

plano de recorte posterior (z = 1)

©2010, CG&M/IST e Figuras Addison Wesley

y z x (-1, 1, 1) (1, -1, 1) (1, -1, 0) (-1, -1, 0) (-1, 1, 0) (-1, -1, 1) (1, 1, 1) plano de recorte anterior (z = 0) posterior (z = 1)

(23)

Recorte

(2/3)



Elimina primitivas fora do volume canónico

(24)

Recorte

(3/3)



Vértices:

 Comparar

 x e y com +/- 1  z com 0 e 1

 Conservar se dentro dos limites, eliminar se fora

©2010, CG&M/IST e Figuras Addison Wesley

 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

(25)

Computação Gráfica

Recorte 2D

Recorte 2D

(26)

Recorte de Linhas

(x X X ) e (Y Y Y ) ⇒ ponto dentro Rectângulo de Recorte A B C D E F G H I J G´ D´ F´ H´ I´ J´ Recorte A B C G´ D´ H´

©2010, CG&M/IST e Figuras Addison Wesley

(xmin X Xmax) e (Ymin Y Ymax) ⇒ 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]

(27)

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



Resolver equações simultâneas

 segmento de recta (tline)  4 lados do rectângulo (tedge)



Existe intersecção se:

X = X0 + t (X1 - X0) Y = Y0 + t (Y1 - Y0)

(28)

Computação Gráfica

Recorte 2D

Recorte 2D

(29)

Algoritmo de Cohen-Sutherland

(1/5)



Usa Outcodes

 divide plano em 9 regiões

1000 1010

1001 1º Bit: Acima do lado superior (Y > Ymax)

2º Bit: Abaixo do lado inferior (Y < Ymin)



Casos triviais:

 OC1= OC0 = 0000 => aceita

 OC1 & OC0 ≠ 0000 => rejeita (semiplano ext.)

0000 0010

0100 0001

0101 0110

2º Bit: Abaixo do lado inferior (Y < Ymin) 3º Bit: À direita do lado direito (X > Xmax) 4º Bit: À esquerda do lado esquerdo (X < Xmin)

(30)

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

©2010, CG&M/IST e Figuras Addison Wesley

 Descartar o fragmento exterior

 Se fragmento interior  trivialmente tratável  o processo termina.  Caso contrário,  subdividi-lo  repetir o processo.

(31)

Exemplo

Algoritmo de Cohen-Sutherland

(3/5) Rectangulo de Recorte A B C D 0000 1001 0010 1000 1010 

Recorte de [AD]

 Subdividir pelo lado superior → [AB] e [BD].  Descartar fragmento exterior [BD].

 Aceitar trivialmente [AB] (OCA = OCB = 0)

(32)

Algoritmo de Cohen-Sutherland

(4/5)

Exemplo

I H F G 0000 0100 1001 0010 1000 1010 Rectangulo de Recorte

©2010, CG&M/IST e Figuras Addison Wesley

 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 (OCH = 0010).  Subdividir [FH] pelo lado direito → [FG] e [GH].  Descartar [GH] → Aceitar [FG] (OCF = OCG = 0).

E

F

(33)

Algoritmo de Cohen-Sutherland

(5/5)



Eficiente em duas situações:



Janelas rectangulares “grandes”



Rectângulo abrange quase toda as linhas



Grande parte dos segmentos trivialmente aceites



Grande parte dos segmentos trivialmente aceites



“Pick” (selecção de objectos),



Rectângulo de recorte pequeno



Centrado na posição do cursor

(34)

Próxima Aula



Recorte



Algoritmo de Cyrus-Beck

©2010, CG&M/IST e Figuras Addison Wesley



Algoritmo de Cyrus-Beck



Algoritmo de Sutherland-Hodgman

Referências

Documentos relacionados

Thomsen e Pedersen (1997) reforçaram a importância da analise da estrutura de controle e propriedade elencando os seguintes fatores: a) a concentração da propriedade criará

A vacina contra a influenza, de acordo com Yano et al (2013) vem sendo apontada pela Organização Mundial da Saúde (OMS) como umas das principais formas de redução da

Foram analisadas 12 amostras da cultivar TMG 132, 12 lotes diferentes, que sofreram teste de patologia, no laboratório de química e microscopia da Faculdade Centro

Rio de Janeiro/São Paulo: Fundação Konrad Adenauer-Stiftung/Fundação Unesp, 2004... Sistema Político Brasileiro: uma

Pires (2010) obteve resultados semelhantes para dióxido de titânio Kronos incorporado em base serigráfica.. Possivelmente, o mesmo ocorreu para a tinta de cura

Plantas de Enterolobium contortisiliquum inoculadas com Gigaspora margarita apresentaram maior altura, diâmetro à altura do colo e maior teor de fósforo na.. Quadro 4 - Teores

[r]

Estamos extremamente orgulhosos por terem es- colhido Montenegro como o destino desta edição especial que é a 40.ª edição dos Jogos Mundiais de Medicina e Saúde em Budva, em junho