A partir dos dados validados e consoante o seu tipo, são- lhes associadas funções de geração tridimensional automática (ex. extrusão a partir de uma linha de contorno e da sua cota mais elevada), que têm como objectivo a modelação tridimensional dos objectos a que os dados se referem. Cabe à aplicação desenvolvida, caso não necessite de todo o detalhe proporcionado pelo ambiente SIG, proceder à simplificação dos dados, antes da aplicação das funções de modelação. As simplificações de dados permitem a obtenção de modelos de menor complexidade, o que aporta grandes reduções ao nível de armazenamento em memória e tempo de processamento e visualização.
1
Agora isso é apenas necessário na fonte, pois o processo de importação de dados foi entretanto consideravelmente automatizado, permitindo ao mesmo tempo a correcção automática de pequenos erros nos dados.
2.3.1 Modelo digital de terreno (MDT)
A geração das malhas reparte-se entre as ferramentas SIG e os pré-processadores do ambiente de realidade virtual, sendo as primeiras, responsáveis pelas tarefas de tratamento de dados e geração de versões preliminares das malhas, e os segundos, pela atribuição das coordenadas de textura. A construção das malhas tridimensionais envolve uma maior complexidade se o relevo estiver dividido em quadrículas individuais, pois a geração dos modelos tridimensionais de cada uma delas deve ter em conta a exigência final de encaixe perfeito nas fronteiras de quadrículas adjacentes. Esta divisão tem, todavia, algumas vantagens aliciantes: permite uma utilização mais eficaz de técnicas de culling, uma vez que para uma determinada posição da câmera virtual, basta desenhar as partículas cujo volume envolvente intersecte o volume de visualização, evitando-se assim o desenho de toda a malha. A divisão aporta ainda vantagens tais como uma maior rapidez em testes de colisões e de point-in-polygon, devido ao decréscimo do número de polígonos a ser testado. Há ainda a acrescentar, as vantagens que advêm do uso de uma estrutura modular, a qual torna possível o carregamento de pequenas porções do modelo na memória, sendo bastante útil para o aumento da performance de visualização.
VRML foi o formato intermediário escolhido entre os dados gerados pelo SIG e o motor de realidade virtual. O uso de VRML neste processo justifica-se, devido à sua sintaxe relativamente simples e portabilidade entre as várias aplicações. Embora tenha sido necessário a criação de ferramentas de parsing que pudessem importar/exportar dados em VRML, o tempo de desenvolvimento das aplicações é suficientemente curto face aos ganhos de interface entre sistemas e pessoas. Desta forma é possível, em qualquer fase do desenvolvimento, partilhar os vários sub-modelos entre as várias equipas e especialistas que, independentemente da plataforma de trabalho que possuem, conseguem emitir pareceres sobre a qualidade do modelo geométrico.
As malhas de terreno, depois de exportadas, são submetidas a um processo de regularização. Efectua-se uma amostragem da malha irregular, com passo constante, ao longo de dois eixos, obtendo-se a altura do terreno nesse ponto, e criando desta forma uma nova malha. A regularidade de espaçamento dos pontos, resultado do varrimento da malha antiga (irregular), facilita a criação de stripes, e, numa fase mais avançada, promove a utilização de níveis de detalhe (LOD's) dinâmicos. Estes tópicos serão abordados com maior detalhe na secção de optimizações.
2.3.2 Edificado 3D
Como já foi descrito anteriormente, os dados relevantes para a construção dos edíficios são um conjunto de polígonos representando a sua implantação no terreno e um conjunto de pontos representando a sua altimetria.
167
10º Encontro Português de Computação Gráfica 1-3 de Outubro 2001
Para cada ponto altimétrico deve ser determinada a base que lhe corresponde, ficando estabelecida a relação ponto-base que permite a modelação do edíficio por varrimento espacial da base até à sua altura. Para determinar a que polígono pertence um ponto, é disparado um raio tendo como direcção o eixo vertical e sentido de cima para baixo. A cada base intersectada, corresponderá um edíficio, sendo a sua altura indicada pelo ponto.
Após a geração do edifício, é verificada a geometria da sua base. Se esta corresponder a uma forma rectangular, ou quadrangular, é gerado um telhado com duas ou quatro águas respectivamente. Todos os restantes casos (e devido ao facto da determinação das águas não ser trivial), são submetidos a uma função de striping, que recebe como dados um polígono, e cujo resultado é um grupo de stripes coplanares (sendo no melhor caso um único stripe por telhado); o aspecto final destes casos não triviais para o utilizador, resume-se ao de um terraço. 2.3.2.1 Determinação da altura correcta para a base
Fazer o varrimento espacial da base, até ao ponto de altitude correspondente, seguindo uma trajectória no eixo positivo vertical, pode originar um efeito de "floresta" subterrânea, devido à não planaridade do terreno.
As desvantagens que advêm deste efeito, prendem-se com a desvirtuação dos propósitos das técnicas de
culling (teste de visibilidade de superfícies parcialmente
ocultas), e na dificuldade do mapeamento de texturas sem distorção (o volume visível terá de apresentar portas e janelas consentâneos com as escalas dos modelos, para além de a porta dever estar na base visível da textura – fig. 4).
A determinação da altura da base de um edíficio recorre à malha de relevo da partição onde a base se encontra e ao registo da menor altura entre os vértices da base. Como o solo pode ser irregular, para se evitar que as arestas fiquem no ar, deve ser subtraída uma margem de segurança à menor altura dos vértices.
2.3.2.2 Materiais e mapeamento de texturas As bases poligonais exportadas pelo SIG apresentam, normalmente, grande detalhe. Consequentemente, após extrusão, obtêm-se modelos geométricos com um número de polígonos elevado e incomportável para o
hardware existente. Para evitar a construção de modelos
complexos devem ser aplicadas simplificações às bases antes de se proceder à extrusão. As optimizações utilizadas foram de dois tipos:
1. unificação de vértices nas bases: eliminação de arestas inferiores a um valor pré-determinado. Para tal unificam-se vértices que se encontrem entre si a uma distância menor que um dado valor;
2. remoção de arestas co-lineares: redução do número de arestas utilizado para aproximar bases de edíficios com formas curvílineas, através da remoção de arestas que sejam aproximadamente co- lineares.
A técnica de mapeamento de texturas implementada passa por duas fases: a escolha da textura e o mapeamento da mesma. A aplicação tem associado a cada textura um escalão de altura, determinado pela altura aproximada da fachada representada. Para escolher uma textura para um determinado edíficio, é necessário classificar esse edíficio segundo a mesma escala de altura. Essa classificação é feita através da sua altura ao solo (p. ex. prédios com menos de 3 metros pertencem ao escalão 1). Uma vez escolhido o escalão de altura, é aleatoriamente seleccionada uma textura desse escalão para ser atribuída ao edíficio. No caso do modelo "Lisboa Virtual", o processo de selecção aleatório de uma textura, passa em primeiro lugar, por identificar a que zona de Lisboa pertence o edifício. Lisboa encontra- se dividida em "zonas características", ou seja, áreas onde as fachadas dos edifícios são similares (é de notar que estas zonas não coincidem necessariamente com as quadrículas individuais (de terreno) existente, pelo que as primeiras podem cobrir desde fracções de quadrículas até várias quadrículas inteiras do modelo). No final, a selecção de uma textura, passa por identificar a zona onde se situa o edifício, e a escolha aleatória de uma fachada, num grupo de fachadas específicas dessa zona, tendo em conta o escalão a que o edifício pertence. No mapeamento de texturas, a atribuição das coordenadas de textura é feita de forma a não repetir a textura verticalmente, e repetir horizontalmente o número de vezes que produza menos distorção. Para calcular o número de réplicas horizontais é calculado o rácio entre a altura do edíficio e o número de pixels da textura e define-se esse número respeitando o mesmo rácio horizontalmente.
2.3.3 Cobertura vegetal
A informação do SIG utilizada para a modelação das árvores são os pontos de localização das árvores no plano horizontal, não existindo informação sobre a altura de implantação das árvores, diâmetro das suas copas, ou tipo de árvore.
Após a determinação da localização da árvore sobre o relevo é construído um modelo pseudo-tridimensional representativo de uma árvore, com altura e copa
Figura 5
aleatórios, mas sempre dentro de parâmetros pré- definidos para a zona e classe de árvore.
Os modelos escolhidos para representar as árvores são constituídos por duas faces, intersectando-se perpendicularmente, mapeadas com texturas indexadas e utilizando transparências. O objectivo foi o de alcançar uma representação de árvores com aspecto aparentemente tridimensional, mas com uma geometria bastante simples, técnica bastante vulgar em visualização em ambiente CAD.
3. NAVEGAÇÃO E INTERACÇÃO: UMA