Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouKauany Fonseca Alterado mais de 10 anos atrás
1
INF 1366 – Computação Gráfica Interativa Eliminação de Superfícies Escondidas; Anti-Aliasing e Imagens Digitais Alberto B. Raposo Alberto Raposo – PUC-Rio
2
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 Alberto Raposo – PUC-Rio
3
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
4
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? Alberto Raposo – PUC-Rio
5
Algoritmo do Pintor (Precisão de Imagem)
Escolha uma ordenação para os polígonos baseada em algum critério (e.g. profundidade de um ponto do polígono) Renderize os polígonos nessa ordem, o mais distante primeiro Polígonos mais próximos são desenhados sobre os mais distantes Alberto Raposo – PUC-Rio
6
Algoritmo do Pintor profundidade z Alberto Raposo – PUC-Rio
M. Gattass, PUC-Rio
7
Problemas na ordenação de faces
+ + za zb Alberto Raposo – PUC-Rio M. Gattass, PUC-Rio
8
Algoritmo do Pintor Dificuldade: zs xs
Se usado dessa forma, não funciona bem na maioria das geometrias Precisa de melhores maneiras de fazer a ordenação dos polígonos Situações em que não funciona zs Que ponto escolher para a ordenação? xs Alberto Raposo – PUC-Rio
9
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
10
Z-Buffer: idéia básica
MATRIZ DE PROFUNDIDADES Alberto Raposo – PUC-Rio M. Gattass, PUC-Rio
11
Z-buffer Vantagens: Desvantagens:
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
12
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 Alberto Raposo – PUC-Rio
13
Algoritmo A-buffer = Algoritmo: etapa de rendering Vantagem:
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
14
Subdivisão de Áreas Explora a coerência de área: pequenas áreas de uma imagem tendem a ser cobertas por apenas um polígono Três casos triviais para determinar o que está na frente em uma região: Um polígono está completamente à frente de qualquer coisa na região Não há superfícies projetadas na região Apenas uma superfície está completamente dentro da região, a corta, ou envolve a região Alberto Raposo – PUC-Rio S. Chenney, Univ. of Wisconsin
15
Subdivisão de Áreas: Algoritmo de 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 Alberto Raposo – PUC-Rio S. Chenney, Univ. of Wisconsin
16
Algoritmo de Warnock Casos na imagem ao lado: 2 3 2 2
Um polígono à frente Vazia Um polígono dentro, ao redor ou cortando a área 3 3 3 2 3 3 3 1 3 1 1 1 1 3 3 3 3 3 2 3 3 3 2 2 2 2 S. Chenney, Univ. of Wisconsin Alberto Raposo – PUC-Rio
17
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
18
Exemplo: BSP-Tree A A C 4 3 - + B C - B + - + 1 3 2 4 1 2
S. Chenney, Univ. of Wisconsin Alberto Raposo – PUC-Rio
19
Exemplo: BSP-Tree 1 2 3 4 5a 5b 3 1 2 5a 4 5b atrás frente 1 2 3 4 5a
Alberto Raposo – PUC-Rio M. Gattass, PUC-Rio
20
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). Alberto Raposo – PUC-Rio
21
Exemplo: Célula-Portal
View Alberto Raposo – PUC-Rio S. Chenney, Univ. of Wisconsin
22
Exemplo: Célula-Portal
View Alberto Raposo – PUC-Rio S. Chenney, Univ. of Wisconsin
23
Exemplo: Célula-Portal
View Alberto Raposo – PUC-Rio S. Chenney, Univ. of Wisconsin
24
Exemplo: Célula-Portal
View Alberto Raposo – PUC-Rio S. Chenney, Univ. of Wisconsin
25
Cell-Portal Example (5)
View Alberto Raposo – PUC-Rio S. Chenney, Univ. of Wisconsin
26
Exemplo: Célula-Portal
View Alberto Raposo – PUC-Rio S. Chenney, Univ. of Wisconsin
27
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
28
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 Alberto Raposo – PUC-Rio
29
Grafo de Cena Alberto Raposo – PUC-Rio
30
Resultados Alberto Raposo – PUC-Rio
31
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 P GHz com 3 GB de RAM e uma placa gráfica NVIDIA Quadro FX MB. Alberto Raposo – PUC-Rio
32
Teste de Desempenho (2) Quadros por Segundo 39 112
s/ Portais c/ Portais 39 112 Alberto Raposo – PUC-Rio
33
Teste de Desempenho (3) Quadros por Segundo 190 180
s/ Portais c/ Portais 190 180 Alberto Raposo – PUC-Rio
34
Teste de Desempenho (4) Quadros por Segundo 30 94
s/ Portais c/ Portais 30 94 Alberto Raposo – PUC-Rio
35
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
36
Anti-Aliasing Alberto Raposo – PUC-Rio
37
Aliasing ACM SIGGRAPH Educator’s Slide Set Ocorre quando a amostragem inerente à renderização não tem informação suficiente para uma imagem precisa. Cena original Amostragem do centro dos pixels Imagem renderizada Luminosidade Sinal amostrado Luminosidade reconstruída Alberto Raposo – PUC-Rio
38
Jagged Edges (serrilhado)
Efeitos de Aliasing Jagged Edges (serrilhado) Perda de detalhes Alberto Raposo – PUC-Rio ACM SIGGRAPH Educator’s Slide Set
39
Desintegração de Textura
O xadrez deveria ficar menor com a distância Aliasing os torna maiores ou irregulares Alberto Raposo – PUC-Rio ACM SIGGRAPH Educator’s Slide Set
40
Anti-Aliasing Algoritmos e técnicas desenvolvidos para combater os efeitos de aliasing Alberto Raposo – PUC-Rio
41
Anti-Aliasing Linhas desenahdas com algoritmo de Bresenham e polígonos preenchidos possuem bordas serrilhadas Como consertar? Alberto Raposo – PUC-Rio S. Chenney, Univ. of Wisconsin
42
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 em resolução maior, filtrando depois a imagem resultante Este é o anti-aliasing mais usado em hardware S. Chenney, Univ. of Wisconsin Alberto Raposo – PUC-Rio
43
Pré-filtragem Sem Anti-aliasing Pré-filtragem Alberto Raposo – PUC-Rio
ACM SIGGRAPH Educator’s Slide Set
44
Unweighted Area Sampling
1/8 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 quadrado coberto pela linha (intensidade de cor) 1/4 .914 1/8 1/4 .914 1/4 1/8 .914 1/4 1/8 S. Chenney, Univ. of Wisconsin Alberto Raposo – PUC-Rio
45
Super-amostragem (pós-filtragem)
Amostre em resolução maior que a necessária para o display e depois filtre a imagem Típico: 4 a 16 amostras por pixel S Amostras podem ser em grade uniforme, ou randomicamente posicionadas Alberto Raposo – PUC-Rio S. Chenney, Univ. of Wisconsin
46
Exemplos de Anti-aliasing
Alberto Raposo – PUC-Rio ACM SIGGRAPH Educator’s Slide Set
47
Exemplos de Anti-aliasing
Alberto Raposo – PUC-Rio ACM SIGGRAPH Educator’s Slide Set
48
Exemplos de Anti-aliasing
Alberto Raposo – PUC-Rio ACM SIGGRAPH Educator’s Slide Set
49
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 Exemplo de filtro: Alberto Raposo – PUC-Rio S. Chenney, Univ. of Wisconsin
50
Falando em filtros... Imagem: uma função do R2 em C
Alberto Raposo – PUC-Rio
51
Imagem Colorida v G R Alberto Raposo – PUC-Rio u B
52
Tons de cinza e negativo
Lx,y = 0.299Rx,y Gx,y Bx,y tons de cinza Lx,y = Lx,y Alberto Raposo – PUC-Rio
53
Aquisição de imagem digital
Amostragem Quantização Codificação Alberto Raposo – PUC-Rio
54
Amostragem, quantização e codificação de f(x)
função original f(x) amostra 1 2 3 4 5 6 partição do eixo x Alberto Raposo – PUC-Rio
55
Amostragem, quantização e codificação de f(x)
função original 6 5 amostra quantizada 4 3 2 1 x partição do eixo x codificação = (3, 4, 5, 5, 4, 2, 2, 3, 5, 5, 4, 2) Alberto Raposo – PUC-Rio
56
Digitalização de Imagens
64x54 amostragem Imagem de tons contínuos Imagem amostrada quantização 55 20 22 23 45 10 09 11 43 42 70 28 76 64x cores 5*55, 1*55, 1*20, 1*22, …. codificação Imagem amostrada, quantizada e codificada Imagem amostrada e quantizada Alberto Raposo – PUC-Rio
57
Melhoras na distribuição espacial
Filtros espaciais Melhoras na distribuição espacial Alberto Raposo – PUC-Rio
58
Suavização f h Alberto Raposo – PUC-Rio
59
Mascara ou Filtro ou: Alberto Raposo – PUC-Rio
60
Convolução Alberto Raposo – PUC-Rio
61
Gaussiana 0.3 0.2 0.1 -4 -3 -2 -1 1 2 3 4 Alberto Raposo – PUC-Rio
62
Gaussiana Alberto Raposo – PUC-Rio
63
Filtragem gaussiana Alberto Raposo – PUC-Rio
64
Filtro Gaussiano Alberto Raposo – PUC-Rio
65
Detecção de bordas f(x) |f ''(x)| |f '(x)| Alberto Raposo – PUC-Rio 1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Alberto Raposo – PUC-Rio
66
Detecção de bordas Gradiente Laplaciano Alberto Raposo – PUC-Rio
67
Filtros de realce de bordas
Vertical Horizontal Gradiente Roberts Sobel Laplaciano Alberto Raposo – PUC-Rio
68
Exemplo de detecção de arestas
RGB cinza Laplaciano Alberto Raposo – PUC-Rio
69
Filtragem filtro gaussiano filtro laplaciano Alberto Raposo – PUC-Rio
70
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. 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 Ribeirão Preto, SP, Brazil Alberto Raposo – PUC-Rio
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.