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.

Slides:



Advertisements
Apresentações semelhantes
Geometria Computacional Galeria de Arte
Advertisements

Z-Buffer Método que opera no espaço da imagem
Uso de Filtros Filtros Passa Baixa
Operações envolvendo imagens
Reconhecimento de Padrões Métodos, Técnicas e Ferramentas para Aprendizado e Classificação de Dados Módulo II Introdução ao Processamento de Imagens.
DCA-0114 Computação Gráfica
Computação Gráfica Processamento de Imagem
Rasterização, Anti-aliasing e Preenchimento
António Ramires Fernandes & Luís Paulo Santos – Adaptado por Alex F. V. Machado Computação Gráfica Pipeline Gráfico.
Filtros de Convolução (Processamento de Imagens)
Pontifícia Universidade Católica do Rio de Janeiro – PUC-RJ
Ray Tracer Distribuído
Segmentação de imagens
Clipping. b. Triangle Strips Idéia fundamental: minimizar volume de vértices e consequentemente, minimizar cálculos de iluminação, normais, clipping,
COMPUTAÇÃO GRÁFICA.
Mapeamento de Texturas e Visualização de Terreno
Introdução à Computação Gráfica Recorte
35T56 – Sala 3F4 Bruno Motta de Carvalho DIMAp – Sala 15 – Ramal 227
Iana Alexandra Alves Rufino
Ismael Andrade Pimentel
Fundamentos de Computação Gráfica Prof.: Marcelo Gattass
INF 1366 – Computação Gráfica Interativa Transformações
INF 1366 – Computação Gráfica Interativa
INF 1366 – Computação Gráfica Interativa Clipping (Recorte)
Imagem Digital Conceitos, Processamento e Análise
INF 1366 – Computação Gráfica Interativa Grafos de Cena
Acompanhamento de Cenas com Calibração Automática de Câmeras
INF 2063 Tópicos em CG II Visualização de Modelos Massivos
Imagem Digital Conceitos, Processamento e Análise 1.Imagem e funções 2.Imagem digital: amostragem, quantização e codificação 3.Re-amostragem de funções.
INF 1366 – Computação Gráfica Interativa Modelagem Geométrica
Computação Gráfica: Aula5: Rendering e Rasterização
Computação Gráfica: Aula5: Rendering e Rasterização
Computação Gráfica: Rendering e Rasterização
Técnicas para algoritmos de superfície visível eficientes (Techniques for efficient visible-surface algorithms) Fabio Utzig Rodrigo Senger.
Aplicação da modelagem 3D no setor Industrial
Fundamentação Teórica
Filtragem Espacial É baseado na aplicação de máscaras na imagem.
Filtros I: o domínio espacial. FILTROS I: o domínio espacial.
Filtro Linear-Máscaras
AreaPortal Visibility By Filami. Objectivos Por em prática técnicas de determinação de visibilidades usando AreaPortals; Desenvolver uma aplicação experimental.
Seminário Introdução à Visão Computacional
Exercícios PAA- Grafos
Ray Tracing Felipe Baldino Moreira Fundamentos de Computação Gráfica
Introdução e Busca Cega
Técnicas de Modelagem para Aplicações em Computação Gráfica
Computação Gráfica – Visibilidade
Hardware assisted rendering of csg models
Visualização Tridimensional (Câmera Sintética)
Renderização em Tempo Real
Revisão Geral Técnicas de Realce Histogramas
Image Based Cartoon Style Rendering Jeronimo Silvério Venetillo Fabio Issao Nakamura.
Capítulo III – Processamento de Imagem
Computação Gráfica – Visibilidade Profa. Mercedes Gonzales Márquez.
Helder Geovane Gomes de Lima
Classificação de Imagens de Sensoriamento Remoto
Ray Tracing Estocástico e Distribuido Aruquia Barbosa.
Segmentação de Fundo Marcelo Gonella
Algemiro Augusto Professor: Marcelo Gattass
Imagens: De intensidade e de Profundidade Prof a Dr a Mercedes Gonzales Márquez Prof a Dr a Mercedes Gonzales Márquez Universidade Estadual de Mato Grosso.
Sistemas de Rastreamento de Baixo Custo para Desktops Tecgraf (Grupo de Tecnologia em Computação Gráfica) Depto. de Informática, PUC-Rio Alberto Raposo,
Visualização 3D de Imagens Médicas
INF 1366 – Computação Gráfica Interativa Rasterização
Computação Gráfica – Visibilidade Profa. Mercedes Gonzales Márquez.
Plano de Aulas  Estruturas de aceleração  Descarte contra volume de visão  Descarte por oclusão  Grafo de cena: OpenSceneGraph  Traçado de raios em.
Computação Gráfica – Visibilidade Profa. Mercedes Gonzales Márquez.
Estruturas de Dados Murilo Salgado Razoli.
Introdução à Computação Gráfica Visibilidade e Recorte
Processamento de Imagens e Computação Gráfica
Computação Gráfica - Amostragem Profa. Mercedes Gonzales Márquez.
Introdução à Computação Gráfica Rasterização
Transcrição da apresentação:

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 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 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? Alberto Raposo – PUC-Rio

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

Algoritmo do Pintor profundidade z Alberto Raposo – PUC-Rio M. Gattass, PUC-Rio

Problemas na ordenação de faces + + za zb Alberto Raposo – PUC-Rio M. Gattass, PUC-Rio

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

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 MATRIZ DE PROFUNDIDADES Alberto Raposo – PUC-Rio M. Gattass, PUC-Rio

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

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

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

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

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

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

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 A A C 4 3 - + B C - B + - + 1 3 2 4 1 2 S. Chenney, Univ. of Wisconsin Alberto Raposo – PUC-Rio

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

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

Exemplo: Célula-Portal View Alberto Raposo – PUC-Rio S. Chenney, Univ. of Wisconsin

Exemplo: Célula-Portal View Alberto Raposo – PUC-Rio S. Chenney, Univ. of Wisconsin

Exemplo: Célula-Portal View Alberto Raposo – PUC-Rio S. Chenney, Univ. of Wisconsin

Exemplo: Célula-Portal View Alberto Raposo – PUC-Rio S. Chenney, Univ. of Wisconsin

Cell-Portal Example (5) View Alberto Raposo – PUC-Rio S. Chenney, Univ. of Wisconsin

Exemplo: Célula-Portal View Alberto Raposo – PUC-Rio S. Chenney, Univ. of Wisconsin

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 Alberto Raposo – PUC-Rio

Grafo de Cena Alberto Raposo – PUC-Rio

Resultados 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 P4 2.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 39 112 s/ Portais c/ Portais 39 112 Alberto Raposo – PUC-Rio

Teste de Desempenho (3) Quadros por Segundo 190 180 s/ Portais c/ Portais 190 180 Alberto Raposo – PUC-Rio

Teste de Desempenho (4) Quadros por Segundo 30 94 s/ Portais c/ Portais 30 94 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 Alberto Raposo – PUC-Rio

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

Jagged Edges (serrilhado) Efeitos de Aliasing Jagged Edges (serrilhado) Perda de detalhes Alberto Raposo – PUC-Rio ACM SIGGRAPH Educator’s Slide Set

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

Anti-Aliasing Algoritmos e técnicas desenvolvidos para combater os efeitos de aliasing Alberto Raposo – PUC-Rio

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

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

Pré-filtragem Sem Anti-aliasing Pré-filtragem Alberto Raposo – PUC-Rio ACM SIGGRAPH Educator’s Slide Set

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

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

Exemplos de Anti-aliasing Alberto Raposo – PUC-Rio ACM SIGGRAPH Educator’s Slide Set

Exemplos de Anti-aliasing Alberto Raposo – PUC-Rio ACM SIGGRAPH Educator’s Slide Set

Exemplos de Anti-aliasing Alberto Raposo – PUC-Rio ACM SIGGRAPH Educator’s Slide Set

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

Falando em filtros... Imagem: uma função do R2 em C Alberto Raposo – PUC-Rio

Imagem Colorida v G R Alberto Raposo – PUC-Rio u B

Tons de cinza e negativo Lx,y = 0.299Rx,y + 0.587Gx,y + 0.114Bx,y tons de cinza Lx,y = 255 - Lx,y 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) função original f(x) amostra 1 2 3 4 5 6 partição do eixo x Alberto Raposo – PUC-Rio

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

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 64x54 - 16 cores 5*55, 1*55, 1*20, 1*22, …. codificação Imagem amostrada, quantizada e codificada Imagem amostrada e quantizada Alberto Raposo – PUC-Rio

Melhoras na distribuição espacial Filtros espaciais Melhoras na distribuição espacial Alberto Raposo – PUC-Rio

Suavização f h Alberto Raposo – PUC-Rio

Mascara ou Filtro ou: Alberto Raposo – PUC-Rio

Convolução Alberto Raposo – PUC-Rio

Gaussiana 0.3 0.2 0.1 -4 -3 -2 -1 1 2 3 4 Alberto Raposo – PUC-Rio

Gaussiana Alberto Raposo – PUC-Rio

Filtragem gaussiana Alberto Raposo – PUC-Rio

Filtro Gaussiano Alberto Raposo – PUC-Rio

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

Detecção de bordas Gradiente Laplaciano Alberto Raposo – PUC-Rio

Filtros de realce de bordas Vertical Horizontal Gradiente Roberts Sobel Laplaciano Alberto Raposo – PUC-Rio

Exemplo de detecção de arestas RGB cinza Laplaciano Alberto Raposo – PUC-Rio

Filtragem filtro gaussiano filtro laplaciano 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. Alberto Raposo – PUC-Rio