Remoção de Superfícies...

35
1 Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Eliminação de Superfícies Escondidas; Anti-Aliasing e Imagens Digitais Alberto B. Raposo [email protected] http://www.tecgraf.puc-rio.br/~abraposo/INF1366/index.htm Alberto Raposo – PUC-Rio Remoção de Superfícies Escondidas Dado conjunto de polígonos, qual é visível em cada pixel (quem está na frente, etc.)? Há muitos algoritmos diferentes para isso. 2 grandes classes: Precisão de objeto: computação opera nas primitivas Precisão de imagem: computação opera no nível do pixel Pode-se operar em qualquer espaço do pipeline de visualização, pois todos eles mantêm a informação de profundidade Sequência de transformações do OpenGL

Transcript of Remoção de Superfícies...

Page 1: Remoção de Superfícies Escondidaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/13_Hidden... · ... (e.g. profundidade de um ponto ... • Três casos triviais para determinar

1

Alberto Raposo – PUC-Rio

INF 1366 – Computação Gráfica Interativa

Eliminação de Superfícies Escondidas;Anti-Aliasing e Imagens Digitais

Alberto B. Raposo

[email protected]://www.tecgraf.puc-rio.br/~abraposo/INF1366/index.htm

Alberto Raposo – PUC-Rio

Remoção de Superfícies Escondidas

• Dado conjunto de polígonos, qual é visível em cada pixel (quem estána frente, etc.)?

• Há muitos algoritmos diferentes para isso. 2 grandes classes:– Precisão de objeto: computação opera nas primitivas

– Precisão de imagem: computação opera no nível do pixel

• Pode-se operar em qualquer espaço do pipeline de visualização, poistodos eles mantêm a informação de profundidade

Sequência de transformaçõesdo OpenGL

Page 2: Remoção de Superfícies Escondidaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/13_Hidden... · ... (e.g. profundidade de um ponto ... • Três casos triviais para determinar

2

Alberto Raposo – PUC-Rio

Remoção de Superfícies Escondidas (Visibilidade)

• Determinar a visibilidade dos polígonos antes de enviá-los para placa gráfica (culling):– Back face culling;

– View frustum culling;

– Occlusion Culling;

– Célula / Portal.

Alberto Raposo – PUC-Rio

Desafios• Eficiência – perde-se tempo sobrescrevendo pixels ou

rasterizando coisas que não podem ser visualizadas

• Precisão – resultado precisa ser correto e se comportarcorretamente quando a câmera se move

• Em ambientes complexos, poucas coisas são visíveis– Quanto do mundo real é visto a cada instante?

Page 3: Remoção de Superfícies Escondidaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/13_Hidden... · ... (e.g. profundidade de um ponto ... • Três casos triviais para determinar

3

Alberto Raposo – PUC-Rio

Algoritmo do Pintor (Precisão de Imagem)

• Algoritmo:– Escolha uma ordenação para os polígonos baseada

em algum critério (e.g. profundidade de um pontodo polígono)

– Renderize os polígonos nessa ordem, o maisdistante primeiro

• Polígonos mais próximos são desenhados sobreos mais distantes

Alberto Raposo – PUC-Rio

Algoritmo do Pintor

prof

undida

de

z

M. Gattass, PUC-Rio

Page 4: Remoção de Superfícies Escondidaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/13_Hidden... · ... (e.g. profundidade de um ponto ... • Três casos triviais para determinar

4

Alberto Raposo – PUC-Rio

Problemas na ordenação de faces

+ +

zazb

(a)

(b)

M. Gattass, PUC-Rio

Alberto Raposo – PUC-Rio

Algoritmo do Pintor• Dificuldade:

– Se usado dessa forma, nãofunciona bem na maioria das geometrias

• Precisa de melhores maneirasde fazer a ordenação dos polígonos

zs

xs

Situações em quenão funciona

Que pontoescolherpara a ordenação?

Page 5: Remoção de Superfícies Escondidaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/13_Hidden... · ... (e.g. profundidade de um ponto ... • Três casos triviais para determinar

5

Alberto Raposo – PUC-Rio

Algoritmo Z-buffer (Precisão de Imagem)

• Para cada pixel do display, tenha pelo menos 2 buffers– Color buffer: Armazena a cor atual de cada pixel (o que será realmente

mostrado)

– Z-Buffer (ou depth buffer): armazena, para cada pixel, a profundidade do objeto mais próximo até então, a ser desenhado naquele pixel

• Inicialize o Z-buffer com um valor correspondente ao valor de Z maisdistante visível (Zmax)

• À medida que um polígono é preenchido, compute a profundidade de cada pixel a ser preenchido– If: profundidade < profundidade armazenada no z-buffer, preencha o

pixel e armazene essa profundidade no z-buffer

– Else: desconsidere o pixel (está atrás de algo que já foi desenhado).

S. Chenney, Univ. of Wisconsin

Alberto Raposo – PUC-Rio

Z-Buffer: idéia básica

z

MATRIZ DE

PROFUNDIDADES

M. Gattass, PUC-Rio

Page 6: Remoção de Superfícies Escondidaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/13_Hidden... · ... (e.g. profundidade de um ponto ... • Três casos triviais para determinar

6

Alberto Raposo – PUC-Rio

Z-buffer

• Vantagens:– Simples e hoje em dia implementado em hardware

• O z-buffer é parte do que faz uma placa gráfica ser “3D”

– Computar as profundidades necessárias é simples

• Desvantagens:– Over-renders – pouco eficiente quando há grande

número de polígonos

– Não trata transparência facilmente (precisaria guardarinformação sobre polígonos parcialmente cobertos)

S. Chenney, Univ. of Wisconsin

Alberto Raposo – PUC-Rio

Algoritmo A-buffer (Precisão de Imagem)

• Lida com superfícies transparentes e faz anti-aliasing

• Em cada pixel, mantenha um ponteiro para lista de polígonos ordenado por profundidade e uma máscara de cobertura de sub-pixels para cada polígono– Matriz de bits dizendo que partes do pixel está coberta

• Algoritmo: ao desenhar um pixel:– If: polígono é opaco e cobre o pixel, inserir na lista, removendo

todos os polígonos mais distantes

– If: polígono é transparente ou cobre apenas parte do pixel, inserirna lista, mas sem remover polígonos mais distantes

S. Chenney, Univ. of Wisconsin

Page 7: Remoção de Superfícies Escondidaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/13_Hidden... · ... (e.g. profundidade de um ponto ... • Três casos triviais para determinar

7

Alberto Raposo – PUC-Rio

Algoritmo A-buffer• Algoritmo: etapa de rendering

– A cada pixel, percorra o buffer usando as cores dos polígonos e as máscaras de cobertura para fazer a composição:

• Vantagem:– Pode fazer mais que o Z-buffer

– Conceito de máscara de visibilidade pode ser usado em outros algoritmos

• Desvantagens:– Não está em hardware, e é lento em software

– No fundo, é z-buffer: mesmo problema de over-rendering

• Porém: usado em ferramentas de renderização de alta qualidade

sobre =

S. Chenney, Univ. of Wisconsin

Alberto Raposo – PUC-Rio

Subdivisão de Áreas

• Explora a coerência de área: pequenas áreas de uma imagem tendem a ser cobertas por apenasum polígono

• Três casos triviais para determinar o que está nafrente em uma região:

1. Um polígono está completamente à frente de qualquercoisa na região

2. Não há superfícies projetadas na região3. Apenas uma superfície está completamente dentro da

região, a corta, ou envolve a região

S. Chenney, Univ. of Wisconsin

Page 8: Remoção de Superfícies Escondidaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/13_Hidden... · ... (e.g. profundidade de um ponto ... • Três casos triviais para determinar

8

Alberto Raposo – PUC-Rio

Subdivisão de Áreas: Algoritmode Warnock (Precisão de Imagem)

• Comece com imagem completa• Se um dos 3 casos triviais ocorre, desenhe o que está na

frente• Caso contrário, subdivida a região recursivamente• Se região chegou ao tamanho do pixel, escolha superfície

com menor profundidade• Vantagens:

– Não ocorre over-rendering– Bom anti-aliasing: basta fazer mais uma subdivisão para obter

informação de sub-pixel

• Desvantagem:– Testes são complexos e lentos

S. Chenney, Univ. of Wisconsin

Alberto Raposo – PUC-Rio

Algoritmo de Warnock

• Casos na imagem ao lado:1) Um polígono à frente2) Vazia3) Um polígono dentro, ao

redor ou cortando a área

2 2 2

2222

2

2

3

3

3

3 33

3

3

3

3

3

333

3

3

1

1 1 11

S. Chenney, Univ. of Wisconsin

Page 9: Remoção de Superfícies Escondidaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/13_Hidden... · ... (e.g. profundidade de um ponto ... • Três casos triviais para determinar

9

Alberto Raposo – PUC-Rio

BSP-Trees: Binary Space Partion Trees(Precisão de Objeto)

• Construção da bsp tree

– Árvore fornece ordem de renderização

– Árvore “quebra” o mundo 3D com planos• Mundo é quebrado em células convexas

• Cada célula é a interseção de todos os “meio-espaços” dos planos de quebra na árvore

• Também usada em modelagem:– Nem sempre quando se fala em BSP se refere a este algoritmo

S. Chenney, Univ. of Wisconsin

Alberto Raposo – PUC-Rio

Exemplo: BSP-Tree

AC

B

2

4

1

3

A

B C

3 2 4 1

-

- -

+

++

S. Chenney, Univ. of Wisconsin

Page 10: Remoção de Superfícies Escondidaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/13_Hidden... · ... (e.g. profundidade de um ponto ... • Três casos triviais para determinar

10

Alberto Raposo – PUC-Rio

Exemplo: BSP-Tree

1

2

3

4

5a

5b3

1

2

5a

4

5b

atrásfrente

1

2

3

4

5a

5b

3

4

5b

atrásfrente

2frente atrás

5a 1

1

2

3

4

5a

5b

3

2

5a 1

4

5b

M. Gattass, PUC-Rio

Alberto Raposo – PUC-Rio

Célula / Portal - Conceito

• Em um ambiente fechado, objetos presentes em quartos (células) distantes não podem ser vistos através das paredes (oclusores) e os objetos nos quartos adjacentes são vistos somente através das portas ou janelas (portais).

Page 11: Remoção de Superfícies Escondidaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/13_Hidden... · ... (e.g. profundidade de um ponto ... • Três casos triviais para determinar

11

Alberto Raposo – PUC-Rio

Exemplo: Célula-Portal

View

S. Chenney, Univ. of Wisconsin

Alberto Raposo – PUC-Rio

Exemplo: Célula-Portal

View

S. Chenney, Univ. of Wisconsin

Page 12: Remoção de Superfícies Escondidaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/13_Hidden... · ... (e.g. profundidade de um ponto ... • Três casos triviais para determinar

12

Alberto Raposo – PUC-Rio

Exemplo: Célula-Portal

View

S. Chenney, Univ. of Wisconsin

Alberto Raposo – PUC-Rio

Exemplo: Célula-Portal

View

S. Chenney, Univ. of Wisconsin

Page 13: Remoção de Superfícies Escondidaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/13_Hidden... · ... (e.g. profundidade de um ponto ... • Três casos triviais para determinar

13

Alberto Raposo – PUC-Rio

Cell-Portal Example (5)

View

S. Chenney, Univ. of Wisconsin

Alberto Raposo – PUC-Rio

Exemplo: Célula-Portal

View

S. Chenney, Univ. of Wisconsin

Page 14: Remoção de Superfícies Escondidaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/13_Hidden... · ... (e.g. profundidade de um ponto ... • Três casos triviais para determinar

14

Alberto Raposo – PUC-Rio

Célula / Portal – Pré-processamento

• O ambiente deve ser pré-processado para se obter as células e os portais:– Uma forma de se obter essa divisão é através do cálculo

de uma BSP-Tree ou uma k-d Tree;

• Cálculo da Visibilidade:– Calcular o conjunto de objetos potencialmente visíveis

(PVS): Teller / Séquin, Quake;

– Não calcular o PVS: a determinação é feita

dinamicamente - Luebke

Alberto Raposo – PUC-Rio

Portais

• Determinar o conjunto potencialmente visível:– A célula onde está o observador mais todas as células adjacentes.

• Luebke e Georges:– Montar o grafo de cena a partir da informação de conectividade;– Percorrendo o grafo, determinar quais células estão visíveis;– Adequado para implementação em grafos de cena: Performer /

OpenSceneGraph

Page 15: Remoção de Superfícies Escondidaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/13_Hidden... · ... (e.g. profundidade de um ponto ... • Três casos triviais para determinar

15

Alberto Raposo – PUC-Rio

Grafo de Cena

Alberto Raposo – PUC-Rio

Resultados

Page 16: Remoção de Superfícies Escondidaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/13_Hidden... · ... (e.g. profundidade de um ponto ... • Três casos triviais para determinar

16

Alberto Raposo – PUC-Rio

Teste de Desempenho (1)

• O desempenho foi amostrado durante um percurso por vários cômodos do modelo 3-D de um apartamento;

• Testes realizados em um P42.54 GHz com 3 GB de RAM e uma placa gráfica NVIDIA Quadro FX 1000 128 MB.

Alberto Raposo – PUC-Rio

Teste de Desempenho (2)

Quadros por Segundo

s/ Portais c/ Portais

39 112

Page 17: Remoção de Superfícies Escondidaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/13_Hidden... · ... (e.g. profundidade de um ponto ... • Três casos triviais para determinar

17

Alberto Raposo – PUC-Rio

Teste de Desempenho (3)

Quadros por Segundo

s/ Portais c/ Portais

190 180

Alberto Raposo – PUC-Rio

Teste de Desempenho (4)

Quadros por Segundo

s/ Portais c/ Portais

30 94

Page 18: Remoção de Superfícies Escondidaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/13_Hidden... · ... (e.g. profundidade de um ponto ... • Três casos triviais para determinar

18

Alberto Raposo – PUC-Rio

Propriedades: Células-Portais

• Vantagens– Extremamente eficiente – apenas olha para células que

estão realmente visíveis: visibility culling

– Facilmente modificável para visibilidade parcial: renderiza células parcialmente visíveis e deixa z-buffer fazer o resto

– Faz espelhos: crie “célula imaginária” espelhada e considere o espelho como portal

• Desvantagens– Restrito a ambientes com boa estrutura para

células/portais (ambientes fechados)

Alberto Raposo – PUC-Rio

Anti-Aliasing

Page 19: Remoção de Superfícies Escondidaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/13_Hidden... · ... (e.g. profundidade de um ponto ... • Três casos triviais para determinar

19

Alberto Raposo – PUC-Rio

Aliasing• Ocorre quando a amostragem inerente à renderização não tem

informação suficiente para uma imagem precisa.

Cena original

Luminosidade

Amostragem do centro dos pixels

Sinal amostrado Luminosidade reconstruída

Imagem renderizada

ACM SIGGRAPH Educator’s Slide Set

Alberto Raposo – PUC-Rio

Efeitos de Aliasing

Jagged Edges(serrilhado)

Perda dedetalhes

ACM SIGGRAPH Educator’s Slide Set

Page 20: Remoção de Superfícies Escondidaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/13_Hidden... · ... (e.g. profundidade de um ponto ... • Três casos triviais para determinar

20

Alberto Raposo – PUC-Rio

Desintegração de Textura

– O xadrez deveria ficar menor com a distância

– Aliasing os torna maiores ou irregulares

ACM SIGGRAPH Educator’s Slide Set

Alberto Raposo – PUC-Rio

Anti-Aliasing

• Algoritmos e técnicas desenvolvidos para combater os efeitos de aliasing

Page 21: Remoção de Superfícies Escondidaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/13_Hidden... · ... (e.g. profundidade de um ponto ... • Três casos triviais para determinar

21

Alberto Raposo – PUC-Rio

Anti-Aliasing

• Linhas desenahdas com algoritmo de Bresenham e polígonospreenchidos possuembordas serrilhadas

• Como consertar?

S. Chenney, Univ. of Wisconsin

Alberto Raposo – PUC-Rio

Anti-Aliasing

• Duas abordagens gerais– Amostragem por área (ou pré-filtragem): considera as primitivas

amostradas como “caixa”(região) (ou Gaussiana, ou…) ao invés de linhas

• Requer primitivas com área (linhas com largura)

• Super-amostragem (ou pós-filtragem): amostra emresolução maior, filtrando depois a imagem resultante– Este é o anti-aliasing mais usado em hardware

S. Chenney, Univ. of Wisconsin

Page 22: Remoção de Superfícies Escondidaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/13_Hidden... · ... (e.g. profundidade de um ponto ... • Três casos triviais para determinar

22

Alberto Raposo – PUC-Rio

Pré-filtragem

Sem Anti-aliasing

Pré-filtragem

ACM SIGGRAPH Educator’s Slide Set

Alberto Raposo – PUC-Rio

Unweighted Area Sampling

• Técnica de pós-filtragem– Considere uma linha como tendo

largura

– Considere pixels como pequenosquadrados

– Preencha os pixels de acordo com a proporção do seu quadradocoberto pela linha (intensidade de cor)

1/8

1/8

.914

.914

.914

1/8

1/8

1/4

1/4

1/41/40 0

00

0000

0

0

0

0 0 0

S. Chenney, Univ. of Wisconsin

Page 23: Remoção de Superfícies Escondidaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/13_Hidden... · ... (e.g. profundidade de um ponto ... • Três casos triviais para determinar

23

Alberto Raposo – PUC-Rio

Super-amostragem (pós-filtragem)

• Amostre em resolução maior que a necessária para o display e depoisfiltre a imagem– Típico: 4 a 16 amostras por pixel S

– Amostras podem ser em grade uniforme, ou randomicamenteposicionadas

S. Chenney, Univ. of Wisconsin

Alberto Raposo – PUC-Rio

Exemplos de Anti-aliasing

ACM SIGGRAPH Educator’s Slide Set

Page 24: Remoção de Superfícies Escondidaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/13_Hidden... · ... (e.g. profundidade de um ponto ... • Três casos triviais para determinar

24

Alberto Raposo – PUC-Rio

Exemplos de Anti-aliasing

ACM SIGGRAPH Educator’s Slide Set

Alberto Raposo – PUC-Rio

Exemplos de Anti-aliasing

ACM SIGGRAPH Educator’s Slide Set

Page 25: Remoção de Superfícies Escondidaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/13_Hidden... · ... (e.g. profundidade de um ponto ... • Três casos triviais para determinar

25

Alberto Raposo – PUC-Rio

Weighted Sampling

• Ao invés de usar a proporção daárea coberta pela linha, use convolução para fazer a amostragem– Equivalente a pré-filtrar a linha e

amostrar o resultado

• Coloque o “filtro” em cada pixel e integre o produto do pixel com a linha

161

81

161

81

41

81

161

81

161

Exemplo de filtro:

S. Chenney, Univ. of Wisconsin

Alberto Raposo – PUC-Rio

Falando em filtros...

• Imagem: uma função do R2 em C

Page 26: Remoção de Superfícies Escondidaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/13_Hidden... · ... (e.g. profundidade de um ponto ... • Três casos triviais para determinar

26

Alberto Raposo – PUC-Rio

Imagem Colorida

R

G

Bu

v

Alberto Raposo – PUC-Rio

Tons de cinza e negativoLx,y = 0.299Rx,y + 0.587Gx,y + 0.114Bx,y

tons de cinza

Lx,y = 255 - Lx,y

Page 27: Remoção de Superfícies Escondidaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/13_Hidden... · ... (e.g. profundidade de um ponto ... • Três casos triviais para determinar

27

Alberto Raposo – PUC-Rio

Aquisição de imagem digital

• Amostragem

• Quantização

• Codificação

Alberto Raposo – PUC-Rio

Amostragem, quantização e codificação de f(x)

partição do eixo x

x

função originalf(x)

amostra

0

1

2

3

4

5

6

Page 28: Remoção de Superfícies Escondidaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/13_Hidden... · ... (e.g. profundidade de um ponto ... • Três casos triviais para determinar

28

Alberto Raposo – PUC-Rio

codificação = (3, 4, 5, 5, 4, 2, 2, 3, 5, 5, 4, 2)

Amostragem, quantização e codificação de f(x)

0

1

2

3

4

5

6

x

função original

amostraquantizada

f(x)

××××

××××

×××× ××××

××××

×××× ×××× ××××

××××

×××× ××××

××××

××××

partição do eixo x

Alberto Raposo – PUC-Rio

Digitalização de Imagens

amostragem

Imagem de tons

contínuos

55 55 55 55 55 55 55

55 20 22 23 45 55 55

55 55 10 09 11 55 55

55 55 43 42 70 55 55

55 55 28 76 22 55 55

55 55 55 55 55 55 55

64x54

64x54 - 16 cores

codificação

Imagem amostrada

Imagem amostrada e

quantizada

5*55, 1*55, 1*20, 1*22, ….

quantização

Imagem amostrada,

quantizada e codificada

Page 29: Remoção de Superfícies Escondidaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/13_Hidden... · ... (e.g. profundidade de um ponto ... • Três casos triviais para determinar

29

Alberto Raposo – PUC-Rio

Filtros espaciais

Melhoras na distribuição espacial

Alberto Raposo – PUC-Rio

Suavização

f

h

4

2 11 +− ++= iii

i

fffh

Page 30: Remoção de Superfícies Escondidaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/13_Hidden... · ... (e.g. profundidade de um ponto ... • Três casos triviais para determinar

30

Alberto Raposo – PUC-Rio

Mascara ou Filtro

4

2 11 +− ++= iii

i

fffh

∑−

=

−=1

0)(

n

k

iiki fgh

+>

+=

=

−=

−<

=

10

14/1

04/2

14/1

10

lse

lse

lse

lse

lse

g l

ou:

Alberto Raposo – PUC-Rio

Convolução

∫∞=

−∞=

−=t

t

dtxfxtgxh )()()(

∑−

=

−=1

0)(

n

k

iiki fgh

Page 31: Remoção de Superfícies Escondidaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/13_Hidden... · ... (e.g. profundidade de um ponto ... • Três casos triviais para determinar

31

Alberto Raposo – PUC-Rio

Gaussiana

0.1

0.2

0.3

-4 -3 -2 -1 0 1 2 3 4

2

2

2

2

1)( σ

σπ

x

exG−

=

[ ]1214

1[ ]14641

16

1

[ ]161520156164

1

Alberto Raposo – PUC-Rio

Gaussiana2

22

2

2

1),( σ

σπ

yx

eyxG

+−

=

121

242

121

16

1

14741

41626164

72641267

41626164

14741

273

1

0 . 1

0 . 2

0 . 3

0 . 4

0 . 1

0 . 2

0 . 3

0 . 4

Page 32: Remoção de Superfícies Escondidaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/13_Hidden... · ... (e.g. profundidade de um ponto ... • Três casos triviais para determinar

32

Alberto Raposo – PUC-Rio

Filtragem gaussiana

Alberto Raposo – PUC-Rio

Filtro Gaussiano

121

242

121

16

1

Page 33: Remoção de Superfícies Escondidaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/13_Hidden... · ... (e.g. profundidade de um ponto ... • Três casos triviais para determinar

33

Alberto Raposo – PUC-Rio

Detecção de bordas

2/)( 11'

−+ −= iii fff

<−+−

>−+−−+−=

+−

+−+−

0)2(0

0)2(2

11

1111''

iii

iiiiiii

fffse

fffseffff

f(x)

|f '(x)|

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21

|f ''(x)|

Alberto Raposo – PUC-Rio

Detecção de bordas

∂∂

∂∂

=∇

yf

xf

yxf ),(GradienteLaplaciano

2

2

2

22 ),(

y

f

x

fyxf

∂+

∂=∇

Page 34: Remoção de Superfícies Escondidaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/13_Hidden... · ... (e.g. profundidade de um ponto ... • Três casos triviais para determinar

34

Alberto Raposo – PUC-Rio

Filtros de realce de bordas

−−

010

141

010Laplaciano

000

010

100

000

010

001

101

202

101

4

1

−−−

121

000

121

4

1

Vertical HorizontalRobertsSobelGradiente

Alberto Raposo – PUC-Rio

Exemplo de detecção de arestas

RGB cinza Laplaciano

Page 35: Remoção de Superfícies Escondidaswebserver2.tecgraf.puc-rio.br/~abraposo/INF1366/2007/13_Hidden... · ... (e.g. profundidade de um ponto ... • Três casos triviais para determinar

35

Alberto Raposo – PUC-Rio

Filtragem

121

242

121

16

1

filtrogaussiano

−−

010

141

010

filtro laplaciano

LL −← 255BGRL 11.059.030.0 ++=

Alberto Raposo – PUC-Rio

Informações Adicionais

• Peter Shirley. Fundamentals of Computer Graphics, A K Peters, Ltd., Natick, MA, USA, 2002.

• Foley, J. D., Van Dam, A., Feiner, S. K., e Huhes, J. F., Phlips, L. R., Introduction to Computer Graphics, Addison-Wesley, 1995.

• D. F. Rogers, Procedural Elements for Computer Graphics, McGraw-Hill, 1988.

• Marcelo Gattass: notas de aula. http://www.tecgraf.puc-rio.br/~mgattass/cg.html

• Portais: Silva, R. J. M., Wagner, G. N., Raposo, A. B., Gattass, M. Experiência de Portais em Ambientes Arquitetônicos Virtuais. VI Symposium on Virtual Reality - SVR 2003, p.117-128. Ribeirão Preto, SP, Brazil. 2003.