Renan Augusto Dembogurski. Geração Interativa de Malhas em Multiresolução através de Marcadores em Realidade Aumentada

Tamanho: px
Começar a partir da página:

Download "Renan Augusto Dembogurski. Geração Interativa de Malhas em Multiresolução através de Marcadores em Realidade Aumentada"

Transcrição

1 UNIVERSIDADE FEDERAL DE JUIZ DE FORA INSTITUTO DE CIÊNCIAS EXATAS PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO Renan Augusto Dembogurski Geração Interativa de Malhas em Multiresolução através de Marcadores em Realidade Aumentada Juiz de Fora 2013

2 UNIVERSIDADE FEDERAL DE JUIZ DE FORA INSTITUTO DE CIÊNCIAS EXATAS PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO Renan Augusto Dembogurski Geração Interativa de Malhas em Multiresolução através de Marcadores em Realidade Aumentada Dissertação apresentada ao Programa de Pós-Graduação em Ciência da Computação, do Instituto de Ciências Exatas da Universidade Federal de Juiz de Fora como requisito parcial para obtenção do título de Mestre em Ciência da Computação. Orientador: Rodrigo Luis de Souza da Silva Coorientador: Marcelo Bernardes Vieira Juiz de Fora 2013

3 Ficha catalográfica elaborada através do Programa de geração automática da Biblioteca Universitária da UFJF, com os dados fornecidos pelo(a) autor(a) Dembogurski, Renan Augusto. Geração Interativa de Malhas em Multiresolução através de Marcadores em Realidade Aumentada / Renan Augusto Dembogurski f. : il. Orientador: Rodrigo Luis de Souza da Silva Coorientador: Marcelo Bernardes Vieira Dissertação (mestrado acadêmico) - Universidade Federal de Juiz de Fora, Instituto de Ciências Exatas. Programa de Pós- Graduação em Ciência da Computação, Deformação de malhas. 2. Malhas Semi-Regulares Adaptativas Parametrização. 4. Realidade Aumentada. I. de Souza da Silva, Rodrigo Luis, orient. II. Bernardes Vieira, Marcelo, coorient. III. Título.

4 Renan Augusto Dembogurski Geração Interativa de Malhas em Multiresolução através de Marcadores em Realidade Aumentada Dissertação apresentada ao Programa de Pós-Graduação em Ciência da Computação, do Instituto de Ciências Exatas da Universidade Federal de Juiz de Fora como requisito parcial para obtenção do título de Mestre em Ciência da Computação. Aprovada em 25 de Janeiro de BANCA EXAMINADORA Prof. D.Sc. Rodrigo Luis de Souza da Silva - Orientador Universidade Federal de Juiz de Fora Prof. D.Sc. Marcelo Bernardes Vieira Universidade Federal de Juiz de Fora Prof. D.Sc. Leandro Schaeffer Marturelli Universidade Federal do Rio de Janeiro Prof. D.Sc. Eduardo Barrére Universidade Federal de Juiz de Fora

5 A minha mãe e meu irmão. A minha namorada, Lidya.

6 AGRADECIMENTOS Agradeço a todas as pessoas que me ajudaram nessa caminhada árdua. De forma mais específica, agradeço a minha mãe por ser uma ouvinte paciente ao longo de incontáveis horas e ao meu irmão por sempre me apoiar e ajudar nos trabalhos desenvolvidos. Agradeço a mulher da minha vida, Lidya, a pessoa mais especial que já conheci e sem a qual não estaria escrevendo esse agradecimento. Gostaria de agradecer aqui também meus amigos, Carlão, Viviz, Tadeu, Zezão, Dhiego, Barra entre outros. Agradeço porque vocês contribuíram diretamente para o meu sucesso, seja com palavras de amizade ou de trollagem. Agradeço a CAPES pela bolsa que me permitiu estudar em regime integral no mestrado. Agradeço aos professores que me ajudaram em meu caminho, cada um do seu jeito.

7 Ver o bem e não fazê-lo é sinal de covardia. Confúcio

8 RESUMO Este trabalho apresenta um método que permite a deformação de um terreno pela modificação do seu mapa de alturas em um ambiente de realidade aumentada. A estrutura hierárquica de malhas A4-8 foi utilizada para representar o terreno. Essa estrutura define um espaço paramétrico para calcular as coordenadas de um terreno no espaço Euclidiano R 3. Em especial, este trabalho lida com o problema de modelagem de terrenos esféricos. Uma métrica de erro dependente do observador e da geometria do terreno utilizada tanto para sua observação quanto para sua modelagem. Os resultados demonstram que o uso da malha A4-8 em conjunto com o sistema de realidade aumentada tangível é flexível para modelar terrenos esféricos e pode ser facilmente modificada para terrenos com a topologia do cilindro e do toro. O desenvolvimento de um método de geração de malhas eficiente e de uso intuitivo, baseado em marcadores de realidade aumentada, é a principal contribuição deste trabalho. Palavras-chave: Deformação de malhas. Malhas Semi-Regulares Adaptativas 4-8. Parametrização. Realidade Aumentada.

9 ABSTRACT This work presents a method that allows the deformation of a terrain by modifying your heightmap in an augmented reality environment. The hierarchical structure of A4-8 meshes was used to represent terrains. This structure defines a parameter space to calculate the coordinates of a field in the R 3 Euclidean space. In particular, this paper deals with the problem of modeling spherical terrains. An error metric dependent on the observer and the geometry of the land used for its observation and modeling. The results demonstrate that the use of A4-8 mesh combined with the tangible augmented reality system is flexible to shape spherical terrains and can be easily modified to deal with other topologies, such as the torus and the cylinder. The development of an efficient and intuitive to use method for mesh generation, based on augmented reality markers, is the main contribution of this work. Keywords: Mesh Deformation. 4-8 Semi-regular Adaptive Meshes. Parametrization. Augmented Reality.

10 LISTA DE FIGURAS 1.1 Um modelo 3D criado pela interface intouch (GREGORY et al., 1999) Exemplo da interface 2D Teddy (IGARASHI et al., 2007) Seleção de parte de um modelo no sistema 3DARModeler (DO; LEE, 2010) Visualização de parte da superfície, diferentes cores representam as características geológicas de cada região (FAETH; HARDING, 2009) Deformação interativa de uma submalha (FAETH; HARDING, 2009) Estrutura de uma malha 4-8, em (a) um bloco básico destacado em roxo e em (b) dois passos de refinamento, o primeiro gera os vértices em azul e o segundo, os vértices em vermelho (a) Protótipo de subdivisão quaternária e (b) protótipo de subdivisão binária Refinamento e simplificação da malha A Níveis 0 5 de uma bintree triangular Refinamento e simplificação do diamante Divisão forçada de um triângulo Cilindro sendo conformado em uma esfera. No meridiano da esfera as coordenadas das duas bordas do plano são conectadas (NOEL, 2010) Wedgies aninhados em 1D, com os dependentes de v (DUCHAINEAU et al., 1997) Visão geral do método (a) Vértice de controle v c e (b) a atualização da sua posição devido ao refinamento da malha. A esfera azul representa o vértice de controle v c e a esfera vermelha é a posição do marcador móvel Início do processo de expansão. O vértice de controle é v c no domínio discreto e v c no domínio contínuo. O raio que define a área de deformação é r d e d ic é a distância em R 3 entre o vértice de controle v c e um de seus vizinhos v i O conjunto V dc, em verde, representa os vértices que possuem a propriedade I(u, v). No exemplo, todos os vizinhos estão dentro da área de deformação. 42

11 3.5 Exemplo de expansão na direção diagonal (a) e na direção vertical/horizontal (b). Um passo do algoritmo de expansão após todos os vizinhos de v c serem computados pode ser visto em (c) Tratamento de bordas no caso de vértices se expandindo além das dimensões do terreno. Para a latitude, se um vértice v extrapola as dimensões do terreno, a expansão é interrompida naquela direção. No caso da longitude, a coordenada u do vértice é modificada para que ele possa continuar expandindo Exemplo de propagação de erro correta. No triângulo da esquerda (a) valores de altura para os vértices do triângulo T e no triângulo da direita (b) os respectivos valores de erro Exemplo de expansão hierárquica. Em (a) ocorre o primeiro caso, passo na vertical e caminhada diagonal. Em (b) acontece o segundo caso, passo diagonal e caminhada vertical, ambos na iteração de valor zero. Já em (c) repete-se o primeiro caso e em (d) o segundo, agora para iteração de valor um Visualização de um terreno esférico. Janela de visão local (a) e global (b) Mudanças na malha provocadas pela distância entre câmera e terreno. Posição inicial do terreno em (b), câmera aproximada do terreno (c) e afastada (a) Uma sequência de quadros espaçados no tempo que demonstram a malha sendo deformada utilizando o método proposto Resultado da tesselagem para valores diferentes de erro máximo. Em (a) o valor de erro utilizado foi dist max = 1.0 e em (b) dist max = Visualização de diferentes áreas de deformação. O valor do raio de deformação utilizado em (a) foi r d = 150km, em (b) r d = 300km e em (c) r d = 600km Deformação de terrenos utilizando a função de distribuição Gaussiana. A deformação obtida para um valor de σ = 0.17 e média µ = 1 pode ser visto em (a). Em (b), σ = 0.75 e µ = Tratamento de bordas. Em (a) é possível ver o terreno deformado na região da borda sem o tratamento. Em (b) a mesma região do terreno, agora deformada com tratamento de borda

12 4.8 Visualização de um terreno final gerado através do método proposto. Escala local em (a) e global em (b)

13 LISTA DE TABELAS 4.1 Tempo médio de renderização do terreno em segundos quando uma quantidade de vértices é modificada em uma determinada latitude. Resolução máxima de vértices Tempo médio de renderização do terreno em segundos quando uma quantidade de vértices é modificada em uma determinada latitude. Resolução máxima de vértices Tempo médio de renderização do terreno em segundos quando uma quantidade de vértices são modificados em uma determinada latitude. Resolução máxima de vértices

14 LISTA DE SÍMBOLOS v Ponto ou coordenada discreta v = (u, v), com u, v N. v Ponto ou coordenada contínua v = (x, y, z), com x, y, z R. v c v c Vértice de controle no domínio discreto. Vértice de controle no domínio contínuo. d ic Distância Euclidiana em R 3 entre um vetor v i e o vértice de controle v c. f(u, v) Função de mapeamento que realiza a passagem do domínio discreto para o contínuo. I(u, v) Função que indica se um vértice v = (u, v), ao ser mapeado no domínio contínuo, está a uma determinada distância do vértice de controle v c. dist( v) Erro dependente do observador. É a distância entre a posição correta no espaço de tela de um vértice v e sua aproximação pela triangulação T.

15 SUMÁRIO 1 INTRODUÇÃO DEFINIÇÃO DO PROBLEMA E OBJETIVOS OBJETIVOS TRABALHOS RELACIONADOS Deformação de Malhas em Realidade Aumentada Interfaces de Usuário em 3D FUNDAMENTOS MALHAS REGULARES ADAPTATIVAS Construção da Estrutura Hierárquica Abordagens para Construção da Malha A Representação da Estrutura Hierárquica Bintree Triangular PARAMETRIZAÇÃO Partição do Espaço de Parâmetros MÉTRICA DE ERRO Erro Geométrico Erro Dependente do Observador MÉTODO PROPOSTO VISÃO GERAL DO MÉTODO DEFINIÇÃO DO PONTO DE CONTROLE DEFINIÇÃO DA ÁREA DE DEFORMAÇÃO Crescimento de Região Visão Geral do Algoritmo Função Recursiva de Expansão Tratamento de Borda PROPAGAÇÃO DE ALTURAS E ERROS Cálculo e Propagação de Alturas Métrica e Propagação de Erro

16 4 RESULTADOS VISUALIZAÇÃO DO TERRENO ESFÉRICO EXPERIMENTOS REALIZADOS PARTICULARIDADES CONCLUSÃO REFERÊNCIAS

17 15 1 INTRODUÇÃO A deformação de malhas representa um recurso importante para a área de modelagem de objetos por permitir a modificação de uma superfície para atender a um determinado fim. Devido à sua importância, várias técnicas de deformação foram desenvolvidas ao longo do tempo, como visto em (BARR, 1984; SEDERBERG; PARRY, 1986; COQUILLART, 1990; SINGH; FIUME, 1998; SUMNER et al., 2007). Algumas destas técnicas levam em consideração a decomposição de superfícies muito detalhadas em níveis hierárquicos (KOBBELT et al., 2000; SHA et al., 2007). A representação de superfícies em múltiplos níveis de detalhamento permite que alterações sejam feitas em qualquer um desses níveis, resultando em um controle fino da malha. Uma estrutura hierárquica que possui propriedades favoráveis para a representação e modelagem de terrenos em vários níveis de detalhe é a malha semi-regular adaptativa 4-8 (malha A4-8). Através dessa estrutura, é possível representar terrenos com diferentes resoluções, permitindo controle pontual sobre a malha gerada. A A4-8 também pode definir um espaço paramétrico para calcular as coordenadas de um terreno no espaço Euclidiano R 3. Modificar superfícies em vários níveis de detalhe é de interesse para área de Interfaces de Usuários em 3D (GREGORY et al., 1999; SANTHANAM et al., 2004; IGARASHI et al., 2007), porque muitos aplicativos desenvolvidos nesta área permitem um alto nível de interação entre usuários e modelos virtuais. No caso de aplicativos que envolvam modelagem de objetos, é possível desenvolver interfaces 3D nas quais o usuário consiga interagir com modelos 3D, como também controlar e modificar de maneira pontual a superfície de um modelo através de estruturas hierárquicas. Um dos possíveis meios para interação com modelos em 3D é a realidade aumentada. Nela, elementos reais e virtuais são combinados para criar a impressão de que coexistem em uma mesma cena. Tal efeito pode ser alcançado através de diversas tecnologias como sistemas de projeção ótica, monitores e dispositivos portáteis. Para interagir com os modelos virtuais foi desenvolvida uma interface chamada Tangible Augmented Reality (TAR) (BILLINGHURST HIROKAZU KATO, 2001), onde cada objeto virtual é associado a um objeto físico e o usuário interage com os objetos virtuais manipulando os objetos tangíveis.

18 16 Esta dissertação propõe um método para deformar terrenos esféricos através da combinação da estrutura da A4-8 com marcadores fiduciais. A ideia é visualizar uma malha associada a um marcador físico e modificá-la utilizando outro marcador físico móvel. A interface 3D final permite que um usuário rotacione e translade livremente um modelo 3D utilizando suas mãos, permitindo também que o usuário modifique sua superfície em vários níveis de detalhe. O método proposto permite um alto nível de interação com o modelo. O usuário interage com o modelo movendo manualmente o marcador físico móvel ao longo da superfície a ser alterada. O método proposto pode ser utilizado na construção de ambientes de jogos. 1.1 DEFINIÇÃO DO PROBLEMA E OBJETIVOS O problema tratado nesta dissertação é como deformar terrenos que possuem a topologia da esfera (terrenos esféricos) em múltiplos níveis de detalhamento através de interação por realidade aumentada. 1.2 OBJETIVOS O principal objetivo desta dissertação é apresentar um método interativo para deformar terrenos em tempo real. Como objetivos secundários temos: Demonstrar, através de uma aplicação do método proposto, que o desempenho de um aplicativo que utiliza a metodologia proposta pode ser mantido em diferentes níveis de resolução do terreno. Apresentar uma interface 3D para deformar terrenos em tempo real. No contexto de Realidade Aumentada, tempo real é definido como quadros por segundo. 1.3 TRABALHOS RELACIONADOS Serão apresentados nesta seção diferentes abordagens para deformar malhas através de realidade aumentada. Todas as abordagens relacionadas utilizam interfaces de usuário em 3D.

19 17 A seção apresenta métodos para modelar objetos 3D em multiresolução através de realidade aumentada. Na seção são apresentados diferentes tipos de interfaces de usuário 3D, onde há interação através de realidade aumentada DEFORMAÇÃO DE MALHAS EM REALIDADE AUMENTADA Não existem muitos trabalhos que lidam com o problema da deformação de malhas através de realidade aumentada. O foco da maioria dos estudos envolvendo modelagem de objetos e realidade aumentada está nos modelos de deformação em geral, ou no desenvolvimento de aplicativos para áreas como a de simulação de operações cirúrgicas (NEALEN et al., 2006), modelagem de roupas (BARAFF; WITKIN, 1998; NEALEN et al., 2006) e modelagem de acidentes (O BRIEN; HODGINS, 1999). Um trabalho que permite a modificação interativa de malhas poligonais em multiresolução através de uma interface 3D pode ser encontrado em (GREGORY et al., 1999). Os autores propõem uma interface chamada intouch, que contém uma cena 3D para visualização do modelo e um menu 2D para realização de operações pelo usuário. O modelo é editado na cena através de um dispositivo háptico. A interface possui um subsistema de edição de malhas em multiresolução, que utiliza como entrada a posição da sonda do dispositivo háptico projetada na cena e a direção da força aplicada. A medida que o usuário movimenta a sonda, uma modificação na superfície do modelo ocorre de acordo com a operação selecionada. A estrutura hierárquica escolhida para representar o modelo foi a malha poligonal de subdivisão. O subsistema de edição de malhas recebe um triângulo, um ponto de contato e um vetor de movimento como entrada. Quando a malha é modificada em uma determinada resolução, um conjunto de vértices é movido. A modificação é propagada para os níveis de maior e menor detalhe, através de subdivisões na malha e suavização respectivamente. Um exemplo de modelo criado pela interface intouch pode ser visto na Figura 1.1. No modelo contido nessa dissertação, o ponto de controle para deformação é um vértice da malha e a deformação é propagada apenas para os níveis de resolução maiores que o desse ponto. A visualização do modelo através da interface intouch sempre mostra o nível mais refinado da malha. Esse fato pode tornar a interface inviável para deformações que utilizem um número elevado de triângulos em tempo real. Um fator importante a ser mencionado

20 18 Figura 1.1: Um modelo 3D criado pela interface intouch (GREGORY et al., 1999). é que, em regiões distantes do observador, um nível de resolução elevado pode ser desnecessário na visualização do objeto. Nesta dissertação o nível de detalhe depende não só da geometria do objeto, mas também da distância em relação ao observador. Outro trabalho que segue a mesma ideia da interface intouch pode ser visto em (FOS- KEY et al., 2005). Os autores apresentam um sistema chamado ArtNova para modelagem de objetos 3D utilizando interface háptica. Diferente da interface citada anteriormente, o sistema ArtNova possui diversas técnicas de visualização dinâmica, como navegação baseada na visão e reposicionamento automático. É importante mencionar que nos trabalhos citados o objeto a ser deformado não consiste de milhares de triângulos como as malhas que adaptam terrenos reais. Não foi encontrado nenhum trabalho na literatura que lidasse diretamente com a interação entre usuário e modelos 3D compostos de milhares de triângulos em multiresolução através de realidade aumentada tangível INTERFACES DE USUÁRIO EM 3D A área que estuda as interfaces de usuário que apresentam interação 3D é chamada de interfaces de usuário em 3D (BOWMAN et al., 2004). Esta área busca estudar as melhores abordagens para criar interfaces que proporcionem uma experiência diferenciada para os usuários. Para alcançar este objetivo, as interfaces desenvolvidas apresentam diversas características distintas. Dentre as características que tornam as interfaces de usuário em 3D diferenciadas, é possível destacar a promoção de imersão em ambientes virtuais, resolução de problemas

21 19 relacionados a tarefas importantes como navegação e manipulação e a capacidade de serem imperceptíveis quando em uso. Um survey que relaciona em detalhes as categorias e objetivos desta área pode ser encontrado em (BOWMAN; FROHLICH, 2005; BOWMAN et al., 2008) As interfaces em 3D que lidam com a manipulação de objetos virtuais através de realidade aumentada são de interesse para esta dissertação. Em específico, é possível citar o trabalho desenvolvido em (IGARASHI et al., 2007), onde o usuário faz esboços de forma livre em uma interface 2D chamada Teddy que depois são utilizados para gerar uma malha poligonal 3D plausível (Fig. 1.2). Figura 1.2: Exemplo da interface 2D Teddy (IGARASHI et al., 2007). Um trabalho que utiliza realidade aumentada tangível como interface 3D para modelar objetos 3D pode ser encontrado em (DO; LEE, 2010), onde os autores apresentam um sistema de modelagem 3D em um ambiente de realidade aumentada chamado 3DARModeler. Com este sistema é possível criar um modelo 3D através de uma ou várias geometrias primitivas, aplicar texturas, adicionar animações, estimar fontes de luz real e projetar sombras no mesmo. A diferença entre a interface deste sistema e a que foi desenvolvida nesta dissertação relaciona-se a modelagem de objetos. No sistema 3DARModeler os objetos são modelados pela combinação de geometrias primitivas, sendo estas estáticas. Em outras palavras, a malha não pode ser deformada de acordo com a vontade do usuário. Já no caso desta dissertação, a proposta é mudar dinamicamente a geometria de uma superfície em múltiplos níveis de detalhe, provendo controle preciso sobre a malha e maior interação entre

22 20 usuário e modelo. Um outro fator que distingue essas interfaces é o método de seleção dos objetos de interesse. No sistema 3DARModeler, uma parte do objeto é selecionada apontando-se um marcador físico para um ponto de controle representado por um objeto virtual, que indica se o modelo está sendo apontado (Fig. 1.3). Como cada marcador físico possui um sistema próprio de coordenadas, apontar um marcador móvel em direção a outro, para selecioná-lo, pode ser uma tarefa difícil e imprecisa. A seleção de parte do objeto, utilizando o método proposto nesta dissertação, é mais intuitiva. A posição de um marcador fiducial é projetada na superfície de um objeto e o ponto mais próximo dessa posição, pertencente à malha, é escolhido como ponto de controle. É possível, também, modificar a posição do marcador fiducial movendo-o ao longo da superfície, modificando os pontos de controle resultantes. Figura 1.3: Seleção de parte de um modelo no sistema 3DARModeler (DO; LEE, 2010). Um trabalho que utiliza dispositivos de resposta de força como interface para modelar objetos 3D pode ser visto em (FAETH; HARDING, 2009), onde os autores apresentam um método que permite a um geocientista interagir com superfícies pintando-as de acordo com sua maleabilidade. Em um passo inicial, o geocientista classifica as regiões da superfície de acordo com suas características geológicas. Três parâmetros de deformação, alongamento, compressão e rasgo são mapeados nas três cores primárias de uma sistema de cores RGB, para que seja possível definir para cada área uma característica. Os autores utilizam um mapa de calor baseado na cor que o ferro adquire ao ser aquecido. Uma cor mais escura repre-

23 senta um material mais rígido, enquanto cores próximas ao vermelho, laranja ou branco, representam materiais mais maleáveis (Fig. 1.4). 21 Figura 1.4: Visualização de parte da superfície, diferentes cores representam as características geológicas de cada região (FAETH; HARDING, 2009). O geocientista utiliza um dispositivo háptico chamado Phantom para deformar a superfície do modelo 3D. Utilizando a parte móvel do dispositivo, chamada stylus, o usuário determina o local onde será feita a deformação. Uma pinça virtual serve como guia à medida que o usuário movimenta a stylus. Determinado este local, o usuário pressiona um botão na parte móvel do dispositivo e continua movimentando-a, agora para determinar o deslocamento que será convertido em deformação através de um algoritmo proposto pelos autores. A Figura 1.5a mostra um momento na seleção de região de deformação e a Figura 1.5b mostra o dispositivo háptico. (a) (b) Figura 1.5: Deformação interativa de uma submalha (FAETH; HARDING, 2009). Muitos trabalhos na bibliografia utilizam aparelhos específicos para interagir com os modelos, o que às vezes inviabiliza sua reprodução, ou cria a necessidade de treino prévio

24 22 do usuário. A interface desenvolvida nesta dissertação, ao contrário, necessita apenas de um marcador móvel e um dispositivo de captura de vídeo para que o usuário consiga interagir com um modelo 3D intuitivamente em tempo real.

25 23 2 FUNDAMENTOS 2.1 MALHAS REGULARES ADAPTATIVAS 4-8 Uma malha poligonal é definida pelo par M := (V, F ), onde V é o conjunto de vértices V := { v i := (x i, y i, z i ) R 3, i = 1,..., n} e F é um complexo simplicial abstrato que contém informação de conectividade como, por exemplo, a topologia. Em particular, se considerarmos uma malha triangular cada elemento no complexo F se enquadra em algum desses tipos: vértice {i}, aresta {i, j} e face {i, j, k} ((PATANè; SPAGNUOLO, 2003)). Para criar um modelo virtual de um terreno real, é necessário considerar a informação que descreve os elementos da malha, ou seja, a conectividade e a geometria da mesma. A conectividade da malha, ou topologia, descreve a relação de incidência entre os elementos da malha. A geometria da malha especifica a posição e outras características de cada vértice. Tipicamente é possível distinguir a conectividade de uma malha entre irregular e (semi- )regular. As malhas irregulares não possuem restrição na valência (número de arestas incidentes) de um vértice, enquanto as malhas regulares são formadas por um domínio base irregular que sofre refinamento regular recursivo. A conectividade da malha representa, assim, um fator de vital importância no desenvolvimento de aplicativos que realizem a modelagem de objetos e geralmente guia a escolha dos algoritmos a serem utilizados. Neste trabalho foram utilizadas malhas semi-regulares devido à sua estrutura paramétrica previsível e conectividade mais compreensível que no caso das malhas irregulares. Uma malha pode ser definida como regular, ou de topologia regular, se todas as faces e vértices possuem as mesmas propriedades combinatórias como, por exemplo, mesmo tamanho e mesma valência (AKLEMAN; CHEN, 2005). No caso das malhas semi-regulares, todas as faces ou todos os vértices possuem a mesma estrutura topológica, mas não ambos (AKLEMAN et al., 2005). Dentre as várias categorias de malhas regulares, é necessário escolher uma que, além de representar um terreno, possa dar suporte a métodos de refinamento e simplificação. As malhas semi-regulares do tipo 4-8 (valência dos vértices igual a 4 ou 8, exceto nas bordas) se encaixam no perfil desejado para resolver o problema tratado nesta dissertação

26 24 (Fig. 2.1). A malha semi-regular 4-8 é uma estrutura hierárquica para subdivisão de superfícies, ou um complexo celular homeomorfo ao ladrilho de Laves [4, 8 2 ] (VELHO; GOMES, 2000). Várias vantagens desta estrutura podem ser mencionadas: são quadrangulações trianguladas refináveis, então combinam as propriedades estruturais de malhas triangulares e quadrangulares; suportam refinamento uniforme e não uniforme, tornando possível a geração de tesselagens adaptadas em multiresolução; o refinamento é composto de dois passos de subdivisão binária, permitindo fatoração dos esquemas de subdivisão; são construídas utilizando bisseções, que são fáceis de implementar e produzem transição gradual de resolução. As malhas semi-regulares 4-8 podem ser classificadas como adaptativas e não-adaptativas. No caso das malhas não-adaptativas, existe apenas uma hierarquia na malha, ou seja, as modificações feitas em uma região da malha afetam a resolução da malha globalmente. Já no caso das malhas adaptativas, existe uma família de hierarquias, de forma que não há interferência entre modificações locais em cada nível. Esta dissertação utiliza malhas adaptativas para que seja possível deformar um terreno em diferentes níveis de detalhe independentes entre si e visualizá-lo em diferentes resoluções através de simplificações ou refinamentos. Um exemplo desta estrutura pode ser visto na Figura 2.1, onde é mostrado um bloco básico da estrutura e dois passos de refinamento consecutivos realizados sobre ele CONSTRUÇÃO DA ESTRUTURA HIERÁRQUICA As tesselagens de uma malha A4-8 são ladrilhamentos refináveis. Esta propriedade significa que é possível subdividir um ladrilho menos detalhado e obter um semelhante mais detalhado, ou seja, é possível construir uma tesselagem em multiresolução usando refinamento. Existem dois métodos alternativos de construção: subdivisão quaternária e subdivisão binária intercalada.

27 25 (a) (b) Figura 2.1: Estrutura de uma malha 4-8, em (a) um bloco básico destacado em roxo e em (b) dois passos de refinamento, o primeiro gera os vértices em azul e o segundo, os vértices em vermelho (a) (b) Figura 2.2: (a) Protótipo de subdivisão quaternária e (b) protótipo de subdivisão binária. Considere uma malha M = (V, A, P), onde V, A e P é o conjunto de vértices, arestas e faces (polígonos) pertencentes à esta malha, respectivamente. Considere também, que o conjunto de vértices de valência igual a quatro é V 4 e o de valência igual a oito é V 8. O procedimento de refinamento subdivisão quaternária de uma malha M pode ser visto na Figura 2.2a e é descrito através dos seguinte passos: 1. Divida todas as arestas a A em seus pontos médios m; 2. Subdivida todas as faces f P em quatro novas faces, ligando o vértice de valência 4, v V 4, ao ponto médio m da aresta oposta e ligando m aos pontos médios das duas outras arestas. O procedimento de subdivisão binária intercalada é ilustrado pela Figura 2.2b e é realizado através dos seguintes passos: 1. Divida as arestas a = (v i, v j ) A que são formadas por dois vértices de valência 8, v i, v j V 8 ;

28 2. Subdivida todas as faces f P em duas sub-faces, ligando o vértice de valência 4, v V 4, ao ponto médio m da aresta oposta Abordagens para Construção da Malha A4-8 Uma malha A4-8 pode ser construída através de duas abordagens: top-down e bottom-up. A abordagem top-down, também chamada método de refinamento, se caracteriza por criar uma malha na menor resolução possível e, progressivamente, aumentar a resolução através da criação de novos triângulos e adição dos mesmos à malha. Já a abordagem bottom-up, ou método de simplificação, cria uma malha na maior resolução possível e, de maneira análoga, reduz a resolução pela união de triângulos presentes na malha (Fig. 2.3). Refinamento Simplificação Figura 2.3: Refinamento e simplificação da malha A4-8. A abordagem bottom-up é mais custosa em termos de processamento, então geralmente é utilizada para criar malhas estáticas, pré-processadas. A abordagem top-down cria uma malha mais simplificada e consome menos recursos, então é preferida quando necessita-se modificar a malha dinamicamente. Existem também sistemas que utilizam uma abordagem híbrida, simplificando ou refinando a malha a cada quadro, permitindo que uma técnica de coerência quadro-a-quadro seja implementada. Estes sistemas não são classificados como top-down ou bottom-up. Nesta dissertação, a malha é construída utilizando-se uma abordagem estritamente top-down no processo de tesselagem. Em outras palavras, a malha inicial a cada quadro sempre possui a menor resolução possível e a tesselagem é responsável por refinar a malha de acordo com a necessidade. Não existe assim, na verdade, simplificação na malha quando ela passa de uma resolução maior para uma menor. Todas as resoluções são alcançadas através do processo de refinamento, que é aplicado aos triângulos da malha (visto na Sec.

29 ), partindo-se da malha inicial de menor resolução. Desta maneira, é possível que o aplicativo final mantenha sua eficiência mesmo com modificações sendo feitas na malha em tempo real REPRESENTAÇÃO DA ESTRUTURA HIERÁRQUICA Uma malha M A4-8 pode ser representada através de uma estrutura em árvore de triângulos. Dependendo do tipo de refinamento utilizado, a árvore é quaternária ou binária. Esta dissertação utilizou uma estrutura de árvore binária triangular, ou bintree triangular (DUCHAINEAU et al., 1997), para representar um terreno Bintree Triangular Considere uma malha A4-8 M que possui um conjunto de vértices V R 2 dado por V := { v i := (u i, v i ) R 2, i = 1,..., n}, onde n é o número de vértices. A bintree triangular é uma árvore binária onde, geometricamente, cada nó da árvore representa um triângulo. O triângulo raiz, T = ( v a, v 0, v 1 ) onde v a, v 0, v 1 V, é definido como um triângulo reto isósceles no nível menos refinado, (l = 0). No próximo nível, l = 1, os filhos da raiz são definidos através da inserção da aresta definida entre o vértice ápice v a e o ponto médio v c V da aresta base ( v 0, v 1 ). O filho à esquerda é T 0 = ( v c, v a, v 0 ) e o filho à direta é T 1 = ( v c, v 1, v a ). Repetindo recursivamente este processo, obtém-se o restante da árvore. A Figura 2.4 ilustra alguns níveis de uma bintree triangular. Um triângulo T b é considerado triângulo base de T, caso divida a aresta base ( v 0, v 1 ) de T. O vizinho à esquerda T 0 é um triângulo que divide a aresta esquerda ( v a, v 0 ) e o vizinho à direita T 1, o que divide a aresta direita ( v 1, v a ). Um passo do processo de refinamento substitui T pelos triângulos T 0 e T 1. Se o triângulo T não possui vizinho na base, apenas T é refinado. Este processo de refinamento pode ser repetido enquanto for possível obter um vértice v c no conjunto de dados. O processo de simplificação funciona de maneira análoga. Quando dois triângulos T e T b estão no mesmo nível l (ou seja, no mesmo nível de detalhe), o par (T, T b ) é referido como um diamante. A operação de refinamento sobre o diamante é realizada dividindo os dois triângulos, gerando assim quatro novos filhos: (T 0, T 1 ), filhos de T e (T b0, T b1 ), filhos de T b. Se o triângulo T b não existir, somente T é refinado. A operação de simplificação une os filhos (T 0, T 1, T b0, T b1 ), os substituindo na malha

30 28 v a l = 0 l = 1 T v a T T 0 1 v 0 v 1 v 0 v c v 1 l = 2 l = 3 T0 T 1 l = 4 l = 5 T T 1 T T Figura 2.4: Níveis 0 5 de uma bintree triangular. pelos seus pais (T, T b ). Neste caso, (T 0, T 1, T b0, T b1 ) formam um diamante simplificável (Fig. 2.5). T Refinamento T 0 T 1 T b T b T b 0 1 Simplificação Figura 2.5: Refinamento e simplificação do diamante. Um triângulo T em um nível l não pode ser dividido imediatamente caso seu triângulo base T b esteja em um nível l menor (menos refinado). Para dividir T, é preciso antes forçar a divisão de T b, o que pode exigir outras divisões forçadas. O procedimento de divisão forçada evita que a bintree triangular apresente descontinuidades e pode ser visto na Figura 2.6. É importante ressaltar que a estrutura descrita nesta seção precisa ser adaptada de forma que uma malha A4-8 possa representar um terreno esférico. À medida que a bintree triangular é construída, conecta-se os vértices dos triângulos de borda da malha para que o plano seja conformado de acordo com a topologia do cilindro. No decorrer do refinamento da malha, os vértices são mapeados de acordo com alguma função f e o

31 29 Divisão Forçada T T b Figura 2.6: Divisão forçada de um triângulo. Figura 2.7: Cilindro sendo conformado em uma esfera. No meridiano da esfera as coordenadas das duas bordas do plano são conectadas (NOEL, 2010). cilindro conforma-se em uma esfera. Os vértices do plano na latitude que passa pelos polos são mapeados em uma mesma coordenada na esfera (Fig. 2.7). Outro fator importante a ser lembrado é que, para cada vértice v V, devem ser armazenados dois valores, w e ε. O primeiro valor, w, representa a altura do vértice definida como w = g(f(u, v)) = g(x, y, z), onde f é uma função de mapeamento f : R 2 R 3 e g é uma função que utiliza as coordenadas do vértice mapeado, x, y e z, para calcular um valor de altura. O escalar obtido é armazenado em uma matriz de escalares nas coordenadas u e v do vértice v. A matriz de escalares que contém todas as alturas dos vértices v V forma o chamado mapa de alturas M a. Através de modificações em M a utilizando g, é possível deformar a superfície de um objeto contínuo (terreno esférico) como será mostrado nesta dissertação. O segundo valor, ε, representa o valor erro de cada vértice v V. Este valor será detalhado na Seção De maneira resumida, é possível dizer que o erro de um vértice é definido como ε = ε T, onde ε T é o erro do triângulo que tem v como vértice ápice. Na prática, o valor de erro de um triângulo ε T, para T = ( v a, v 0, v 1 ), é armazenada em uma matriz de escalares no índice u e v do vértice ápice v a de T. A matriz de escalares com todos os erros dos vértices v V é chamada de mapa de erros M e.

32 Os valores de erro e altura de cada vértice da malha são utilizados pelo processo de tesselagem para decidir se um triângulo T, do qual o vértice pertence, deve ou não ser refinado ou simplificado. A resolução da malha também é um fator importante a ser considerado. Esta dissertação utiliza na malha valores de resolução que sejam uma potência do número dois acrescido do valor um, como por exemplo, 1025, 2049 e Esta escolha garante não só a agilidade nos cálculos realizados, como também permite que a passagem de uma determinada resolução para outra seja feita através de cálculos simples sem a necessidade de tratamentos. Considere como exemplo uma resolução de valor cinco e uma de valor quatro, ou seja uma malha 5 5 e outra 4 4. Realizando o refinamento, ou seja, dividindo a soma entre o menor e o maior valor de coordenada (u ou v) na malha por dois, percebe-se que no primeiro caso obtem-se a coordenada = 2 e no segundo caso = 1.5. Isso significa que, um valor que é uma potência do número dois acrescido do valor um, sempre permite a passagem de uma resolução para outra com um valor inteiro de coordenada resultante. Se fosse escolhido um valor qualquer para resolução, seria necessário em vários casos realizar o tratamento da coordenada resultante do refinamento, como no segundo caso mostrado acima PARAMETRIZAÇÃO Uma superfície paramétrica no espaço Euclidiano R 3 é definida por uma equação paramétrica de dois parâmetros, chamados neste trabalho de u e v. Em especial, deseja-se um mapeamento f : Ω S, onde f é uma função de mapeamento, Ω é um subconjunto aberto Ω R 2 e S é uma superfície S R 3. Esta dissertação utilizou a projeção ortográfica como função f para mapear Ω em S, mais especificamente, um plano, representado pela malha A4-8, em uma esfera. Considere, assim, que o conjunto de vértices V de uma malha A4-8 representa Ω e que todos vértices v V estão associados à coordenadas u e v no plano. Considere também, que 0 u m u e 0 v m v. Para definir uma função f em termos de latitude e longitude de um vértice v V,

33 31 calcula-se a latitude de v através da Equação 2.1 e sua longitude pela Equação 2.2. latitude = (v π) m v π 2. (2.1) longitude = (2u π) m u π. (2.2) Considere agora que o raio da esfera definida por S é r. O domínio V e a superfície S podem ser escritos através das Equações 2.3 e 2.4, respectivamente. V = {(u, v) R 2 : 0 u m u, 0 v m v }. (2.3) S = {(x, y, z) R 3 : x 2 + y 2 + z 2 = r 2 }. (2.4) A função de mapeamento do plano na esfera é dada por: f(u, v) = r cosseno(longitude) cosseno(latitude), r seno(longitude) cosseno(latitude), r seno(latitude). (2.5) Deste ponto em diante, v será utilizado como notação para descrever um vértice que pertence a V, ou seja, um vértice da malha no domínio discreto. Já v, será utilizado quando o vértice estiver no domínio contínuo, ou seja, é o vértice de coordenadas x, y e z mapeado por f(u, v). Vale ressaltar que a função f não é bijetora, ou seja, a função f mapeia um vértice no espaço Euclidiano R 3, mas a sua função inversa f 1, pode mapear diversos vértices em uma mesma coordenada em V dependendo da latitude e longitude. Outro problema a ser mencionado é que a projeção não preserva a área, ou seja, esta é reduzida de acordo com a proximidade dos polos. Estes problemas influenciam diretamente a deformação de terrenos. O vértice v c R 3 utilizado para iniciar o processo de deformação (vértice de controle), não pode ser definido em S e depois mapeado para o plano. De maneira análoga, um conjunto de vértices v V que represente todos os vértices dentro de alguma área de deformação, não pode ser definido diretamente em V, já que a projeção utilizada não preserva área. Desta forma, o vértice de controle v c S é definido partindo-se do domínio discreto para o contínuo.

34 32 Já o conjunto de vértices dentro da área de deformação é definido partindo-se do domínio contínuo para o discreto. Todo o processo de mudança de domínios, do discreto para o contínuo e vice-versa, é de vital importância para deformação de terrenos proposta neste trabalho. Além de ser necessário passar de um domínio para o outro na definição do vértice de controle e na determinação do conjunto de vértices na área de deformação, é preciso realizar essa passagem para observar a deformação no terreno. Quando o conjunto de vértices a serem deformados é definido, os valores de altura são calculados no domínio contínuo para cada um desses vértices. O cálculo é realizado através de uma função g e os valores obtidos são posteriormente armazenados no mapa de alturas. Na próxima vez que o terreno for visualizado, a função de mapeamento f transmitirá o valor calculado por g para a superfície S no domínio contínuo. A deformação do terreno é, então, a modificação feita nos valores de altura w dos vértices dentro da área de deformação no domínio discreto. Esta modificação é transmitida para o domínio contínuo através da modificação do raio r na função de mapeamento. Substitui-se o raio r da esfera por r = r+w na Equação de mapeamento 2.5, transmitindose para cada coordenada obtida pela função f a modificação de altura calculada PARTIÇÃO DO ESPAÇO DE PARÂMETROS Para obter uma partição N V que represente todos os vértices v com uma determinada característica, é preciso discretizar o objeto contínuo representado por S. De maneira mais específica, deseja-se obter uma partição de V contendo todos os vértices v que, mapeados por f(u, v), se encontrem a uma determinada distância de um vértice de controle v c R 3. Em outras palavras, deseja-se todos os vértices v V que estejam dentro de uma área de deformação definida no espaço Euclidiano R 3. Para obter N, calcula-se inicialmente a distância Euclidiana em R 3 entre os vértices v T = [x, y, z] T e o vértice de controle v T c = [x c, y c, z c ] T para todos os vértices v V. Essa distância é definida como d ic e obtida através da seguinte equação: d ic = (x x c ) 2 + (y y c ) 2 + (z z c ) 2. (2.6)

35 33 Depois, define-se uma função que classifica os vértices v i através de 1, se d ic d I(u, v) = 0, caso contrário, (2.7) onde I(u, v) é uma função que utiliza as coordenadas u e v de um vértice v para indicar se ele está ou não dentro de uma área de deformação e d R +. Esta classificação do vértice de acordo com a função I será chamada de propriedade I(u, v). Se a função resultar no valor um, o vértice possui a propriedade, caso contrário, não a possui. Se o vértice possui a propriedade I(u, v), ele é colocado no conjunto de vértices que está dentro da área de deformação. Este conjunto de vértices será chamado de V d. Importante ressaltar que o conjunto V d é definido no domínio discreto, mas a distância é calculada no domínio contínuo. Isso ocorre porque, se a distância fosse calculada no domínio discreto, a área de deformação resultante seria distorcida pelo mapeamento de acordo com sua localização na esfera. 2.3 MÉTRICA DE ERRO Por motivos de simplificação, esta dissertação utilizou a métrica de erro proposta no algoritmo Malhas Otimamente Adaptáveis em Tempo Real (ROAM ). O algoritmo usa a malha A4-8 para adaptar um terreno e a estrutura hierárquica da bintree triangular, já detalhada na Seção , para representá-lo. De forma a decidir se um triângulo deve ser refinado ou simplificado, o algoritmo ROAM utiliza o conceito de espaços aninhados. Sendo C o conjunto de descendentes de um vértice v i V, o erro ε vi e vj, j C. Isso significa que a métrica de erro garante a monotonicidade dos valores de erro, ou seja, os pais em nível menos refinado sempre possuem um valor de erro maior do que seus filhos, que estão em níveis mais refinados do terreno. A ideia da métrica é garantir que as áreas mais relevantes do terreno estejam mais refinadas do que as menos relevantes. No primeiro caso, as regiões montanhosas ou mais próximas do observador e no segundo, as regiões planas ou distantes do observador. Para utilizar a métrica de erro do algoritmo ROAM, calcula-se o erro geométrico e o erro dependente do observador para cada triângulo.

36 34 Outro algoritmo que possui uma métrica de erro mais refinada, considerado uma evolução do ROAM, é chamado Refinamento sem Estados de Uma Passagem Adaptativo (SOAR). A métrica deste algoritmo é baseada no conceito de esferas aninhadas e pode ser vista em detalhes no trabalho (LINDSTROM; PASCUCCI, 2001). Os resultados visuais obtidos através dessa métrica são mais refinados, porém o algoritmo possui um custo de processamento elevado para um aplicativo em tempo real. Este fato inviabilizou sua utilização nesta dissertação ERRO GEOMÉTRICO O algoritmo ROAM usa o conceito de wedgie para definir o erro geométrico. Considere que T é um triângulo da bintree triangular e a mesma notação de vizinhança da Seção será utilizada. Um wedgie é definido como o volume do mundo que contém os vértices (u, v, w), de forma que (u, v) T e w w T ( v) e T, para uma determinada espessura de wedgie ε T 0. O segmento de linha de (u, v, w e T ) até (u, v, w + e T ) é chamado espessura de segmento para um vértice v. Os erros aninhados dos wedgies são calculados de maneira bottom-up. Assume-se ε T = 0 para todos os triângulos no nível mais refinado possível. A espessura do wedgie de um triângulo T é calculada em função das espessuras dos wedgies de seus filhos, ε T0 e ε T1. Consideranto um triângulo T de vizinhos T 0 à esquerda e T 1 à direita, calcula-se ε T como ε T = max(ε T0, ε T1 ) + w( v c ) w T ( v c ), (2.8) onde v c é o vértice obtido pela bisseção da aresta oposta ao vértice ápice do triângulo T e w T ( v c ) é dado por w T ( v c ) = (w( v 0) + w( v 1 )). (2.9) 2 A ideia do erro geométrico é levar em consideração o nível na estrutura hierárquica e a altura w dos vértices para definir o critério de refinamento ou simplificação da malha. Isso quer dizer que, quanto menos refinado um triângulo, ou quanto menor a sua altura, menor o seu erro geométrico. A Figura 2.8 mostra um exemplo univariado de wedgies aninhados, juntamente com a

37 35 cadeia de wedgies que dependem de um determinado vértice v. v Figura 2.8: Wedgies aninhados em 1D, com os dependentes de v (DUCHAINEAU et al., 1997) ERRO DEPENDENTE DO OBSERVADOR O erro dependente do observador, chamada de distorção geométrica da tela, é simplesmente um cálculo de distorção geométrica. Este cálculo representa a distância entre a posição onde cada vértice da superfície S deveria estar no espaço de tela e onde a triangulação toca a tela. Seja s( v) a posição correta no espaço de tela de um vértice v dado por f(u v, v v ) e s T ( v) sua aproximação pela triangulação T. O erro neste ponto é definido por: dist( v) = s( v) s T ( v) Na imagem inteira, o erro máximo é dado por dist max = max v Vf (dist( v)), onde V f é o conjunto de vértices v da malha que, ao serem mapeados na esfera, estão dentro do frustum de visão (região do espaço que pode aparecer na tela). Na prática, é calculado um limite superior para a distorção máxima. Para cada triângulo T na triangulação, um limite local é calculado, projetando o wedgie no espaço de tela. O limite é definido como o maior tamanho das espessuras ε T de todos os vértices v T projetadas na tela. Este limite é definido dinamicamente pelo usuário e permite

38 que a malha seja forçada a se modificar para representar um determinada resolução do terreno. 36

39 37 3 MÉTODO PROPOSTO 3.1 VISÃO GERAL DO MÉTODO Para deformar um terreno através da modificação do seu mapa de alturas, é proposto um método que possui as seguintes etapas: Definição dos pontos de controle; Definição da área de deformação; Propagação de alturas e erros. A primeira etapa define onde será feita a deformação no terreno através de pontos de controle. A segunda etapa utiliza os pontos de controle para definir uma área de deformação, ou seja, o conjunto de vértices v V que serão modificados. A última etapa descreve a propagação de valores de altura e erro para os vértices do terreno contidos na área de deformação. Vale ressaltar que o método é uma parte de um sistema que realiza outras funções como: detecção de marcadores fiduciais e cálculo da distância relativa entre eles; renderização de acordo com uma métrica de erro e translação; escala e rotação do terreno esférico. A Figura 3.1 mostra as etapas do método proposto e sua relação com o sistema. Em azul as partes do sistema independentes do método, em vermelho as etapas do método e em verde as entradas controladas dinamicamente pelo usuário. 3.2 DEFINIÇÃO DO PONTO DE CONTROLE Uma prática comum que precede a aplicação de técnicas para deformação de malhas é a definição de pontos de controle. Como o próprio nome já diz, estes pontos servem para controlar algum aspecto do processo de deformação. Eles podem ser usados, por exemplo, para controlar onde começa o processo de deformação (GREGORY et al., 1999; FOSKEY et al., 2005), ou construir uma grade que defina uma área ou volume da superfície a ser deformado (SEDERBERG; PARRY, 1986; COQUILLART, 1990).

40 38 Tesselagem Obtenção dos pontos de controle Definição da área de deformação Propagação de valores de altura e erro Raio do deformação Fluxo do sistema Renderização Threshold de erro Figura 3.1: Visão geral do método. Esta dissertação utiliza um vértice v c de controle, que define o centro da área de propagação dos valores de altura e erro, ou seja, onde começa o método aqui proposto. Ele é obtido durante a tesselagem da malha, representando o vértice v V que, ao ser mapeado na esfera, está o mais próximo possível do objeto deformador (marcador fiducial pré-definido). A medida que a tesselagem ocorre, a posição desse vértice é atualizada se algum vértice criado se encontra mais próximo do marcador fiducial. A escolha do ponto de controle só ocorre se o marcador móvel estiver no campo de visão da câmera. Deste ponto em diante, o ponto de controle será chamado de vértice de controle para facilitar o entendimento. Um exemplo de vértice de controle obtido sobre a superfície do terreno esférico pode ser visto na Figura 3.2a, onde a esfera azul representa o vértice de controle v c e a esfera vermelha é a posição do marcador móvel modificada para o sistema de coordenadas do terreno esférico. Se a posição da câmera se aproxima do terreno ou o usuário aumenta a escala do modelo, a malha passa por um processo de refinamento que pode provocar a mudança do vértice de controle. A Figura 3.2 mostra um exemplo de vértice de controle, definido como v c, antes da atualização devido ao refinamento da malha (Fig. 3.2a) e depois (Fig. 3.2b). Vale ressaltar que, se o usuário movimenta o marcador móvel, v c também muda de

41 39 (a) (b) Figura 3.2: (a) Vértice de controle v c e (b) a atualização da sua posição devido ao refinamento da malha. A esfera azul representa o vértice de controle v c e a esfera vermelha é a posição do marcador móvel. maneira dinâmica. Da mesma forma, se o modelo é rotacionado, transladado ou escalonado, a posição de v c pode ser atualizada. O método aqui proposto utiliza um vértice de controle determinado durante o processo de tesselagem, permitindo que ambas as tarefas fossem feitas em paralelo, agilizando o processo. 3.3 DEFINIÇÃO DA ÁREA DE DEFORMAÇÃO A área de deformação representa o conjunto de vértices V d V que, quando mapeados na esfera através de f(u, v), se encontram a uma distância menor ou igual a um raio em relação a um ponto de controle v c R 3 (Seção 2.2.1). Esse raio é definido dinamicamente pelo usuário girando-se o botão do meio do mouse e será chamado daqui em diante de raio de deformação, ou r d. A área de deformação é construída de acordo com um conjunto de restrições descritas a seguir. Seja V o conjunto de vértices da malha A4-8. Sub-regiões V i V, que representam partições de V dotadas de alguma propriedade I(V i ), podem ser construídas através das seguintes restrições: 1. n i=1 V i = V; 2. V i é uma região conectada, i = 1, 2,..., n; 3. V i Vj = para todo i e j, i j; 4. I(V i ) = 1 para i = 1, 2,..., n;

42 40 5. I(V i Vj ) = 0 para i j, onde V i e V j são adjacentes. A primeira restrição significa que a partição deve ser completa, ou seja, todos os vértices de V i devem estar contidos em V. A segunda, exige que todos os vértices da sub-região estejam conectados. A terceira restrição indica que sub-regiões diferentes devem ser desconexas. A quarta exige que todos os vértices v i V i devem satisfazer as propriedades I(V i ). A última restrição significa que sub-regiões distintas possuem propriedades diferentes. As restrições mostradas acima podem ser reinterpretadas de acordo com o problema desta dissertação. Uma propriedade chamada I(u, v) é definida para cada vértice da malha de acordo com a Equação 2.7, onde a distância é calculada pela Equação 2.6. Deseja-se assim, particionar o terreno em dois conjuntos desconexos, um conjunto V d que possui os vértices dotados da propriedade I(u, v) e outro complementar a este V d. Daqui em diante nesta dissertação, os vértices de V d serão chamados de internos e os vértices de V d serão chamados de externos. A formulação proposta acima segue o mesmo princípio dos processos de segmentação de imagens, onde geralmente deseja-se separar o fundo e uma região de interesse. Esta escolha deve-se ao fato de que a estrutura quase totalmente regular das malhas semiregulares permite o uso de algoritmos tradicionais de processamento de imagens. Como exemplo dessa combinação, é possível citar trabalhos que utilizam algoritmos baseados em subdivisão (ZORIN; SCHRöDER, 2000), Fourier (PENG et al., 2001) e ondaletas (KHODAKOVSKY et al., 2000) CRESCIMENTO DE REGIÃO O algoritmo utilizado nesta dissertação para determinar a área de deformação aplica a técnica de segmentação de imagens chamada crescimento de região para percorrer a malha A4-8 (STOCKMAN; SHAPIRO, 2001). Essa técnica representa a implementação da função recursiva de expansão responsável por percorrer a malha. Ela realiza uma expansão através do domínio espacial de uma imagem, partindo de sementes definidas pelo usuário (início da região de crescimento) e expandindo até pontos adjacentes, de acordo com algum critério pré-definido de filiação a determinada região. Essa técnica possui como vantagem a facilidade de implementação e o caráter de paralelismo em sua formulação, tornando-a uma ferramenta eficiente para percorrer a malha.

43 41 É utilizada aqui uma versão da técnica de crescimento de região que usa apenas uma semente como entrada, também chamada de crescimento de região por semente simples. O ponto de partida é o vértice de controle v c e a expansão ocorre enquanto houver vértices que possuem a propriedade I(u, v). Daqui em diante, o conjunto de vizinhos de v c que possuem a propriedade I(u, v) será chamado de V dc. O algoritmo para determinação da área de deformação será apresentado em duas partes. A primeira, contém as linhas gerais do algoritmo, como os dados de entrada e de saída e suas funções. A segunda parte apresenta detalhadamente a parte principal do algoritmo, ou seja, a função que marca todos os vértices que possuem a propriedade I(u, v) Visão Geral do Algoritmo O algoritmo testa, inicialmente, os vizinhos de v c expansão o conjunto V dc. Essa função expande V dc e passa para a função recursiva de a partir de v c na direção de cada um dos seus vértices vizinhos v i V dc. A visão geral do processo é apresentada no Algoritmo 1. Algoritmo 1: Visão geral do algoritmo para determinação de área de deformação. Entrada: Vértice de controle v c. Saída: Conjunto de vértices V dc. /* Funç~ao que testa e marca os vizinhos de v c. */ InicializaArea( v c ); para cada vértice interno v i vizinho de v c faça /* Funç~ao recursiva que expande na direç~ao de v i. */ DeterminaArea( v i ); fim para cada A vizinhança é percorrida na malha A4-8, porém o teste de distância é feito no espaço Euclidiano R 3 como mencionado na Seção 2.2. Um exemplo do teste de um vértice v i vizinho de v c, através da distância d ic entre os dois, pode ser visto na Figura 3.3. O conjunto final de vértices V dc pode ser visto na Figura 3.4.

44 42 v u d ic (x, y, z) v c v i f(u, v) Figura 3.3: Início do processo de expansão. O vértice de controle é v c no domínio discreto e v c no domínio contínuo. O raio que define a área de deformação é r d e d ic é a distância em R 3 entre o vértice de controle v c e um de seus vizinhos v i. v u v c d f(u, v) v i v c (x, y, z) Figura 3.4: O conjunto V dc, em verde, representa os vértices que possuem a propriedade I(u, v). No exemplo, todos os vizinhos estão dentro da área de deformação Função Recursiva de Expansão A função recursiva é responsável por caminhar pela malha na direção de cada um dos vizinhos de v c, aplicando a propriedade aos vértices. v c É possível separar as oito vizinhanças de um vértice em dois casos, direção diagonal e direção vertical/horizontal. Um vizinho está em uma direção diagonal se as duas coordenadas do vértice original no espaço paramétrico, u e v, se modificam em um passo do algoritmo naquela direção. Para a direção vertical/horizontal, um passo do algoritmo modifica apenas uma coordenada, u ou v, do vértice original. A combinação dos casos mencionados acima permite que o algoritmo percorra toda área de deformação na malha. Se a direção é diagonal, a recursão apenas repete a direção de expansão do passo anterior (Fig. 3.5a). Já no caso da direção vertical/horizontal, a recursão é chamada para direção de expansão do passo anterior e suas duas direções diagonais adjacentes (Fig. 3.5b). A situação após um passo do algoritmo para todos os vértices internos vizinhos de v c é mostrada na Figura 3.5c. A Figura 3.5b ilustra um passo do algoritmo de expansão para o vértice v 2 V dc de

45 43 v ae v ad v ae v vh v ad v 1 v 3 v 2 v u v p (a) v u v p (b) v u v p (c) Figura 3.5: Exemplo de expansão na direção diagonal (a) e na direção vertical/horizontal (b). Um passo do algoritmo de expansão após todos os vizinhos de v c serem computados pode ser visto em (c). coordenadas (u, v + 1) em relação ao vértice principal v p. Nesta figura, v vh é o vértice na direção vertical/horizontal em relação ao vértice principal, v ae e v ad são os vértices nas direções diagonais adjacentes a direção de v vh. A função recursiva de expansão está escrita no Algoritmo 2. Algoritmo 2: Função principal do algoritmo de determinação de área. /* Este teste é feito para todos os vizinhos de v c. */ se v i possui a propriedade I(u, v) então selecione direção de propagação faça caso Diagonal DeterminaArea(( v i )); caso Vertical/Horizontal DeterminaArea(( v vh )); DeterminaArea(( v ae )); DeterminaArea(( v ad )); fim se fim selec retorne;

46 44 (u = 0, v = 0) (u = M - 1, v = 0) u u v (u = M, v = 0) u Figura 3.6: Tratamento de bordas no caso de vértices se expandindo além das dimensões do terreno. Para a latitude, se um vértice v extrapola as dimensões do terreno, a expansão é interrompida naquela direção. No caso da longitude, a coordenada u do vértice é modificada para que ele possa continuar expandindo TRATAMENTO DE BORDA Quando um vértice v i V dc se encontra na borda da malha, ou seja, possui coordenada u = {0 ou m u } e/ou v = {0 ou m v }, o método precisa modificar sua rotina para promover a expansão. Se o vértice está na borda em sua coordenada u (longitude igual a 180 ), sua coordenada deve ser modificada de forma a refletir que o plano foi inicialmente conformado em um cilindro (Seção 2.2). Em resumo, se o vértice atingir a coordenada u = 0, o próximo passo do algoritmo irá modificá-la para u = m u 1. De forma análoga, se a coordenada for u = m u, o próximo passo do algoritmo modificará esta coordenada para u = 1. O pulo de uma coordenada para a longitude é proposital, refletindo que para as coordenadas u = 0 e u = m u existe uma sobreposição na malha. É importante ressaltar que se um vértice possui coordenada u de borda no terreno, qualquer modificação feita no mapa de alturas e erros para este vértice deve ser repetida na outra extremidade do mapa para evitar rachaduras no terreno. No caso da coordenada v (latitude), se um vértice atingir qualquer uma das coordenadas da borda, o algoritmo simplesmente para de propagar. Isso se deve ao fato de que, para a topologia da esfera, é necessário apenas conectar as bordas da malha no sentido leste e oeste. Para a topologia do toro, o caso seria o inverso, tornando o método facilmente modificável. Um exemplo do tratamento de bordas pode ser visto na Figura 3.6.

47 PROPAGAÇÃO DE ALTURAS E ERROS Determinada a área de deformação, ou conjunto V d V, é preciso propagar valores de alturas e erro para todos os vértices do conjunto V d. O algoritmo de propagação pode ser definido como uma extensão do algoritmo de determinação de área, já que ambos percorrem todos os vértices que possuem a propriedade I(u, v). O algoritmo final para modificação de alturas e erros utiliza a função recursiva de expansão para percorrer os vértices e novas funções para calcular altura e os erros dos vértices no conjunto V d. No caso da propagação de erro, a rotina de expansão deve ser modificada para refletir a métrica proposta pelo algoritmo ROAM CÁLCULO E PROPAGAÇÃO DE ALTURAS A função utilizada nesta dissertação para calcular os valores de alturas é a função de distribuição Gaussiana g(x) descrita pela Equação 3.1. A função tem valor máximo no vértice de controle e valor mínimo nos limiares da área de deformação. Nesta função, se o desvio padrão σ for pequeno em relação a média µ, a parte visível da deformação se concentra perto de v c, enquanto no caso inverso, a parte visível da deformação apresenta mudança abrupta de alturas nas regiões limites da área de deformação. g(x) = 1 σ (x µ) 2 2π e 2σ 2. (3.1) O processo envolve a passagem do domínio discreto para o contínuo e vice-versa. Um vértice v V é mapeado na esfera e testado, para saber se está ou não dentro da área de deformação. Se ele for um vértice interno, a distância Euclidiana em R 3 do vértice v, mapeado por f, para o vértice de controle v c, é passada para função Gaussiana definida pela Equação 3.1 e um valor de altura é obtido. Este valor é, então, associado a um escalar w e armazenado no mapa de alturas representado por uma matriz, através de suas coordenadas (u, v). O novo valor de w é acessado na próxima tesselagem, onde a função de mapeamento transmitirá a modificação feita no mapa de alturas para a superfície do terreno.

48 MÉTRICA E PROPAGAÇÃO DE ERRO A métrica de erro proposta nesta dissertação é a mesma utilizada no algoritmo ROAM, porém com uma implementação diferente. Da mesma forma que para a propagação dos valores de altura, deseja-se percorrer todos os vértices v V d para propagação de erro. Porém uma restrição fundamental da métrica de erro é que a monotonicidade seja garantida, ou seja, os pais possuem erro maior que o erro dos filhos (Seção 2.3). Essa condição seria facilmente violada utilizando apenas a função de expansão descrita pelo Algoritmo 2. Considere, por exemplo, um determinado vértice v que ao ser mapeado na esfera localiza-se próximo ao limiar da área de propagação. Este vértice tem um valor de altura baixo devido a distância que se encontra da posição de v c. Se o erro fosse propagado de maneira análoga à propagação de alturas, o vértice v teria também um valor de erro baixo, o que não é verdade para maioria dos casos. Para exemplificar o cálculo correto de erros em um triângulo T, considere a Figura 3.7. Os valores no triângulo da esquerda (Fig. 3.7a) representam as alturas w dos vértices v T. No triângulo da direita (Fig. 3.7b) os respectivos valores de erro calculados pela Equação 2.8. Os valores de erro ε = 0 de um vértice v significam que ele faz parte de um triângulo que está no último nível de resolução , (a) 17,5 (b) Figura 3.7: Exemplo de propagação de erro correta. No triângulo da esquerda (a) valores de altura para os vértices do triângulo T e no triângulo da direita (b) os respectivos valores de erro. Para propagar erros de forma correta, é necessário utilizar uma função de expansão que percorra a malha de maneira hierárquica. Os mesmos casos relativos a direções de vizinhos de um vértice v, visto na Seção , podem ser utilizados. Apenas a lógica precisa ser modificada. A malha é percorrida de maneira hierárquica utilizando o conceito de passo alternado.

49 47 Considere um número de iterações i = 0, 1, 2,..., n e um tamanho de passo p a. Sabendo que todos os nós folha da árvore binária triangular possuem erro ε T = 0 e que o erro cresce a medida que reduzimos o nível de resolução até atingir-se o nó raiz, é possível averiguar na árvore que a posição dos nós é espaçada de maneira homogênea para valores similares de erro. Considere, por exemplo, a Figura 3.8a que mostra a disposição dos vértices que possuem erro ε T = 0 em um triângulo T no maior nível de resolução. Percebe-se que é possível caminhar na estrutura percorrendo todos os vértices nesta resolução, utilizandose passos p l de tamanho ímpar na direção vertical, seguido de caminhadas nas duas direções diagonais ao vértice alcançado pelo passo inicial. Caminhada Passo inicial Incremento Passo inicial v u (a) Caminhada e = 0 T Passo inicial Incremento v u (b) e = 0 T Passo inicial Caminhada v u (c) e = 0 T v u (d) e = 0 T Figura 3.8: Exemplo de expansão hierárquica. Em (a) ocorre o primeiro caso, passo na vertical e caminhada diagonal. Em (b) acontece o segundo caso, passo diagonal e caminhada vertical, ambos na iteração de valor zero. Já em (c) repete-se o primeiro caso e em (d) o segundo, agora para iteração de valor um. De maneira mais específica é possível afirmar neste caso, que o passo inicial a cada iteração i é dado pela Equação 3.2 e o incremento do passo i c é dado pela Equação 3.3.

50 Nesse caso onde a resolução é máxima, a iteração i = 0, o passo inicial p l = 1, o incremento do passo i c = 2 na direção vertical e o passo para caminhada na diagonal p d = p l. 48 p l = 2 i. (3.2) i c = 2 p l. (3.3) Considere agora o exemplo da Figura 3.8c, dois níveis de resolução abaixo do máximo. A iteração agora é i = 1 e o passo inicial p l = 2, validando por indução as Equações 3.2 e 3.3. O motivo de i ser igual a um é que para cada iteração é possível percorrer dois níveis de resolução, um para cada caso sendo apresentado aqui. Para o nível de resolução que está imediatamente abaixo do máximo, o modelo se modifica (Fig. 3.8b). O passo inicial e o incremento são obtidos da mesma maneira que no caso anterior, seguindo as Equações 3.2 e 3.3. A iteração é novamente i = 0, p l = 1 e i c = 2. Neste caso, porém, o passo inicial é feito na direção diagonal e a caminhada pela estrutura é feita na direção vertical (o inverso do caso anterior). A recursão caminha na vertical com um passo p a = i c, sendo que para esta resolução p a = 2. A combinação destes casos permite que todos os vértices sejam percorridos, como pode ser visto na Figura 3.8d. Um algoritmo pode ser facilmente extraído destes dois casos, representando uma maneira hierárquica de percorrer a malha A4-8. A monotonicidade é garantida desta forma, pois o erro pode continuar sendo calculado por uma abordagem bottom-up. A propagação de erro está descrita no Algoritmo 3, onde d vvh, d vae e d vad as distâncias entre o vértice de controle v c e os vértices nas direções vertical/horizontal, são

51 49 diagonal esquerda e diagonal direita, respectivamente. Algoritmo 3: Algoritmo de propagação de erros. iteracao 0; propaga true; enquanto propaga = true faça passo = 2 iteracao ; incremento = 2 passo; se d vvh r d então fim se P ropagaerro( v vh passo, passo); se d vae r d então fim se P ropagaerro( v ae passo, incremento); se d vad r d então fim se P ropagaerro( v ad passo, incremento); se d vad r d e d vae r d e d vvh r d então fim se propaga false; iteracao iteracao + 1; fim enqto A função P ropagaerro() é responsável por caminhar pela estrutura como mencionado nos dois casos acima. Ela tem como argumentos o vértice alcançado pelo passo inicial e o tamanho do passo. Essa função é recursiva e caminha na direção do vértice passado como argumento. Ela pára quando um vértice v alcançado for externo. A propagação de erro utiliza a Equação 2.8 para calcular o erro ε T de cada vértice. Os valores de erro ε T de cada vértice v são associados a um escalar ε e armazenados em uma matriz de acordo com as coordenadas do vértice u e v.

52 50 4 RESULTADOS Este capítulo apresenta os resultados obtidos com o método proposto, detalhes da visualização, tabelas de desempenho do método e particularidades do problema. Para validar o método foram utilizados malhas com resoluções máximas de , e vértices. O número máximo de triângulos gerados pelo processo de tesselagem nos testes realizados foi definido como VISUALIZAÇÃO DO TERRENO ESFÉRICO Pensando na interatividade do usuário com o terreno esférico, duas janelas de visualização foram definidas. Desta forma, o usuário consegue ver os resultados da tesselagem em uma escala global e local. Na janela de visão local, a malha está imersa em um ambiente de realidade aumentada. Na janela de visão global, a mesma malha é visualizada em um ambiente puramente virtual, para que o usuário consiga visualizar o frustum local e a tesselagem do planeta, possibilitando um maior controle sobre a modelagem como um todo. (a) (b) Figura 4.1: Visualização de um terreno esférico. Janela de visão local (a) e global (b). O usuário pode realizar as operações básicas de translação, rotação e escala no terreno para melhor visualizá-lo. Para transladar o terreno, o usuário movimenta o marcador fiducial utilizando suas mãos. A rotação do terreno pode ser feita através de atalhos no teclado ou de movimentos de giro segurando o marcador. Para modificar a escala do terreno, o usuário pode utilizar o mouse ou afastar/aproximar o marcador da câmera.

53 51 Como visto anteriormente, a medida que o usuário modifica a distância do terreno para câmera, o erro dependente do observador muda e a malha se adapta através de refinamento ou simplificação. É possível modificar essa distância mudando a escala do modelo, movendo o marcador associado ao terreno ou movendo a câmera. A Figura 4.2 mostra um exemplo de mudança na malha devido a escala do terreno. A posição inicial do terreno pode ser vista na Figura 4.2b, a modificação na malha quando a câmera se aproxima do terreno é vista em 4.2c e quando se afasta na Figura 4.2a. (a) (b) (c) Figura 4.2: Mudanças na malha provocadas pela distância entre câmera e terreno. Posição inicial do terreno em (b), câmera aproximada do terreno (c) e afastada (a). 4.2 EXPERIMENTOS REALIZADOS Todos os experimentos foram feitos em um computador com processador AMD FX(tm) de seis núcleos, memória RAM de 8GB e placa de vídeo GeForce GTX 550 Ti com 2GB de mémória RAM no Sistema Operacional Windows 7. A câmera Microsoft LifeCam foi utilizada como dispositivo de captura de vídeo. A resolução de pixels foi escolhida para as janelas de visualização. O resultado da deformação de um terreno esférico com o método proposto pode ser observado na Figura 4.3. A imagem mostra uma sequência de quadros, da esquerda para direita, onde o usuário realiza um movimento com o marcador fiducial através da superfície do terreno provocando a deformação do mesmo. As matrizes contendo os valores de alturas e erros de todos os vértices v V foram inicializadas com o valor zero. Isso significa que, inicialmente, o terreno é renderizado na menor resolução possível com todos os vértices possuindo altura w = 0. A medida que o usuário deforma o terreno, a resolução e os valores de altura dos vértices mudam dinamicamente devido a vários fatores já mencionados. Vale ressaltar que é possível

54 52 Figura 4.3: Uma sequência de quadros espaçados no tempo que demonstram a malha sendo deformada utilizando o método proposto. também carregar um mapa de alturas e erros pré-computado. Nesta dissertação, o valor de erro máximo da imagem dist max foi testado para valores variando entre 0.1 e 6.0. Os experimentos realizados mostraram que o valor ideal que promove um equilíbrio entre quantidade de triângulos e qualidade de visualização é dist max = 4.0. Um exemplo da diferença na visualização devido a mudança do valor de erro máximo pode ser visto na Figura 4.4., onde temos em (a) um valor de erro máximo dist max = 1.0 e dist max = 6.0 em (b). (a) (b) Figura 4.4: Resultado da tesselagem para valores diferentes de erro máximo. Em (a) o valor de erro utilizado foi dist max = 1.0 e em (b) dist max = 6.0. O raio de deformação r d utilizado durante os testes variou entre 150km e 600km, sendo o raio do terreno esférico igual a km. A diferença na área de deformação no espaço R 3 para três raios de deformação diferentes pode ser vista na Figura 4.5, onde a Figura 4.5a mostra a área para um raio de 150km, a Figura 4.5b mostra a área para o raio de 300km e na Figura 4.5c é possível visualizar a área para um raio de 600km. O tempo médio que o aplicativo demora para renderizar um quadro com o terreno sendo deformado foi calculado para diferentes resoluções. Os dados de entrada do método aumentam diretamente com a resolução do terreno, para um mesmo raio de deformação

55 53 (a) (b) (c) Figura 4.5: Visualização de diferentes áreas de deformação. O valor do raio de deformação utilizado em (a) foi r d = 150km, em (b) r d = 300km e em (c) r d = 600km. r d. Se a resolução for muito alta, pode ser inviável deformar regiões que possuem alta concentração de vértices (polos) em tempo real. Isso ocorre porque o método proposto sempre realiza a propagação de valores de altura e erro até o maior nível de resolução possível. Seria possível, no entanto, adaptar o método para propagar valores de altura e erro apenas em determinados níveis de resolução. A câmera foi fixada em uma posição única para todos os valores contidos nas Tabelas 4.1, 4.2 e 4.3. A posição escolhida esteve a uma distância de três vezes o raio da esfera para o centro da mesma, ou seja, aproximadamente 19000km. No caso da deformação, foi escolhido o pior caso para avaliar o método. Em outras palavras, a longitude foi fixada em 180, onde os vértices apresentam coordenada u = 0 e u = m u para valores variáveis de latitude. Os valores de latitude começam em 0 e aumentam 30 até atingirem 180, ou seja, de um polo ao outro. O tempo médio para renderizar um quadro sem deformações sendo aplicadas ao terreno foi de segundos. Os valores na Tabela 4.1 representam os tempos médios de renderização de um quadro com o terreno sendo deformado para uma resolução máxima de vértices. É possível afirmar que para um raio de deformação r d = 150km, qualquer região do planeta pode ser deformada sem que o usuário perceba queda no número de quadros por segundo. Para um raio de r d = 600km, o aplicativo demora três vezes mais tempo para renderizar um quadro com deformação ocorrendo no polo do que no equador, porém o número de vértices deformados no polo é aproximadamente 90 vezes maior do que no equador. A Tabela 4.2 mostra os mesmos valores agora para uma resolução de vértices. É possível perceber que a mesma situação da resolução anterior se repete, o aumento no número de vértices deformados é muito maior que o aumento no tempo

56 54 Latitude Tempo médio(s) Latitude Vértices modificados r d = 150 r d = 300 r d = 600 Raio de Deformação(km) Tabela 4.1: Tempo médio de renderização do terreno em segundos quando uma quantidade de vértices é modificada em uma determinada latitude. Resolução máxima de vértices. médio de renderização. Isso significa que, o método é eficiente para lidar com o aumento no número de vértices a medida que a resolução aumenta. No caso dos polos, porém, a quantidade de vértices é suficiente para fazer o tempo médio de renderização aumentar de maneira significante. Latitude Tempo médio(s) Latitude Vértices modificados r d = 150 r d = 300 r d = 600 Raio de Deformação(km) Tabela 4.2: Tempo médio de renderização do terreno em segundos quando uma quantidade de vértices é modificada em uma determinada latitude. Resolução máxima de vértices. Na última tabela 4.3, são listados os valores para maior resolução de terreno testada, vértices. Para um raio de deformação r d = 600 percebe-se que a tempo médio começa a ficar elevado para todas as latitudes testadas. Isso significa que, a medida que a resolução aumenta é necessário reduzir o raio de forma a trocar desempenho do aplicativo e qualidade de visualização. Para um raio de deformação r d = 150, os valores de tempo médio se mantém baixos, exceto para os polos que apresentam um número elevado de vértices mesmo nesse raio. Para lidar com o problema da concentração de vértices nos polos, a medida que a

57 resolução cresce, duas soluções podem ser apresentadas. 55 Uma primeira solução seria utilizar uma projeção que possui uma compensação diferente entre forma e área do que a projeção ortográfica utilizada nesta dissertação. É possível citar como exemplo a projeção pseudo-cilíndrica de Mollweide, que reduziria a concentração de vértices próximos aos polos (SNYDER, 1987). Outra solução seria diminuir a raio de deformação, ou limitar o número máximo de vértices modificados na deformação, de acordo com a resolução. No caso da diminuição do raio, o usuário pode modificá-lo para um valor que faça o tempo médio de renderização ficar baixo. Já no caso de limitar o número de vértices, o raio de deformação teria um valor máximo de acordo com esse número. Latitude Tempo médio(s) Latitude Vértices modificados r d = 150 r d = 300 r d = 600 Raio de Deformação(km) Tabela 4.3: Tempo médio de renderização do terreno em segundos quando uma quantidade de vértices são modificados em uma determinada latitude. Resolução máxima de vértices. 4.3 PARTICULARIDADES Um dos fatores relevantes para deformar o terreno é a calibragem do desvio padrão na função de deformação g(x) calculada pela Equação 3.1. Como mencionado na Seção 3.4.1, valores muito pequenos ou grandes do desvio padrão podem provocar um aspecto indesejável na deformação do terreno, como pode-se observar na Figura 4.6. O resultado da deformação para g(x) com um valor de desvio padrão σ = 0.17 (Fig. 4.6a) e o resultado para σ = 0.75 (Fig. 4.6b). A média utilizada em ambos os caso foi µ = 1. Outro fator importante mencionado na Seção é o tratamento de bordas. Para demonstrar como o método lida com os vértices que se encontram no meridiano considere a Figura 4.7. Na Figura 4.7a a deformação sem o tratamento de bordas, na Figura 4.7b após o tratamento.

58 56 (a) (b) Figura 4.6: Deformac a o de terrenos utilizando a func a o de distribuic a o Gaussiana. A deformac a o obtida para um valor de σ = 0.17 e me dia µ = 1 pode ser visto em (a). Em (b), σ = 0.75 e µ = 1. (a) (b) Figura 4.7: Tratamento de bordas. Em (a) e possı vel ver o terreno deformado na regia o da borda sem o tratamento. Em (b) a mesma regia o do terreno, agora deformada com tratamento de borda. (a) (b) Figura 4.8: Visualizac a o de um terreno final gerado atrave s do me todo proposto. Escala local em (a) e global em (b).

QuadLOD: Uma Estrutura para a Visualização Interativa de Terrenos

QuadLOD: Uma Estrutura para a Visualização Interativa de Terrenos QuadLOD: Uma Estrutura para a Visualização Interativa de Terrenos Rodrigo Penteado R. de Toledo Orientador: Marcelo Gattass Co-orientador: Luiz Velho PUC-RIO - TecGraf OBJETIVO Gerar imagem a partir dos

Leia mais

3 Métodos de Extração de Malhas a partir de Volumes

3 Métodos de Extração de Malhas a partir de Volumes 3 Métodos de Extração de Malhas a partir de Volumes Extrair uma malha a partir de um dado volumétrico trata-se, na realidade, de uma forma de conversão entre dois modelos de representação muito comuns

Leia mais

Figura 1.1: Partição do espaço contendo a esfera S.

Figura 1.1: Partição do espaço contendo a esfera S. 1 Introdução Uma superfície é definida implicitamente quando é descrita como um conjunto de pontos com uma propriedade em comum. A formulação mais utilizada é, dada uma função F : R 3! R, descrevê-la como

Leia mais

Computação Gráfica - 09

Computação Gráfica - 09 Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação Computação Gráfica - 9 jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti www.twitter.com/jorgecav Objetos

Leia mais

Adaptative and Quality Quadrilateral/Hexahedral Meshing from Volumetric Data

Adaptative and Quality Quadrilateral/Hexahedral Meshing from Volumetric Data Geração de Malhas - SME5827 Adaptative and Quality Quadrilateral/Hexahedral Meshing from Volumetric Data Yongjie Zhang Chandrajit Bajaj Institute for Computational Engineering and Sciences The University

Leia mais

Computação Gráfica. Representação e Modelagem

Computação Gráfica. Representação e Modelagem Computação Gráfica Representação e Modelagem Professora: Sheila Cáceres Baseado nos slides da Prof. Soraia Musse Modelagem Área da Computação Gráfica que estuda a criação de modelos dos objetos reais.

Leia mais

Computação Gráfica - 09

Computação Gráfica - 09 Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação Computação Gráfica - 9 jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti www.twitter.com/jorgecav Objetos

Leia mais

Computação Gráfica - 11

Computação Gráfica - 11 Universidade Federal do Vale do São Francisco Curso de Engenharia da Computação Computação Gráfica - 11 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti www.twitter.com/jorgecav

Leia mais

Banco de dados Brasil

Banco de dados Brasil Banco de dados Brasil Elemento de resolução: célula de 100x100m Conteúdo: linhas de transmissão, casas, quadras, distritos, municípios, estados, país Quais distritos são cortados pela linha de transmissão

Leia mais

UNIVERSIDADE FEDERAL FLUMINENSE Pedro Martins Menezes. Um estudo dos estágios dos pipelines gráficos

UNIVERSIDADE FEDERAL FLUMINENSE Pedro Martins Menezes. Um estudo dos estágios dos pipelines gráficos UNIVERSIDADE FEDERAL FLUMINENSE Pedro Martins Menezes Um estudo dos estágios dos pipelines gráficos Niterói 2008 Pedro Martins Menezes Um estudo dos estágios dos pipelines gráficos Trabalho de Conclusão

Leia mais

Processamento de Malhas Poligonais

Processamento de Malhas Poligonais Processamento de Malhas Poligonais Tópicos Avançados em Computação Visual e Interfaces I Prof.: Marcos Lage www.ic.uff.br/~mlage mlage@ic.uff.br Conteúdo: Notas de Aula : Definições Matemáticas 06/09/2015

Leia mais

Investigação de novos critérios para inserção de pontos em métodos de simplificação de terreno através de refinamento

Investigação de novos critérios para inserção de pontos em métodos de simplificação de terreno através de refinamento Investigação de novos critérios para inserção de pontos em métodos de simplificação de terreno através de refinamento por Anselmo Antunes Montenegro Orientador: Paulo Cezar Pinto Carvalho, IMPA Co-orientador:

Leia mais

Visualização de terrenos em GPU

Visualização de terrenos em GPU Visualização de terrenos em GPU Leonardo Martins { lmartins@inf.puc-rio.br} Disciplina: Visualização de Modelos Massivos Professor: Alberto Raposo Sumário Introdução Objetivos Visão geral Hierarquia de

Leia mais

2 Malhas Quadrangulares

2 Malhas Quadrangulares 2 Malhas Quadrangulares 2.1 Conceitos Básicos Seja M =(V,E,Q)umamalhaquadrangularcompostaporumconjunto de vértices V, um conjunto de arestas E eumconjuntodequadrângulosq. Definição 2.1 Um vértice interior

Leia mais

4 Simplificação por Difusão Geométrica Markoviana

4 Simplificação por Difusão Geométrica Markoviana 4 Simplificação por Difusão Geométrica Markoviana Neste capítulo introduzimos uma nova maneira de simplificar malhas com base em Difusão Geométrica de Markov, um processo de difusão de informação em malhas

Leia mais

5.1 Visualização da curva silhueta em R 4 Alguns exemplos de superfícies em R 4

5.1 Visualização da curva silhueta em R 4 Alguns exemplos de superfícies em R 4 5 Aplicações Neste capítulo apresentaremos algumas aplicações da curva silhueta. A primeira é auxiliar na visualização de superfícies em R 4. A silhueta destaca importantes curvas na superfície e identifica

Leia mais

vértices dessas células. Exemplos de malhas estruturadas e não-estruturadas são apresentados na Figura 2.

vértices dessas células. Exemplos de malhas estruturadas e não-estruturadas são apresentados na Figura 2. 1 Introdução O termo visualização corresponde, no contexto desta dissertação, aos métodos que permitem a extração de informações relevantes a partir de conjuntos de dados complexos, com o auxílio de técnicas

Leia mais

INF Fundamentos da Computação Gráfica Professor: Marcelo Gattass Aluno: Rogério Pinheiro de Souza

INF Fundamentos da Computação Gráfica Professor: Marcelo Gattass Aluno: Rogério Pinheiro de Souza INF2608 - Fundamentos da Computação Gráfica Professor: Marcelo Gattass Aluno: Rogério Pinheiro de Souza Trabalho 02 Visualização de Imagens Sísmicas e Detecção Automática de Horizonte Resumo Este trabalho

Leia mais

2 Técnicas e Trabalhos Relacionados

2 Técnicas e Trabalhos Relacionados 17 2 Técnicas e Trabalhos Relacionados Um bom renderizador de modelos massivos tem que ser capaz de resolver três pontos: reduzir a complexidade da geometria onde ela não for necessária, não renderizar

Leia mais

Departamento de Matemática

Departamento de Matemática Computação Gráfica - Evolução de Curvas e Superfícies Aluno: Vinícius Segura Orientador: Sinésio Pesco Introdução Nas últimas décadas atravessamos uma verdadeira revolução tecnológica, devido ao avanço

Leia mais

Definição 2.1 (Malha) Uma malha é uma estrutura topológica e geométrica

Definição 2.1 (Malha) Uma malha é uma estrutura topológica e geométrica 2 Simplificação de Malhas Malhas triangulares são utilizadas nas mais diversas áreas como forma de representar objetos ou modelos em ambientes computacionais. São compostas pelo agrupamento de triângulos

Leia mais

2 Conceitos Básicos e Trabalhos Relacionados

2 Conceitos Básicos e Trabalhos Relacionados 2 Conceitos Básicos e Trabalhos Relacionados Neste capítulo apresentamos, resumidamente, alguns conceitos básicos necessários para o entendimento do trabalho. Uma descrição mais detalhada destes conceitos

Leia mais

Computação Gráfica II

Computação Gráfica II Computação Gráfica II Representação de Objetos Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com http://www.bolinhabolinha.com Pipeline de visualização 3D 1 Representação dos objetos Aramada (Wire frame)

Leia mais

Proposta de Dissertação de Mestrado Modelagem Computacional, UFJF

Proposta de Dissertação de Mestrado Modelagem Computacional, UFJF Proposta de Dissertação de Mestrado Modelagem Computacional, UFJF Título da Geração de malhas trivalentes com arestas regulares a partir de superfícies arbitrárias Palavras-Chave: Modelagem Geométrica,

Leia mais

Visualização de terrenos em GPU

Visualização de terrenos em GPU Visualização de terrenos em GPU Leonardo Martins { lmartins@inf.puc-rio.br} Disciplina: Visualização de Modelos Massivos Professor: Alberto Raposo Sumário Introdução Objetivos Visão geral Hierarquia de

Leia mais

4 Algoritmo de reconstrução de curvas

4 Algoritmo de reconstrução de curvas 4 Algoritmo de reconstrução de curvas Como visto na introdução, o algoritmo proposto neste trabalho é constituído pelas seguintes etapas: 1. Agrupamento espacial dos pontos de amostragem 2. Processamento

Leia mais

2 Conceitos básicos de topologia

2 Conceitos básicos de topologia 2 Conceitos básicos de topologia Neste Capítulo são introduzidos alguns conceitos básicos de topologia combinatória e da Teoria das Alças que formam a base teórica do presente trabalho. 2.1 Topologia combinatória

Leia mais

Processamento de Malhas Poligonais

Processamento de Malhas Poligonais Processamento de Malhas Poligonais Tópicos Avançados em Computação Visual e Interfaces I Prof.: Marcos Lage www.ic.uff.br/~mlage mlage@ic.uff.br Conteúdo: Notas de Aula Curvas 06/09/2015 Processamento

Leia mais

3 Projeto de Padrões de Geração de Malha Quadrilateral

3 Projeto de Padrões de Geração de Malha Quadrilateral 3 Projeto de Padrões de Geração de Malha Quadrilateral Neste capítulo, os padrões de decomposição de domínio serão projetados para gerar padrões de geração de malha. Aqui são definidos valores para os

Leia mais

SISTEMAS DE INFORMAÇÕES GEOGRÁFICAS Aula 2. SIG- Eng. Cartográfica Prof. Luciene Delazari

SISTEMAS DE INFORMAÇÕES GEOGRÁFICAS Aula 2. SIG- Eng. Cartográfica Prof. Luciene Delazari SISTEMAS DE INFORMAÇÕES GEOGRÁFICAS Aula 2 SIG- Eng. Cartográfica Prof. Luciene Delazari Descrição de uma realidade com algum propósito Modelo MODELAR Termo geral para denotar o processo de construir representações

Leia mais

Figura 1.1: Um reservatório natural de petróleo típico: dificuldade para investigar áreas de interesse.

Figura 1.1: Um reservatório natural de petróleo típico: dificuldade para investigar áreas de interesse. 1 Introdução Técnicas de realidade virtual são ferramentas valiosas para a criação, manipulação e investigação de estruturas reais. Elas provêem um ambiente seguro para que os profissionais envolvidos

Leia mais

Objetos Gráficos Espaciais

Objetos Gráficos Espaciais Universidade Federal de Alagoas Instituto de Matemática Objetos Gráficos Espaciais Prof. Thales Vieira 2014 Objetos Gráficos Espaciais f : U R m 7! R 3 Universo físico Objetos gráficos Representação de

Leia mais

5 Resultados Experimentais

5 Resultados Experimentais 5 Resultados Experimentais Neste capítulo são apresentados alguns testes realizados tendo em vista julgar a aplicação desenvolvida em algumas das situações em que ela possa vir a ser utilizada, assim como

Leia mais

Objetos Gráficos Planares

Objetos Gráficos Planares Universidade Federal de Alagoas Instituto de Matemática Objetos Gráficos Planares Prof. Thales Vieira 2011 Objetos Gráficos Computação Gráfica é a área que estuda a síntese, o processamento e a análise

Leia mais

SCE-201 Computação Gráfica. Representação de Objetos Tridimensionais Modelos Poligonais

SCE-201 Computação Gráfica. Representação de Objetos Tridimensionais Modelos Poligonais INSTITUTO DE CIÊNCIAS MATEMÁTICAS DE SÃO CARLOS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA SCE-201 Computação Gráfica Representação de Objetos Tridimensionais Modelos Poligonais Cenas gráficas

Leia mais

Processamento de Malhas Poligonais

Processamento de Malhas Poligonais Processamento de Malhas Poligonais Tópicos Avançados em Computação Visual e Interfaces I Prof.: Marcos Lage www.ic.uff.br/~mlage mlage@ic.uff.br Conteúdo: Notas de Aula Definições preliminares 06/09/2015

Leia mais

Introdução ao Processamento e Síntese de imagens -Linhas e superfícies escondidas

Introdução ao Processamento e Síntese de imagens -Linhas e superfícies escondidas Introdução ao Processamento e Síntese de imagens -Linhas e superfícies escondidas Júlio Kiyoshi Hasegawa 26 Fontes: Rogers, D. F. Procedural Elements for Computer Graphics Introdução Linhas e superfícies

Leia mais

Shading (sombreamento) & Smooth Shading

Shading (sombreamento) & Smooth Shading Shading (sombreamento) & Smooth Shading Sistemas Gráficos/ Computação Gráfica e Interfaces 1 Shading & Smooth Shading Objectivo: calcular a cor de cada ponto das superfícies visíveis. Solução brute-force:

Leia mais

Pontifícia Universidade Católica do Rio de Janeiro. Departamento de Informática. Fundamentos de Computação Gráfica

Pontifícia Universidade Católica do Rio de Janeiro. Departamento de Informática. Fundamentos de Computação Gráfica 1. Imagens sísmicas Pontifícia Universidade Católica do Rio de Janeiro Departamento de Informática Fundamentos de Computação Gráfica Aluno: Stelmo Magalhães Barros Netto Relatório do trabalho Imagens Sísmicas

Leia mais

Shading (sombreamento) & Smooth Shading

Shading (sombreamento) & Smooth Shading Shading (sombreamento) & Smooth Shading Sistemas Gráficos/ Computação Gráfica e Interfaces 1 Shading & Smooth Shading Objectivo: calcular a cor de cada ponto das superfícies visíveis. Solução brute-force:

Leia mais

Geometria Computacional

Geometria Computacional Geometria Computacional Professor: Anselmo Montenegro www.ic.uff.br/~anselmo Conteúdo: - Polígonos 1 Roteiro Introdução Polígonos Teorema da Curva de Jordan Decomposição de polígonos Triangulações Estrutura

Leia mais

Algoritmo 14 RefinarMalhaBase (malha base M, erro refinamento e) IniciarRefinamento (M, e) AplicarRefinamentoAdapt(M, e)

Algoritmo 14 RefinarMalhaBase (malha base M, erro refinamento e) IniciarRefinamento (M, e) AplicarRefinamentoAdapt(M, e) 6 Refinamento Este capítulo descreve como serão aplicadas as operações de refinamento à malha base a fim de se obter uma representação em multiresolução. O processo de refinamento é feito essencialmente

Leia mais

Análise do revestimento de um coletor

Análise do revestimento de um coletor Manual de engenharia No. 23 Atualização: 01/2019 Análise do revestimento de um coletor Programa: MEF Arquivo: Demo_manual_23.gmk O objetivo deste Manual de Engenharia é realizar a análise de um coletor,

Leia mais

Análise do revestimento de um coletor

Análise do revestimento de um coletor Manual de engenharia No. 23 Atualização: 04/2019 Análise do revestimento de um coletor Programa: MEF Arquivo: Demo_manual_23.gmk O objetivo deste Manual de Engenharia é realizar a análise de um coletor,

Leia mais

2 Base Teórica. 2.1 Representação dual de uma malha quadrilateral

2 Base Teórica. 2.1 Representação dual de uma malha quadrilateral 2 Base Teórica Este capítulo tem por objetivo explicar os termos utilizados neste trabalho. Foram introduzidos alguns termos novos com o propósito de apresentar formalmente a metodologia desenvolvida.

Leia mais

ESCALAS. Uma carta ou mapa, só estará completa se trouxer seus elementos devidamente representados. Esta representação gera dois problemas:

ESCALAS. Uma carta ou mapa, só estará completa se trouxer seus elementos devidamente representados. Esta representação gera dois problemas: ESCALAS Uma carta ou mapa, só estará completa se trouxer seus elementos devidamente representados. Esta representação gera dois problemas: 1. A necessidade de reduzir as proporções dos acidentes à representar,

Leia mais

5ª Lista de Exercícios de Programação I

5ª Lista de Exercícios de Programação I 5ª Lista de Exercícios de Programação I Instrução As questões devem ser implementadas em C. Questões que envolvam leitura de matrizes, a construção dessas matrizes pode ser realizada através da geração

Leia mais

ESTRUTURA DE DADOS. Arvore Binária Jose. Arvore Ternaria Direção

ESTRUTURA DE DADOS. Arvore Binária Jose. Arvore Ternaria Direção ESTRUTURA DE DADOS 1. Árvores: Uma das mais importantes classes de estruturas de dados em computação são as árvores. Aproveitando-se de sua organização hierárquica, muitas aplicações são realizadas usando-se

Leia mais

Sumário COMPUTAÇÃO GRÁFICA E INTERFACES. Modelos e modelagem. Modelos e modelagem. Transformações Geométricas e Visualização 2D

Sumário COMPUTAÇÃO GRÁFICA E INTERFACES. Modelos e modelagem. Modelos e modelagem. Transformações Geométricas e Visualização 2D Sumário COMPUTAÇÃO GRÁFICA E INTERFACES Transformações Geométricas e Visualização D Transformações geométricas Pipeline de visualização D Transformação de coordenadas Window-Viewport Recorte (Clipping)

Leia mais

RV PlanoVision Viewer

RV PlanoVision Viewer RV PlanoVision Viewer Visualizador de Realidade Virtual com Estereoscopia Horizontal e Rastreamento de Cabeça Djalma Lúcio Soares da Silva Sumário I.Introdução... 3 II.Relatório... 4 1.Objetivo... 4 2.Arquitetura...

Leia mais

4 Impostores com Relevo

4 Impostores com Relevo 63 4 Impostores com Relevo I just wish... I wish I knew what I'm supposed to do. That's all. I just wish I knew. (The Matrix) 4.1 Introdução Os objetos modelados por texturas com relevo, por corrigirem

Leia mais

Triangulação Mapeamento em Viewport Modelação Geométrica

Triangulação Mapeamento em Viewport Modelação Geométrica Triangulação Mapeamento em Viewport Modelação Geométrica Apontamentos CG + Edward Angel, Cap Instituto Superior Técnico Computação Gráfica 29/2 Na última aula... Iluminação e Reflexão Modelo de Iluminação

Leia mais

6 Aplicações Detalhes da Implementação

6 Aplicações Detalhes da Implementação 6 Aplicações Neste trabalho, é importante implementar aplicações de interação em tempo real para que seja possível avaliar a aplicabilidade das técnicas de Visão Computacional descritas ao longo dos capítulos

Leia mais

Professor: Computação Gráfica I. Anselmo Montenegro Conteúdo: - Objetos gráficos planares. Instituto de Computação - UFF

Professor: Computação Gráfica I. Anselmo Montenegro  Conteúdo: - Objetos gráficos planares. Instituto de Computação - UFF Computação Gráfica I Professor: Anselmo Montenegro www.ic.uff.br/~anselmo Conteúdo: - Objetos gráficos planares 1 Objetos gráficos: conceitos O conceito de objeto gráfico é fundamental para a Computação

Leia mais

4 Implementação do Gerador de arquivos VRML - VRMLGer

4 Implementação do Gerador de arquivos VRML - VRMLGer 29 4 Implementação do Gerador de arquivos VRML - VRMLGer Neste capítulo são apresentados o desenvolvimento do Gerador de arquivos VRML - VRMLGer, a linguagem de programa utilizada, a estrutura da entrada

Leia mais

Aula 9 Representação e Descrição. Profa. Fátima Nunes AULA 9 / 1. Profa. Fátima L. S. Nunes

Aula 9 Representação e Descrição. Profa. Fátima Nunes AULA 9 / 1. Profa. Fátima L. S. Nunes Fundamentos de Processamento Gráfico Aula 9 Representação e Descrição Profa. Fátima Nunes AULA 9 / 1 Reconhecimento de padrões AULA 9 / 2 Após a segmentação dar significado aos objetos extraídos da cena.

Leia mais

Técnicas de Visualização para Árvores, Grafos e Redes

Técnicas de Visualização para Árvores, Grafos e Redes Técnicas de Visualização para Árvores, Grafos e Redes SCC5836 Visualização Computacional Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências Matemáticas

Leia mais

4 Visualização por pontos

4 Visualização por pontos 4 Visualização por pontos Uma vez gerados os pontos, estes são renderizados e recebem efeitos de profundidade e iluminação, através da definição da cor, opacidade e tamanho. Além disso, os pontos pertencentes

Leia mais

Aula 7 - Representação e Descrição de Estruturas Bi-dimensionais. Prof. Adilson Gonzaga

Aula 7 - Representação e Descrição de Estruturas Bi-dimensionais. Prof. Adilson Gonzaga Aula 7 - Representação e Descrição de Estruturas Bi-dimensionais Prof. Adilson Gonzaga 1 Introdução Objetos ou Segmentos são representados como uma coleção de pixels em uma imagem. Para o reconhecimento

Leia mais

Instituto de Computação Bacharelado em Ciência da Computação Disciplina: Computação Gráfica Primeira lista de exercícios

Instituto de Computação Bacharelado em Ciência da Computação Disciplina: Computação Gráfica Primeira lista de exercícios Instituto de Computação Bacharelado em Ciência da Computação Disciplina: Computação Gráfica Primeira lista de exercícios - 2013.1 Conceitos fundamentais 1) A Computação Gráfica é dividida em diversas sub-áreas.

Leia mais

Transformações de Visualização 2D: Clipping. Antonio L. Bajuelos Departamento de Matemática Universidade de Aveiro

Transformações de Visualização 2D: Clipping. Antonio L. Bajuelos Departamento de Matemática Universidade de Aveiro Transformações de Visualização 2D: Clipping Antonio L. Bajuelos Departamento de Matemática Universidade de Aveiro 1 Clipping (recorte) Qualquer procedimento que identifica porções de uma figura que estão

Leia mais

Figura 16 Niagara - Visão de grupos de notas.

Figura 16 Niagara - Visão de grupos de notas. Conclusão 6 Conclusão 6.1 Trabalhos Relacionados Dentre as funcionalidades fornecidas pela interface gerada pelo framework, em destaque está a possibilidade do zoom livre. Disponibilizar esta funcionalidade

Leia mais

1 Modelamento Avançado

1 Modelamento Avançado 1 Modelamento Avançado O sistemas CAE/CAD/CAM modernos são concebidos modularmente a fim de facilitar o arranjo e gerenciamento de aplicativos usados para criação de formas geométricas. Esta estratégia

Leia mais

3 Sistema de Partículas na CPU

3 Sistema de Partículas na CPU Sistema de Partículas na CPU 16 3 Sistema de Partículas na CPU Um sistema de partículas pode ser dividido em diferentes etapas: avanço do sistema no tempo; construção da estrutura de subdivisão espacial

Leia mais

EXTRAÇÃO DE SILHUETAS EM DADOS VOLUMÉTRICOS

EXTRAÇÃO DE SILHUETAS EM DADOS VOLUMÉTRICOS EXTRAÇÃO DE SILHUETAS EM DADOS VOLUMÉTRICOS Aluno: Rodrigo Arruda Torres Orientador: Sinésio Pesco Introdução O trabalho com dados volumétricos é cada vez mais comum em diversas áreas do conhecimento,

Leia mais

Triangulação de Delauney

Triangulação de Delauney Triangulação de Delauney Um pedaço da superfície terrestre é chamado de terreno. Um terreno é uma superfície 2-dimensional em um espaço 3-dimensional com uma propriedade especial: cada linha vertical intercepta

Leia mais

4 Análise de Dados. 4.1.Procedimentos

4 Análise de Dados. 4.1.Procedimentos 4 Análise de Dados 4.1.Procedimentos A idéia inicial para a comparação dos dados foi separá-los em series de 28 ensaios, com a mesma concentração, para depois combinar esses ensaios em uma única série.

Leia mais

Exemplos Introdução

Exemplos Introdução 6 6.1. Introdução Exemplos O presente capítulo apresenta alguns exemplos de utilização do sistema integrado, descrito detalhadamente no Capítulo 5. Inicialmente é apresentado um exemplo de balanceamento

Leia mais

PEF 5743 Computação Gráfica Aplicada à Engenharia de Estruturas

PEF 5743 Computação Gráfica Aplicada à Engenharia de Estruturas PEF 5743 Computação Gráfica Aplicada à Engenharia de Estruturas Prof. Dr. Rodrigo Provasi e-mail: provasi@usp.br Sala 09 LEM Prédio de Engenharia Civil Iluminação Para a compreensão do funcionamento da

Leia mais

Computação Gráfica. Engenharia de Computação. CEFET/RJ campus Petrópolis. Prof. Luis Retondaro. Aula 7. Iluminação

Computação Gráfica. Engenharia de Computação. CEFET/RJ campus Petrópolis. Prof. Luis Retondaro. Aula 7. Iluminação Computação Gráfica Engenharia de Computação CEFET/RJ campus Petrópolis Prof. Luis Retondaro Aula 7 Iluminação Histórico Modelagem por arames (wireframes). Representa os objetos por arestas e pontos sobre

Leia mais

UNIVERSIDADE FEDERAL DE PERNAMBUCO Lista de Exercícios / Cálculo Numérico 1ª Unidade

UNIVERSIDADE FEDERAL DE PERNAMBUCO Lista de Exercícios / Cálculo Numérico 1ª Unidade 1) Analise as alternativas abaixo e marque V para verdadeiro e F para falso. No segundo caso, explique como as tornaria verdadeiras: ( ) O método das secantes é utilizado para solucionar um problema de

Leia mais

Introdução Geral a Computação Gráfica. Universidade Católica de Pelotas Curso de Engenharia da Computação Disciplina de Computação Gráfica

Introdução Geral a Computação Gráfica. Universidade Católica de Pelotas Curso de Engenharia da Computação Disciplina de Computação Gráfica Introdução Geral a Computação Gráfica Universidade Católica de Pelotas Curso de Engenharia da Computação Disciplina de 2 Introdução Geral a O que é CG? Áreas de Atuação Definição, Arte e Matemática Mercado

Leia mais

5 Resultados e Aplicações

5 Resultados e Aplicações 5 Resultados e Aplicações Os principais resultados desta pesquisa são apresentados neste capítulo, divididos em duas partes. A Seção 5.1 aborda a geração de ADFs utilizando a representação proposta nos

Leia mais

Simplificação e Multiresolução em Modelos Baseados em Pontos

Simplificação e Multiresolução em Modelos Baseados em Pontos Simplificação e Multiresolução em Modelos Baseados em Pontos Felipe Moura de Carvalho Laboratório de Computação Gráfica LCG 1 Sumário Introdução Pontos como Primitiva de Renderização Splats Estruturas

Leia mais

Introdução 20. Figura 1.1 Interseção entre malhas de superfícies [8]. Figura 1.2 Caso patológico de interseção de superfícies [6].

Introdução 20. Figura 1.1 Interseção entre malhas de superfícies [8]. Figura 1.2 Caso patológico de interseção de superfícies [6]. 1 Introdução No contexto da modelagem geométrica para elementos finitos, a malha de elementos finitos é definida a partir da descrição geométrica do domínio do problema que está sendo estudado. Sendo assim,

Leia mais

Estudo de Pontes de Madeira com Tabuleiro Multicelular Protendido O PROGRAMA OTB

Estudo de Pontes de Madeira com Tabuleiro Multicelular Protendido O PROGRAMA OTB Estudo de Pontes de Madeira com Tabuleiro Multicelular Protendido 48 3. O PROGRAMA O primeiro programa para cálculo dos esforços internos de pontes protendidas de madeira foi desenvolvido por Joe Murphy,

Leia mais

Algoritmos de Recorte em 2D

Algoritmos de Recorte em 2D Algoritmos de Recorte em 2D Computação Gráfica DCC065 Prof. Rodrigo Luis de Souza da Silva, D.Sc. Sumário Conceito de Recorte (Clipping) Introdução Algoritmo simples (Força Bruta) Algoritmo de Cohen-Sutherland

Leia mais

Visualização Científica Algoritmos de Visualização usando o VTK

Visualização Científica Algoritmos de Visualização usando o VTK Visualização Científica Algoritmos de Visualização usando o VTK João Manuel R. S. Tavares Jorge Gomes Barbosa url: http://www.fe.up.pt/~tavares ~tavares/ensino/visci/ /ensino/visci/visci.html Sumário 1.

Leia mais

2 O Modelo: SetModel. 2.1 Modelo de Informação

2 O Modelo: SetModel. 2.1 Modelo de Informação O Modelo: SetModel 2 O Modelo: SetModel 2.1 Modelo de Informação Modelo de informação é uma representação abstrata e formal de entidades incluindo suas propriedades, relações e operações que podem ser

Leia mais

Esse tipo de visualização sempre exige uma preocupação adicional com eficiência pois o número de polígonos necessário para representar fielmente a

Esse tipo de visualização sempre exige uma preocupação adicional com eficiência pois o número de polígonos necessário para representar fielmente a 1 Introdução A visualização de terrenos é uma área em constante evolução em computação gráfica, que é utilizada em uma série de aplicações, como jogos, simuladores de vôo, aplicações militares, estudos

Leia mais

3.1 Linha de Produção Utilizada

3.1 Linha de Produção Utilizada 3 Linha de Produção Gráfica Distribuída Neste capítulo, é proposta uma extensão à linha de produção gráfica convencional (graphics pipeline) destinada à renderização distribuída. Esta apresentação inclui

Leia mais

Assentamento da fundação de um silo circular

Assentamento da fundação de um silo circular Manual de engenharia No. 22 Atualização: 06/2016 Assentamento da fundação de um silo circular Programa: MEF Arquivo: Demo_manual_22.gmk O objetivo deste manual é descrever a resolução da análise de assentamento

Leia mais

PLANO CURRICULAR DISCIPLINAR. Matemática 5º Ano

PLANO CURRICULAR DISCIPLINAR. Matemática 5º Ano PLANO CURRICULAR DISCIPLINAR Matemática 5º Ano OBJETIVOS ESPECÍFICOS TÓPICOS SUB-TÓPICOS METAS DE APRENDIZAGEM 1º Período Compreender as propriedades das operações e usá-las no cálculo. Interpretar uma

Leia mais

Visualização Científica Algoritmos de Visualização usando o VTK. ~tavares/ensino/visci/

Visualização Científica Algoritmos de Visualização usando o VTK. ~tavares/ensino/visci/ Visualização Científica Algoritmos de Visualização usando o VTK João Manuel R. S. Tavares Jorge Gomes Barbosa url: http://www.fe.up.pt/~tavares ~tavares/ensino/visci/ /ensino/visci/visci.html Sumário 1.

Leia mais

SUMÁRIO. Fundamentos Árvores Binárias Árvores Binárias de Busca

SUMÁRIO. Fundamentos Árvores Binárias Árvores Binárias de Busca ÁRVORES SUMÁRIO Fundamentos Árvores Binárias Árvores Binárias de Busca 2 ÁRVORES Utilizadas em muitas aplicações Modelam uma hierarquia entre elementos árvore genealógica Diagrama hierárquico de uma organização

Leia mais

Instituto de Computação Bacharelado em Ciência da Computação Disciplina: Computação Gráfica Primeira lista de exercícios

Instituto de Computação Bacharelado em Ciência da Computação Disciplina: Computação Gráfica Primeira lista de exercícios Instituto de Computação Bacharelado em Ciência da Computação Disciplina: Computação Gráfica Primeira lista de exercícios - 2012.2 Conceitos fundamentais 1) A Computação Gráfica é dividida em diversas sub-áreas.

Leia mais

4 Método Proposto CR AD PA NDVI Descrição geral do modelo

4 Método Proposto CR AD PA NDVI Descrição geral do modelo 34 4 Método Proposto 4.1. Descrição geral do modelo Neste trabalho, cada classe (cobertura vegetal) possui um HMM específico. Os estágios fenológicos correspondem a estados e os símbolos observáveis a

Leia mais

Objetos Gráficos Planares

Objetos Gráficos Planares Universidade Federal de Sergipe Departamento de Matemática Objetos Gráficos Planares Profª. Maria Andrade 2016 Objetos Gráficos Computação Gráfica é a área que estuda a síntese, o processamento e a análise

Leia mais

ÁRVORES E ÁRVORE BINÁRIA DE BUSCA

ÁRVORES E ÁRVORE BINÁRIA DE BUSCA ÁRVORES E ÁRVORE BINÁRIA DE BUSCA Prof. André Backes Definição 2 Diversas aplicações necessitam que se represente um conjunto de objetos e as suas relações hierárquicas Uma árvore é uma abstração matemática

Leia mais

Nº Nome: Relação de aspecto é o quociente entre a altura e a largura de uma janela ou um viewport.

Nº Nome: Relação de aspecto é o quociente entre a altura e a largura de uma janela ou um viewport. 1º Teste Computação Gráfica LEIC/LERCI/LCI Prof. João Brisson Lopes Eng. Carlos Martinho 8 de Abril de 26 Nº Nome: Antes de começar: Identifique todas as folhas com o seu número. Responda às questões seguintes

Leia mais

3.1 CRIAR A GEOMETRIA/MALHA;

3.1 CRIAR A GEOMETRIA/MALHA; 72 3 METODOLOGIA A metodologia adotada no presente trabalho foi a de utilizar a ferramenta de dinâmica dos fluidos computacional (CFD) para simular dispositivos microfluídicos de diferentes geometrias

Leia mais

Histórico. Estado da Arte. Histórico. Modelagem de Objetos. Modelagem por arames (wireframes). Modelagem por superfícies (década de 60).

Histórico. Estado da Arte. Histórico. Modelagem de Objetos. Modelagem por arames (wireframes). Modelagem por superfícies (década de 60). Histórico Modelagem de Objetos Renato Ferreira Modelagem por arames (wireframes). Representa os objetos por arestas e pontos sobre a sua superfície. Gera modelos ambíguos. Modelagem por superfícies (década

Leia mais

FOTOGRAMETRIA E FOTOINTERPRETAÇÃO

FOTOGRAMETRIA E FOTOINTERPRETAÇÃO FOTOGRAMETRIA E FOTOINTERPRETAÇÃO Mosar Faria Botelho PONTOS DE APOIO Objetiva relacionar os objetos contidos na foto aérea com os objetos contidos no terreno. MÉTODOS DE POSICIONAMENTO POR GPS Modo Ponto

Leia mais

Introdução. 1 Introdução

Introdução. 1 Introdução Introdução 1 Introdução O efeito visual de sombras em uma cena 3D é muito enriquecedor. Sem ele, quando a imagem é projetada na tela bidimensional do computador para visualização, perdem-se informações

Leia mais

3 Extração de Regras Simbólicas a partir de Máquinas de Vetores Suporte 3.1 Introdução

3 Extração de Regras Simbólicas a partir de Máquinas de Vetores Suporte 3.1 Introdução 3 Extração de Regras Simbólicas a partir de Máquinas de Vetores Suporte 3.1 Introdução Como já mencionado na seção 1.1, as SVMs geram, da mesma forma que redes neurais (RN), um "modelo caixa preta" de

Leia mais

INF2608 Fundamentos da Computação Gráfica Prova Final de

INF2608 Fundamentos da Computação Gráfica Prova Final de INF268 Fundamentos da Computação Gráfica Prova Final de 2. Aluno(a):_ Eduardo Ribeiro matrícula: Questão Pts. a ) 3. 2 a ) 3. 3 a ) 4. Nota Para fazer a prova, favor observar o seguinte:. A prova é individual.

Leia mais

5 Implementação da Metodologia

5 Implementação da Metodologia 5 Implementação da Metodologia A implementação da metodologia proposta no Capítulo 4 é possível devido ao importante avanço que os métodos numéricos e a capacidade de processamento computacional atuais

Leia mais

Detecção de Colisões entre Pares de Poliedros Rígidos Aplicada ao Projeto ASIMOV. por Anderson Maciel

Detecção de Colisões entre Pares de Poliedros Rígidos Aplicada ao Projeto ASIMOV. por Anderson Maciel Detecção de Colisões entre Pares de Poliedros Rígidos Aplicada ao Projeto ASIMOV por Anderson Maciel Conteúdo desta apresentação: Introdução Objetivos e Motivação A Detecção de Colisões Parte I Boyse (1979)

Leia mais

Operações Booleanas na Modelagem por Pontos

Operações Booleanas na Modelagem por Pontos Operações Booleanas na Modelagem por Pontos Heloisa Reis Leal 1, Waldemar Celes 2, Luiz Velho 1 1 IMPA Instituto de Matemática Pura e Aplicada Estrada Dona Castorina, 110 22460-320 Rio de Janeiro, RJ 2

Leia mais