INF 1366 – Computação Gráfica Interativa Eliminação de...

25
1 Alberto Raposo – PUC-Rio INF 1366 – Computação Gráfica Interativa Eliminação de Superfícies Escondidas; Anti-Aliasing 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 INF 1366 – Computação Gráfica Interativa Eliminação de...

1

Alberto Raposo – PUC-Rio

INF 1366 – Computação Gráfica Interativa

Eliminação de Superfícies Escondidas;Anti-AliasingAlberto 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

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 comportar

corretamente quando a câmera se move• Em ambientes complexos, poucas coisas são visíveis

– Quanto do mundo real é visto a cada instante?

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

profundid

adez

M. Gattass, PUC-Rio

4

Alberto Raposo – PUC-Rio

Problemas na ordenação de faces

+ +

za zb

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

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 mais

distante 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 DEPROFUNDIDADES

M. Gattass, PUC-Rio

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 guardar

informaçã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, inserir

na lista, mas sem remover polígonos mais distantes

S. Chenney, Univ. of Wisconsin

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

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

33

1

1 1 11

S. Chenney, Univ. of Wisconsin

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

C

B

2

4

1

3

A

B C

3 2 4 1

-

- -

+

++

S. Chenney, Univ. of Wisconsin

10

Alberto Raposo – PUC-Rio

Exemplo: BSP-Tree

1

23

4

5a5b

3

125a

45b

atrásfrente

1

23

4

5a5b

3

45b

atrásfrente

2frente atrás

5a 1

1

23

4

5a5b

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

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

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

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

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

15

Alberto Raposo – PUC-Rio

Grafo de Cena

Alberto Raposo – PUC-Rio

Resultados

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 Segundos/ Portais c/ Portais

39 112

17

Alberto Raposo – PUC-Rio

Teste de Desempenho (3)

Quadros por Segundos/ Portais c/ Portais

190 180

Alberto Raposo – PUC-Rio

Teste de Desempenho (4)

Quadros por Segundos/ Portais c/ Portais

30 94

18

Alberto Raposo – PUC-Rio

Propriedades: Células-Portais• Vantagens

– Extremamente eficiente – apenas olha para células queestã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

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

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

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

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 pequenos

quadrados– 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

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

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

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

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.