A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

INF 1366 – Computação Gráfica Interativa Eliminação de Superfícies Escondidas; Anti-Aliasing e Imagens Digitais Alberto B. Raposo abraposo@tecgraf.puc-rio.br.

Apresentações semelhantes


Apresentação em tema: "INF 1366 – Computação Gráfica Interativa Eliminação de Superfícies Escondidas; Anti-Aliasing e Imagens Digitais Alberto B. Raposo abraposo@tecgraf.puc-rio.br."— Transcrição da apresentação:

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


Carregar ppt "INF 1366 – Computação Gráfica Interativa Eliminação de Superfícies Escondidas; Anti-Aliasing e Imagens Digitais Alberto B. Raposo abraposo@tecgraf.puc-rio.br."

Apresentações semelhantes


Anúncios Google