Mapeamento de Texturas e Visualização de Terreno Renato Massayuki Okamoto UFRJ – COPPE – PESC - LCG Prof. Cláudio Esperança Rio de Janeiro, RJ Março 2003 Sumário INTRODUÇÃO MAPEAMENTO DE TEXTURAS MIP-MAPPING CLIPMAP TEXTURAS PARA A VISUALIZAÇÃO DE TERRENOS LINHAS DE PESQUISA CONCLUSÃO Introdução Objetivo: Apresentar um apanhado dos trabalhos realizados sobre o mapeamento de texturas com especial interesse na área de visualização de terrenos. n Motivação: Embora exista grande quantidade de trabalhos que buscam simplificar superfícies poligonais, existia pouca pesquisa no desenvolvimento de técnicas mais eficazes na utilização de texturas; n Aumento da capacidade gráfica dos hardwares atuais criou um aumento de interesse na área de processamento de texturas. n Áreas de pesquisa no mapeamento de texturas Técnicas de anti-aliasing; Aceleração na renderização de texturas; Aplicação de mapeamento de textura a novos problemas de renderização; Síntese de texturas. Exemplos de aplicações da textura Colorização de uma superfície; Reflexão especular; Transparência; Reflexão difusa; Sombras; Contornos; Textos sem aliasing; Mapeamento de Textura É uma técnica utilizada para dar mais realismo a imagens geradas por computador: metodologia de criar uma complexidade aparente sem a modelagem e a renderização de cada detalhe de um objeto; Textura pode ser definida genericamente como sendo uma função multidimensional mapeada em um espaço multidimensional; Nas aplicações mais comuns, o mapeamento de textura correlaciona (mapeia) uma função em uma superfície 3D. O domínio pode ser 1D, 2D ou 3D; Mapeamento de Textura A imagem (textura) é mapeada na superfície 3D no espaço do objeto, o qual é então mapeado para a imagem (tela) através de uma projeção. ESPAÇO DA TEXTURA (u, v) parametrização ESPAÇO DO OBJETO (xo, yo, zo) projeção ESPAÇO DA TELA (x, y) MIP-MAPPING Pontos devem ser mapeados em pixels de uma imagem que possuem uma área -> ocorrência de serrilhados (aliasing); Calcular a cor do pixel a textura deve passar por um filtro que, em tempo real, seria custoso. Então utiliza-se uma textura préfiltrada; MIP-mapping: ao invés de uma única imagem de textura, utilizam-se várias imagens derivadas da original, onde em cada nível a imagem possui a metade da resolução do nível anterior; MIP = multum in parvo (muitas coisas em um mesmo lugar). MIP-MAPPING Se a imagem original possui uma resolução de 64X64 então a do nível seguinte possui 32X32, a próxima 16X16, até chegar a 1X1; MIP-MAPPING Ao renderizar utilizando mipmap, os pixels são projetados no espaço do mipmap utilizando coordenadas da textura, obedecendo posições geométricas, transformações geométricas e transformações da textura para definir a projeção; Cada pixel é derivado de um ou mais texels de um ou mais níveis do mipmap; MIP-MAPPING Existem vários fatores que podem determinar quais texels em um mipmap vão ser utilizados; Por exemplo: relação entre a posição do ponto de vista do observador e o acesso aos texels de um mipmap: CLIPMAP “The Clipmap: A Virtual Mipmap” n n Christopher C. Tanner, Christopher J. Migdal and Michael T. Jones Proceedings of SIGGRAPH ’98, pp. 151-159, 1998 Este trabalho se baseia no fato de que a maior parte de um mipmap completo não será utilizado na renderização de uma imagem; CLIPMAP O sistema é baseado no ponto de vista do observador e na resolução da tela para o controle de acesso ao mipmap; No caso de grandes texturas somente uma pequena porção dos texels no mipmap são acessíveis; O CLIPMAP é uma representação atualizável de um mipmap parcial: CLIPMAP Os níveis são limitados a um tamanho definido como ClipSize; Todos os níveis mantêm o tamanho lógico e a aritmética de acesso na renderização do nível correspondente de um mipmap completo; ClipCenter CLIPMAP ClipCenter é uma coordenada no espaço da textura que define o centro de uma camada; Definindo ClipSize e o ClipCenter para cada nível, está definindo a seleção da região da textura a ser colocada no cache; CLIPMAP InvalidBorder é uma faixa de texels dentro de cada nível e que não é utilizado pela lógica de amostragem de texels; Utilizado para fornecer uma região de armazenagem; EffectiveSize = ClipSize – 2xInvalidBorder Atualizando CLIPMAPS Para atualizar o cache, aproveita-se a significante coerência entre frames subseqüentes ; Especificando um novo ClipCenter, verifica-se que as regiões centrais permanecem a mesma e que sofreram apenas um deslocamento; Apenas o topo (T), a quina (C) e a borda lateral (R) serão atualizadas. Eficiência do CLIPMAP Eficiência no armazenamento de textura: Desvantagem: hardware específico. Texturas para Visualização de Terreno “Texturing Techniques for Terrain Visualization” n n Jürgen Döllner, Konstantin Baumann e Klaus Hinrichs IEEE Visualization, oct 2000 Apresenta técnica de renderização com o processamento de múltiplas multiresoluções de texturas de modelos de terrenos; Foco na visualização de informações para cartografia e em sistemas de navegação. Modelo de Multiresolução com Múltiplas Camadas de Texturas O modelo de multiresolução para texturas de terreno é uma extensão de um modelo de multiresolução para a geometria do terreno; Para cada camada de textura, existe um préprocessamento da textura original que vai resultar em uma pirâmide de imagens (mipmap) e uma árvore de textura; O algoritmo de renderização vai levar em conta tanto o erro de aproximação geométrico como o erro de aproximação da textura: a definição das tolerâncias vão controlar a qualidade visual e a performance da renderização. Modelo de Multiresolução com Múltiplas Camadas de Texturas Árvore de texturas A árvore de texturas representa retalhos de texturas em diferentes níveis de detalhes; Cada retalho de textura está associado a uma malha de geometria proveniente do modelo de multiresolução da geometria; Múltiplas camadas de texturas requerem múltiplas renderizações; Estrutura de dados para texturas Árvore de aproximação para as texturas As,d: n n n n n Retalho de textura (M) é associado a apenas uma malha de geometria NM ∈ As,d(G); O domínio de M cobre o domínio de NM: D(M)⊇D(NM); M referencia a parte da imagem SM com a maior resolução do mipmap ∆(T) que cobre inteiramente o domínio D(NM) e obedece as condições do sistema de renderização; Se SM não é parte da imagem na primeira textura do mipmap ∆(T) e a malha de geometria NM possui filhos, então o retalho de textura M possui filhos também; Se M possui filhos, então M e NM têm o mesmo número de filhos e o domínio de um filho de M é igual ao domínio do filho correspondente de NM. Camada de texturas É representado por uma pirâmide de imagens (mipmap) e por uma árvore de texturas; Tipos de camadas: n n n n Temática – informação de cor; Luminância – especifica o brilho aplicado a outras camadas de textura; Topográfica – especifica sombreamento de um modelo de terreno; Visibilidade – especifica transparência; As camadas de textura combinadas por operações. podem ser Operações com camada de texturas Blending: n n Baseado nos pesos fornecidos por uma textura alfa separada; Desta forma, blending em regiões arbitrárias podem ser definidas; Adição Ponderada: n n Várias texturas podem ser adicionadas à superfície do terreno; Os pesos da adição são fatores constantes para cada camada; Modulação: n n Duas ou mais camadas podem ser multiplicadas pixel a pixel; Visualização de camadas temáticas independentes e para adicionar informação de sombreamento proveniente de um textura topográfica; Lentes de textura Combinação de textura topográfica e temática; Textura de luminância para criar relevância (atrair a atenção) para determinada região. Animações Dados dinâmicos podem ser representados por uma seqüência de texturas através de uma combinação ponderada; Duas texturas são renderizadas com pesos α e (1-α); Texturas topográficas Melhorar a percepção e o reconhecimento da morfologia do terreno; Textura topográfica contendo informações de sombreamento é pré-computada baseada no modelo geográfico; Textura topográfica combinada com textura cartográfica; Algumas Linhas de Pesquisa Texture caching -> limitação de memória n n Processamento paralelo Gerenciamento de resolução Texture compression n n Vector quantization Wavelets Texture clusters 3D Texture Texture segmentation Conclusão Técnicas de texturas para visualização de terreno não foram bem estudadas ainda; Mapeamento de texturas é uma ferramenta fundamental para sistemas de visualização de informações de terreno.