Post on 08-Nov-2018
1
Alberto Raposo – PUC-Rio
INF 1366 – Computação Gráfica Interativa
Eliminação de Superfícies Escondidas;Anti-AliasingAlberto B. Raposo
abraposo@tecgraf.puc-rio.brhttp://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
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.