ambiente interactivo de visualização para apoio à decisão...

92
UNIVERSIDADE NOVA DE LISBOA FACULDADE DE CIÊNCIAS E TECNOLOGIA DEPARTAMENTO DE INFORMÁTICA Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal André Osório e Cruz de Azeredo Falcão Dissertação apresentada na Faculdade de Ciências e Tecnologia da Universidade Nova de Lisboa para obtenção do grau de Mestre em Engenharia Informática Orientador: Prof. Doutor Manuel João Toscano Próspero dos Santos Lisboa 2004

Upload: buicong

Post on 11-Nov-2018

213 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

UNIVERSIDADE NOVA DE LISBOA

FACULDADE DE CIÊNCIAS E TECNOLOGIA

DEPARTAMENTO DE INFORMÁTICA

Ambiente interactivo de visualização para apoio à

decisão em modelos de gestão florestal

André Osório e Cruz de Azeredo Falcão

Dissertação apresentada na Faculdade de Ciências e Tecnologia da Universidade Nova de Lisboa para obtenção do grau de Mestre em Engenharia Informática

Orientador: Prof. Doutor Manuel João Toscano Próspero dos Santos

Lisboa

2004

Page 2: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

2

AGRADECIMENTOS

Não é possível deixar passar esta oportunidade sem agradecer às pessoas e entidades

responsáveis que tornaram este trabalho possível.

Em primeiro lugar, ao meu orientador, o Professor Manuel Próspero dos Santos que me

motivou com críticas e observações sempre pertinentes e contribuiu para que esta tese se

tornasse uma realidade.

Em segundo lugar à minha ex-colega Marlene Marques pela paciência com que esteve comigo

a dissecar as fragilidades geométricas do ArcView.

Também aos colegas do ISA, José Guilherme Borges, José Tomé, Margarida Tomé, Sofia

Cerasoli, Maria da Conceição Caldeira, Miguel Bugalho, Paula Soares, Helena Martins, Rui

Pedro Ribeiro e Vanda Oliveira, que viram e experimentaram os "Landscapers", dizendo-me

que não estavam tão maus quanto eu julgava.

Agradeço também à Fundação para a Ciência e a Tecnologia que, através da minha bolsa de

Pós-Doutoramento (SFRH/BPD/7135/2001), garantiu a disponibilidade para a realização

deste trabalho e pelo projecto Sapiens (ref.36332/2000), que providenciou a que os dados de

base estivessem disponíveis. Também ao Engenheiro José Manuel Rosendo da Direcção

Regional de Agricultura do Algarve, que me disponibilizou a informação fotointerpretada e a

altimetria do Algarve no âmbito da realização do PROF (Medida 8.1 do Programa AGRO -

Projecto 299).

Finalmente, à Inês e ao Gonçalo, que suportaram as noitadas e fins de semanas de trabalho,

enquanto isto não ficou pronto.

Page 3: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

3

Resumo

Esta dissertação discute a possibilidade da inclusão de preferências dos utilizadores em

procedimentos de gestão e avaliação de cenários de gestão florestal. O problema não é trivial

uma vez que a complexidade geométrica de cenas naturais é muito elevada. Para abordar este

tópico, foram implementadas e desenvolvidas um conjunto de técnicas computacionais, que

envolvem desde a preparação dos dados iniciais, até aos procedimentos de desenho da

geometria. Desta forma, são descritas as operações que possibilitam a transformação da

informação proveniente de um sistema de informação, referindo detalhadamente os

algoritmos utilizados para a decomposição geométrica das coberturas geográficas.

Seguidamente são demonstradas as arquitecturas de dois protótipos desenvolvidos que

permitem a navegação, em tempo de execução, sobre os cenários escolhidos. Uma primeira

versão foi estruturada para funcionar sobre áreas de média dimensão, garantindo, no entanto,

a presença de pontos de referenciação geográfica. A segunda versão do protótipo permite uma

navegação sobre áreas florestais com dimensão arbitrária, que no caso de teste se estendem

até cerca de 95,000 ha, usando um frustum de 2.0 km. Conseguiu-se uma representação

correcta de paisagens reais com desempenhos sustentados de mais de 30 imagens por segundo

desenhando mais de 1 milhão de vértices por cena.

Palavras chave: computação gráfica; representação de paisagens; desenho de vegetação;

gestão de recursos naturais; avaliação de contingentes

Page 4: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

4

Abstract

This dissertation discusses the possibility of including user preferences in participative

decision procedures of forest management scenarios. The problem is not trivial as the

geometric complexity of natural scenes is very high. To address this issue, a number of

computational techniques has been developed and implemented. Initially, a detailed overview

of forest data pre-processing procedures is described, focusing on terrain geometric

decomposition algorithms. Then, two different approaches to address the rendering problem

of vegetation-covered terrain are described. Both prototypes provide basic landscape

navigation tools for any forest management scenario defined. The first version has been

structured to work over medium-sized landscapes, guaranteeing the presence of geographical

reference points. The second approach provides more visually pleasing results, allowing for

view frustums of 2.0 km long, over real world landscapes that can extend arbitrarily. The

current prototype was tested over a 95,000 ha area. With this second prototype landscapes

were found to be accurately represented with sustained frame rates above 30 frames per

second, rendering over 1 million vertices per frame.

Key words: computer graphics; landscape rendering; vegetation rendering; natural resources

management; contingent valuation

Page 5: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

5

ÍNDICE

1. INTRODUÇÃO................................................................................................................9

1.1. VISUALIZAÇÃO INTERACTIVA DE PAISAGENS FLORESTAIS..............................................9 1.2. O PROCESSO DE TOMADA DE DECISÃO EM GESTÃO FLORESTAL..................................... 10

1.2.1. Visão geral de um SAD em gestão de recursos florestais..................................... 11 1.2.2. Sistema de gestão de Informação ........................................................................ 11 1.2.3. Simulação........................................................................................................... 12 1.2.4. Modelação da gestão .......................................................................................... 13 1.2.5. Integração do Visualizador no SAD.................................................................... 14

1.3. O PROBLEMA COMPUTACIONAL.................................................................................. 14 1.5. ORGANIZAÇÃO DO TRABALHO .................................................................................... 15

2. PROCESSAMENTO DA INFORMAÇÃO.................................................................. 17

2.1. INFORMAÇÃO FLORESTAL........................................................................................... 17 2.2. REPRESENTAÇÃO GEOMÉTRICA DAS ÁRVORES............................................................. 18

2.2.1. Métodos de representação geométrica ................................................................ 18 2.2.2. Texturação da geometria .................................................................................... 20 2.2.3. Modelação das árvores....................................................................................... 21

2.3. REPRESENTAÇÃO TEXTURAL DO TERRENO................................................................... 21 2.3.1. Tratamento da fotografia aérea .......................................................................... 23 2.3.2. Texturas individuais de sol.................................................................................. 24

2.3. GEOMETRIA DA INFORMAÇÃO GEOGRÁFICA................................................................ 24 2.3.1. Decomposição da informação em células............................................................ 25 2.3.2. Representação e leitura da informação geográfica vectorial............................... 26 2.3.3. Intersecção de polígonos .................................................................................... 27 2.3.4. Interpolação altimétrica dos vértices .................................................................. 28 2.3.5. Triangulação ...................................................................................................... 29

2.3.5.1. O problema computacional........................................................................... 29 2.3.5.2. Estrutura de dados........................................................................................ 31 2.3.5.3. Triangulação de polígonos simples............................................................... 32 2.3.5.4. Polígonos simples com ilhas......................................................................... 37 2.3.5.5. Triangulação de polígonos monotónicos....................................................... 40 2.3.5.6. Considerações finais sobre a metodologia seguida........................................ 40

2.3.6. Intersecção de triângulos com as Células de visibilidade.................................... 40 2.3.7. Cálculo das Normais .......................................................................................... 44

3. FERRAMENTAS DESENVOLVIDAS......................................................................... 47

3.1. FACTORES COMUNS.................................................................................................... 47 3.1.1. Utilização da biblioteca OpenGL........................................................................ 47 3.1.2. Utilização de extensões ao OpenGL 1.2 .............................................................. 49 3.1.3. Representação de geometria ...............................................................................49 3.1.4. Transparências e alpha blending ........................................................................ 51

Page 6: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

6

3.2. LANDSCAPER 1.0................................................................................................... 54 3.2.1. Representação interna da informação................................................................. 55 3.2.2. Colocação das árvores no terreno ...................................................................... 57 3.2.3. Definição do horizonte visual..............................................................................58 3.2.4. Movimentação no terreno ................................................................................... 60

3.3. LANDSCAPER 2.0................................................................................................... 60 3.3.1. Diferenças face à versão anterior ....................................................................... 61 3.3.2. Representação da informação............................................................................. 62 3.3.3. Carregamento dinâmico do terreno .................................................................... 64 3.3.4. Colocação das árvores ....................................................................................... 65 3.3.5. Definição do horizonte visual..............................................................................67 3.3.6. Interface e Sistema de navegação ....................................................................... 69 3.3.7. Percursos predefinidos e benchmarking.............................................................. 69

4. APLICAÇÃO E RESULTADOS................................................................................... 71

4.1. ÁREAS DE TESTE......................................................................................................... 71 4.1.1. O Cantão das Hortas .......................................................................................... 71

4.1.1.1 Caracterização da área................................................................................... 71 4.1.1.2. Processamento da informação florestal......................................................... 71

4.1.2. Barlavento Algarvio e Monchique....................................................................... 72 4.1.2.1. Caracterização da informação de base .......................................................... 72 4.1.2.2. Processamento da informação florestal......................................................... 73

4.2. IMPLEMENTAÇÃO ....................................................................................................... 73 4.3. APLICAÇÃO DO LANDSCAPER 1.0. ............................................................................... 74

4.3.1. Qualidade visual................................................................................................. 74 4.3.2. Desempenho ....................................................................................................... 78

4.4. APLICAÇÃO DO LANDSCAPER 2.0................................................................................ 79 4.4.1. Qualidade visual................................................................................................. 79 4.4.2. Desempenho ....................................................................................................... 80

5. CONCLUSÕES .............................................................................................................. 85

BIBLIOGRAFIA................................................................................................................ 88

Page 7: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

7

ÍNDICE DE FIGURAS

Figura 1.1. Integração do visualizador num sistema de apoio à decisão em recursos florestais

identificando os diferentes fluxos de informação e dados exteriores.............................. 12 Figura 2.1. Modelo simplificado de árvore com dois rectângulos entrecruzados ................... 20 Figura 2.2. Detalhe de fotografia aérea (voo da CELPA/CNIG -1995) antes (esquerda) e

depois (direita) da correcção espectrométrica efectuada................................................ 24 Figura 2.3. Tipos de Polígonos ............................................................................................. 30 Figura 2.3. Representação UML da estrutura de dados que define um vértice ....................... 31 Figura 2.4. - Representação da ordenação de vértices para um polígono com uma ilha ......... 32 Figura 2.5. Exemplo de um vértice concâvo situado em Pj.................................................... 35 Figura 2.6. - Exemplo de um caso "patológico" em que o número de vértices côncavos se

aproxima do número total de vértices ........................................................................... 35 Figura 2.7. Exemplo de polígono a triangular ....................................................................... 36 Figura 2.8. Resultado final da triangulação do polígono de teste........................................... 37 Figura 2.9 Processo de fusão de dois anéis por criação de dois vértices auxiliares. a) situação

inicial antes da fusão (VE - vértice pertencente ao anel exterior; VI - Vértice pertencente ao anel interior); b) situação final em que os dois anéis pertencem ao mesmo ciclo....... 39

Figura 2.10 - Decomposição de um polígono com buracos através do algoritmo Triangulação_Com_Ilhas. a) Polígono antes do processo de triangulação; b) Fusão dos buracos com o anel principal; c) resultado da triangulação final.................................... 40

Figura 2.11. Subdivisão de um triângulo por sobreposição a uma grelha ortogonal............... 43 Figura 2.12 Exemplo de subdivisão excessiva de um triângulo pela sua inserção numa grelha

ortogonal. ..................................................................................................................... 43 Figura 2.13. Exemplo do cálculo de normais para um vértice ............................................... 44 Figura 3.1. Alpha blending em OpenGL. Problemas na adequação de valore correctos de

alpha para representação da geometria. (a) glAlphaFunc(GL_GREATER 0.1); b) glAlphaFunc(GL_GREATER 0.9) )............................................................................... 54

Figura 3.2. Diagrama UML da estrutura de dados utilizada no programa Landscaper 1.0 ..... 56 Figura 3.3. Definição e desenho das células visíveis no programa Landscaper 1.0. (TC –

triângulo de cima; TB – Triângulo de baixo..................................................................60 Figura 3.4. Representação em UML das principais estruturas de dados do programa

Landscaper 2 ................................................................................................................ 63 Figura 3.5. Algoritmo de deslocação da região de visibilidade.............................................. 65 Figura 3.6. Triângulo envolvido por um rectângulo de área sub-óptima orientado pelos eixos

cartesianos.................................................................................................................... 66 Figura 4.1. Landscaper 1.0 - Comparação dos cenários A e B no Perímetro Florestal do

Cantão das Hortas, quinze anos após o momento inicial. Visão do "Terreiro das Bruxas", olhando para o povoamento de eucalipto situado a poente ............................................ 76

Page 8: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

8

Figura 4.2. Landscaper 1.0 - Comparação dos cenários A e B no Perímetro Florestal do Cantão das Hortas, quinze anos após o momento inicial. Visão da encosta Oeste.......... 77

Figura 4.3. Landscaper 2.0 - Orla de um povoamento de pinheiros adultos vista de dentro, podendo ainda observar-se a paisagem florestal distante............................................... 80

Figura 4.4. Landscaper 2.0 - Interior de um povamento esparso de pinheiros, sendo visível ao fundo um povoamento de eucaliptos............................................................................. 81

Figura 4.5. Landscaper 2.0 - Voo em altitude sendo visivel o reticulado da paisagem e geometria das ocupações presentes ............................................................................... 81

Figura 4.6. Landscaper 2.0 - vôo por cima das copas, avistando diferentes tipos de ocupação florestal ........................................................................................................................ 82

ÍNDICE DE QUADROS Quadro 4.1. Desempenho do programa Landscaper 1.0 a várias resoluções .......................... 79 Quadro 4.2. Desempenho da execução do programa Landscaper 2.0 a várias resoluções ...... 82

Page 9: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

9

1. INTRODUÇÃO

1.1. Visualização interactiva de paisagens florestai s

Ao longo das últimas décadas, a opinião pública tem-se mostrado progressivamente

preocupada com os efeitos visíveis das mudanças ambientais (Luymes 2001, Sheppard 1989).

Verifica-se uma crescente sensibilidade do público para as questões ambientais e

paisagísticas, ao que o crescimento da procura turística nas zonas rurais vêm salientar ainda

mais o valor objectivo da paisagem na economia das populações situadas em zonas florestais

ou próximas delas.

Por outro lado, avanços significativos nas tecnologias de informação nas últimas décadas

permitiram a inclusão de componentes paisagísticos como factores passíveis de influenciar a

forma como se gerem as florestas. Com efeito, a maior capacidade de processar informação,

em particular informação gráfica, em computadores de uso comum permite que seja possível

visualizar o impacte paisagístico de planos de gestão vários anos antes de eles se tornarem

aparentes. Os trabalhos de McGaughey (1997), Orland e Uusitalo (2001) e Danahy (2001)

demonstram que é possível apresentar os efeitos de diferentes estratégias de gestão em

imagens que são prontamente identificáveis pelos utilizadores finais (Luymes 2001). É

possível ainda a comparação dos efeitos paisagísticos de diferentes estratégias de gestão em

diferentes pontos de observação. Um visualizador de paisagens prospectivas é assim mais

uma ferramenta para uso do gestor, podendo ainda facilitar o envolvimento dos utilizadores

finais no processo de tomada de decisão.

Page 10: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

10

O trabalho desenvolvido foca os esforços encetados para estender ainda mais essa capacidade

de visualização ao procurar a representação visual uma paisagem virtual interactiva na qual o

utilizador pode navegar. Esta abordagem pode comunicar assim ao utilizador uma perspectiva

mais abrangente fornecendo uma maior quantidade de informação. O objectivo do sistema

proposto é, pois, permitir ao utilizador percorrer virtualmente a área considerada sob um

determinado plano de gestão proposto. No sistema desenvolvido, além de ser possível

observar a paisagem estaticamente a partir de um ponto de vista predefinido, permite-se ainda

ao utilizador a “deslocação” pela floresta como se se deslocasse a andar, ou realizar um voo

virtual por cima das copas para ter uma ideia global da cobertura florestal num determinado

momento no tempo.

Temos assim definido o primeiro obstáculo. Para definir um visualizador de paisagens

prospectivas é necessário, em primeiro lugar, conhecer em que situação estará a floresta num

determinado momento do tempo. Seguidamente definir o coberto florestal apropriado e

finalmente alimentar essa informação num módulo de visualização. É necessário então um

conjunto de ferramentas prévias que efectuem a gestão da informação existente, permitam

realizar simulações para outros momentos no tempo, definam cenários de gestão compatíveis

com as possibilidades da floresta e finalmente transformem essa informação para entrada

num visualizador. Todos esses passos podem ser compreendidos num sistema de apoio à

decisão para gestão de recursos florestais.

1.2. O processo de tomada de decisão em gestão flor estal

A tomada de decisão em gestão florestal, apresenta diferenças face a outros campos da gestão,

sendo caracterizada por dois aspectos fundamentais:

• Em primeiro lugar, o longo prazo requerido pelo processo (i.e. é vulgar encontrar na

literatura períodos de planeamento de 100, 150 ou 200 anos);

• Em segundo lugar a escassez da informação e o seu elevado grau de incerteza. Com

efeito, no processo de inventário florestal, base do planeamento, apenas uma fracção

das árvores existentes são medidas. A sua medição é feita geralmente a características

biométricas simples, que através de modelos estatísticos são reportados à unidade

básica de planeamento, o povoamento. Entende-se como povoamento uma unidade de

Page 11: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

11

terreno contígua homogénea em composição (espécies presentes), estrutura

(distribuição das espécies) e idade. A incerteza associada à extrapolação para o

momento presente é naturalmente acrescida no processo de projecção para outros

momentos no horizonte de planeamento. A estruturação de um sistema de apoio à

decisão em recursos florestais do tipo normativo deve então contemplar estes dois

aspectos na sua estruturação.

1.2.1. Visão geral de um SAD em gestão de recursos florestais

O visualizador de paisagens florestais enquadra-se no sistema de apoio à decisão (SAD)

descrito na figura 1.1. onde se representa este módulo do SAD tanto nos requisitos da

informação de entrada necessária para o seu correcto funcionamento, como os outputs

resultantes do procedimento de simulação e respectiva integração nos outros módulos do

sistema. Assim, é possível identificar 5 componentes principais nesta arquitectura.

a) Sistema de gestão de bases de dados;

b) Simulador e gerador de alternativas de gestão;

c) Modelos de decisão;

d) Pré-procesador (conversor e processador geométrico);

e) Visualizador.

No diagrama estão representadas as trocas de informação entre os diferentes módulos do

sistema e que se detalham a seguir

1.2.2. Sistema de gestão de Informação

Sistema de gestão de bases de dados e sistema de informação geográfica

O sistema de gestão de informação contém estruturada toda a informação de inventário

relativamente às diferentes áreas de gestão consideradas no sistema. Deve estar associada a

um sistema de informação geográfica que contém, tanto os mapas de ocupação de uso do solo,

como as fotografias aéreas orto-rectificadas e os mapas digitais do terreno.

Page 12: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

12

Repositório deinformação

florestal(Inventário)

Simulador de Alternativasde Gestão

Modelos de Decisão(e.g. Simulated annealing,

SQT,DualPlan)

Definição deRestrições

GIS

Conversor

Informação Visual

Imagens deÁrvores

formato RAWVisualizador 3D

Cobertura florestalMapa Digital do

Terreno

Dados 3D porperíodo

Processadorgeométrico

Figura 1.1. Integração do visualizador num sistema de apoio à decisão em recursos florestais

identificando os diferentes fluxos de informação e dados exteriores

1.2.3. Simulação

O simulador de alternativas de gestão recolhe a informação de inventário proveniente do

Sistema de Gestão de Bases de Dados, bem como dados relevantes originários do sistema de

informação geográfica (SIG) associado. São também componentes do simulador os modelos

de produção a considerar para a as áreas em estudo. Por estes serem extremamente variáveis,

Page 13: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

13

optou-se por considerá-los como componentes externos do simulador em vez de serem parte

integrante do mesmo. A interagir com o simulador temos também as especificações dos

modelos de silvicultura em que se definem as possíveis operações culturais a aplicar a cada

tipo de ocupação. Esta informação pode ser definida interactivamente através de um interface

gráfico, ou para processamento em batch, sob a forma de um ficheiro. O simulador produz

essencialmente 3 tipos de informação:

a) informação relativa à aplicação geral de cada possível alternativa de gestão a cada

povoamento;

b) características de cada intervenção produtiva ao longo do período de simulação para

cada alternativa de gestão aplicada a cada povoamento;

c) informação proveniente da simulação apenas relevante para o visualizador (Falcão

2002)

1.2.4. Modelação da gestão

As diferentes operações geradas por cada alternativa de gestão são armazenadas nos ficheiros

de saída. Apesar de ser possível guardar informação para cada tipo de produto, optou-se por

salvar a totalidade dos volumes como um só (madeira de serração). A valorização de cada

produto é contudo diferenciada. Esta opção foi tomada por duas razões: Em primeiro lugar, os

modelos de decisão correntemente utilizados só estão preparados para lidar com um produto.

Em segundo lugar, devido à reduzida representatividade de cada uma das espécies na área de

gestão considerada, não se justifica a existência de restrições de fluxo de volumes separadas.

Modelos de decisão

A informação produzida pelo simulador serve de entrada para os modelos de decisão

desenvolvidos (Falcão 2001). Estão definidos módulos de importação das matrizes para

modelos de programação linear, programação inteira e várias heurísticas (e.g. algoritmos

genéticos, pesquisa tabu, algoritmos genéticos, relaxação Lagrangeana) aplicadas a diversos

tipos de problemas de gestão florestal (e.g. maximização do valor actual líquido (MVAL),

MVAL com restrições de sustentabilidade de produção de material lenhoso MVAL com

restrições espaciais (e.g. Falcão e Borges 2002). De acordo com o tipo de problema de gestão,

Page 14: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

14

assim variam os requisitos de informação necessários. Em qualquer dos casos, a solução

corresponde a uma associação de uma alternativa de gestão a cada povoamento da área em

análise.

1.2.5. Integração do Visualizador no SAD

Pré-processamento

O programa de pré-processamento fornece a informação suficiente para o visualizador, de

acordo com os resultados provenientes dos modelos de decisão. Esta fase é crítica na

preparação dos dados que vão entrar no simulador. Foram desenvolvidos modelos empíricos

que permitem a tradução das variáveis simuladas em dados para árvores individuais. Estes

modelos não fazem parte directamente do pré-processador, podendo ser substituídos quando

existirem equações melhores. Assim, usa como entrada as tabelas produzidas pelos modelos

de decisão bem como a informação geométrica necessária para a representação de árvores

gerada pelo simulador. O programa processa então, para cada povoamento, qual o conjunto de

intervenções culturais que lhe está associado ao longo do horizonte de planeamento, e

combina esses dados com a informação visual proveniente do simulador. São produzidas

assim tantas tabelas quantos os períodos de simulação no horizonte de planeamento escolhido.

Cada tabela contém uma representação das árvores tipo (templates) para cada povoamento

nesse mesmo período

Visualizador

O Visualizador corresponde ao fim da cadeia, sendo possível para o utilizador definir que

período quer visualizar. O programa constrói em tempo real, os povoamentos virtuais, nos

quais é possível “navegar”. Necessita para o seu funcionamento de informação proveniente do

SIG (mapa de ocupação, modelo digital do terreno e eventualmente a orto-imagem da área de

gestão) bem como de modelos digitais de árvores.

1.3. O problema computacional

A concepção e desenvolvimento de uma ferramenta de visualização de paisagens florestais

não está isenta de desafios computacionais. Estes referem-se essencialmente à complexidade

Page 15: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

15

geométrica inerente a este tipo de cenas. Para tal há dois problemas fundamentais a considerar

na arquitectura de um visualizador de paisagens florestais: O primeiro prende-se com a

capacidade física do equipamento (CPU e hardware gráfico) de representar uma grande

quantidade de polígonos em tempo real. O segundo problema consiste na gestão da memória

RAM disponível. Não é correntemente possível armazenar na memória RAM de um

computador a informação total contida numa paisagem florestal - mesmo com um nível de

detalhe muito reduzido - para a representar em tempo real. Para enquadrar o problema refira-

se uma situação típica de utilização de uma ferramenta como esta: Pretende-se um sistema

capaz de permitir a visualização de uma área com pelo menos 100,000 Ha, com uma

densidade florestal de pelo menos 300 árvores por ha. Isto totaliza 3.0 x 107 árvores, o que

mesmo utilizando uma representação de geometria muito conservadora (dois rectângulos

cruzados) nunca seria inferior a 96 bytes por árvore. Isto totaliza cerca 2.682 GBytes, o que é

incomportável para a esmagadora maioria do hardware existente. Evidentemente que nem

todas as árvores estarão visíveis, podendo estas estar armazenadas em memória não volátil,

sendo carregadas à medida que vão entrando dentro da esfera de visibilidade. Mas mesmo

assim o problema não é de resolução trivial. Se admitirmos um cone de visibilidade com 2.0

km (o que é um valor relativamente conservador), poderemos estar a contar com cerca de

60,000 árvores a representar em cada frame. Considerando a mesma geometria simplificada,

necessitamos de enviar cerca de 480,000 vértices por frame para o pipeline gráfico, o que é

um valor considerável mesmo para o hardware actualmente disponível. De notar ainda que

estes valores são médios; situações com uma densidade de coberto florestal mais intenso

devem ser previstas pois certamente irão ocorrer. Na prática observam-se densidades

geométricas até 4 ou 5 vezes superiores a estes valores de referência. Assim é necessário

encontrar estratégias que permitam sintetizar, agrupar e reduzir a informação existente por

forma a que seja possível a que um sistema como o idealizado possa correr com um

desempenho e qualidade suficientemente bons para poderem funcionar como ferramentas

activas no suporte à decisão em gestão florestal.

1.5. Organização do trabalho

Em primeiro lugar (Capítulo 2) descrevem-se todos os procedimentos de processamento de

informação. Resume-se uma arquitectura de um sistema de apoio à decisão em recursos

naturais e o enquadramento do visualizador no sistema. Detalham-se os procedimentos de

Page 16: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

16

tratamento de informação pictográfica e geométrica para as árvores e para o terreno. Nesta

última parte do processamento da informação, é descrito com algum cuidado o processamento

da informação poligonal que constitui a cobertura de fotointerpretação, nomeadamente os

procedimentos de triangulação da sua geometria. A segunda parte (Capítulo 3) consiste na

descrição detalhada das duas abordagens testadas no desenvolvimento do visualizador. São

descritas as técnicas de representação visual da informação e os mecanismos incorporados

para lidar com a complexidade da geometria. Finalmente (Capítulo 4) descrevem-se os

resultados da aplicação das duas ferramentas para duas situações distintas. A primeira, para o

Perímetro Florestal do Cantão das Hortas na serra da Lousã, uma área com 460 ha de

ocupação florestal e a segunda cobrindo uma parte significativa do barlavento Algarvio e da

Serra de Monchique, abrangendo cerca de 100,000 ha e são examinados os resultados ao nível

do desempenho e qualidade visual das paisagens produzidas

Dada a natureza do trabalho realizado não é possível dar o mesmo nível de detalhe a todas as

fases que envolveram a sua realização. Com efeito, certas partes foram mais críticas do que

outras e apresentam alguma novidade, enquanto outras, apesar de igualmente importantes, são

referidas apenas de passagem. Adoptou-se como critério de relevo a relativa novidade dos

métodos empregues para a resolução de problemas específicos. Como exemplo de secções

detalhadas, temos os procedimentos de triangulação e processamento espacial da geometria

do terreno. Esta fase envolveu o desenvolvimento e implementação de vários algoritmos que

se achou importante serem descritas na íntegra. Áreas que foram abordadas com menos

detalhe citam-se por exemplo os procedimentos de inicialização e representação da

informação geográfica usando o OpenGL/GLUT, uma vez que esta é uma informação de uso

bastante geral não havendo praticamente novidade nenhuma nos procedimentos utilizados.

Page 17: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

17

2. PROCESSAMENTO DA INFORMAÇÃO

2.1. Informação florestal

Idealmente, um visualizador de paisagens florestais teria informação quantitativa de todas as

características do terreno e de todas as árvores existentes. Teria ainda o poder computacional

necessário para mostrar toda essa informação permitindo a interactividade do sistema.

Contudo, a natureza da informação florestal, pela sua grande quantidade e diversidade não

permite chegar directamente a esse objectivo. Logo no processo de recolha de informação de

campo (inventário florestal) apenas uma pequena proporção das árvores é medida,

recolhendo-se apenas, na maioria dos casos, o diâmetro à altura do peito, medindo-se a altura

apenas em certas árvores. A informação disponível é geralmente muito reduzida para poder

representar uma paisagem florestal sem se recorrer a alguma generalização. O problema é

ainda agravado pelo facto do objectivo final do trabalho ser a previsão de como será a

ocupação florestal no futuro, de acordo com um determinado plano de gestão. Uma vez que a

informação é mais difícil de obter, sendo conseguida com um maior nível de incerteza

derivada do uso de modelos estatísticos de crescimento das espécies florestais. Isto porque

este tipo de modelos são geralmente modelos de povoamento. Estes simulam a evolução de

variáveis agregadas como a altura dominante, a área basal e o número de árvores. Estas

variáveis, se bem que úteis para a gestão, são de utilidade limitada para um simulador em que

é necessário identificar e representar com o maior realismo possível todas as árvores. Assim, a

tradução da informação agregada, proveniente da aplicação de modelos de crescimento com

base em variáveis do povoamento, para árvores tipo susceptíveis de uma identificação

espacial, foi o primeiro problema a resolver. Para tal utilizou-se a metodologia detalhada em

Falcão (2002) e Falcão (2003). A essência do método proposto consiste em recriar com uma

base estatística as árvores tipo dos povoamentos. Por exemplo, para conhecer a altura das

árvores a representar, usa-se como valor máximo a altura dominante (altura das 100 árvores

mais grossas por hectare em um povoamento florestal) e aplica-se uma exponencial negativa

como função de probabilidade. Para a determinação do diâmetro das copas, relaciona-se o

Page 18: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

18

grau de ocupação (percentagem de área de solo coberta usando uma projecção directa das

copas das árvores sobre o solo) com o número de árvores. Assim, por exemplo, sabendo que

um povoamento tem um grau de ocupação de 90 % e 650 árvores por ha, o valor central da

área de copa é cerca de 13.8 m2, o que corresponde a um raio de copa de 2.1 m. A este valor

aplica-se uma distribuição simétrica (normal ou triangular) para procurar derivar árvores tipo

deste povoamento. Desconhecemos, no momento presente, outros estudos que permitam

recriar povoamentos com base em variáveis agregadas de povoamento. Caso estes modelos

existam, poderão naturalmente ser incorporados no sistema de pré-processamento.

2.2. Representação geométrica das árvores

2.2.1. Métodos de representação geométrica

Devido à sua forma irregular e com diferentes componentes separáveis e facilmente

identificáveis (tronco, ramos, folhas, etc.), a representação geométrica de árvores não é de

resolução fácil (Meyer 2001). Assim, uma representação geométrica simples, sem envolver

um grande detalhe, pode facilmente chegar aos 2,000 polígonos. Certos programas que fazem

modelação detalhada de árvores podem facilmente representar estruturas com 200,000

polígonos. A utilização de um nível de detalhe dessa grandeza, numa ferramenta de

visualização interactiva só é justificável para áreas relativamente reduzidas, ou mesmo

quando se queira representar realisticamente uma árvore.

Meyer (2001) desenvolveu um método de representação de árvores onde conseguia incorporar

diferentes níveis de detalhe e informação relativa ao ensombramento para diferentes

condições de iluminação. Contudo, o desempenho conseguido apenas justifica essa

abordagem para áreas pequenas. Este autor refere que, com o hardware disponível, conseguiu

7-20 imagens por segundo representando um terreno com cerca de 1000 árvores. Se bem que

os resultados gráficos obtidos tenham uma qualidade muito elevada, não são prontamente

utilizáveis no âmbito do corrente trabalho. A meta proposta de horizontes visuais de 2 km

pode proporcionar uma área visível de 200 ha, o que corresponderá em média a 400,000

árvores em áreas com uma florestação intensa. Desta forma, pensaram-se como métodos de

representação as formas mais simples possíveis. De todas a mais simples é a utilização de um

Page 19: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

19

billboard (rectangular ou triangular), texturado com a imagem de uma árvore, usando um

canal alpha para garantir a transparência. Conseguir-se-ia um efeito realista eliminando a

sensação de bidimensionalidade, rodando cada billboard de forma a estar sempre de frente

para o observador. Esta técnica tem, apesar da aparente simplicidade, dois problemas. Em

primeiro lugar, quando o observador se situe num lugar elevado, vai aparentar que as árvores

estão “deitadas”, o que destrói a ilusão criada. A opção de fazer apenas uma rotação do

ângulo azimutal, colmata essa dificuldade mas torna demasiado aparente a

bidimensionalidade da representação. O segundo inconveniente no uso desta metodologia é a

obrigação da rotação individual de cada árvore, o que coloca uma sobrecarga considerável no

processamento da geometria.

Deste modo, foi escolhida para este trabalho, uma abordagem clássica para objectos com

simetria num dos eixos. São assim usados dois rectângulos entrecruzados (figura 2.1.) aos

quais é, à semelhança dos billboards, aplicada uma textura com um canal alpha, para garantir

a transparência. O resultado é, na generalidade dos casos, satisfatório, havendo naturalmente

situações em que a excessiva simplificação geométrica é aparente. Por exemplo, quando o

observador está demasiado próximo das árvores, como no interior de um povoamento, é

numerosas vezes evidente o delineamento da geometria. Quando, por outro lado, o

observador se encontra quase na vertical, é muito aparente a representação escolhida, sendo

por vezes notório o aparecimento da projecção horizontal da representação escolhida sob a

forma de “cruzes”, mostrando que as copas não têm profundidade. Apesar destes

inconvenientes, considerou-se que esta abordagem seria a mais favorável, sendo os benefícios

ganhos comparativamente superiores aos inconvenientes suportados.

As árvores tipo de cada povoamento ficam representadas na memória do computador, sendo

cada elemento composto por 3 atributos, de acordo com o exposto anteriormente: a) altura; b)

diâmetro da copa; c) espécie. A altura e o diâmetro da copa definem a forma da árvore e

dependem das características do povoamento em que estão inseridas. A espécie é utilizada no

programa para seleccionar a textura que lhe é aplicada. De notar que é possível ter mais do

que uma textura (leia-se forma de árvore) para cada espécie.

Page 20: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

20

Figura 2.1. Modelo simplificado de árvore com dois rectângulos entrecruzados

2.2.2. Texturação da geometria

Numa primeira fase do trabalho procurou-se obter informação factual das imagens no campo.

Para isso procedeu-se a uma recolha fotográfica dos diferentes tipos de árvores existentes.

Este esforço não teve grande sucesso devido a vários factores. Em primeiro lugar pretendiam-

se imagens de árvores inseridas em povoamentos. Estas são particularmente difíceis de

fotografar, dado que é complicado ter ângulo de visão que permita enquadrá-las sem que

fiquem obstruídas por outras. O segundo aspecto é o problema dos erros de paralaxe, difíceis

de eliminar sem equipamento especializado. O terceiro factor envolve as condições de

iluminação deficiente na altura da captura das imagens. É particularmente difícil, a não ser

com iluminação artificial, fotografar uma árvore captando toda a sua gama cromática. Os

problemas são ainda significativamente agravados no caso de fotografias contra o

horizonte/céu, em que a iluminação difusa ultrapassa largamente a luminosidade reflectida

pelo tronco e folhas. Este efeito faz com que as fotografias fiquem excessivamente escuras ou

percam resolução cromática no processo de tratamento.

Desta forma, recorreu-se, na realização do primeiro protótipo, à utilização de desenhos de

árvores que retinham as principais características das espécies encontradas na área de estudo.

Essas imagens foram digitalizadas, tratadas e processadas para serem incluídas no

visualizador. Assim, na primeira versão do visualizador ficaram presentes as seguintes

Page 21: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

21

espécies: Eucalyptus globulus Labill, Pinus pinaster Ait, Castanea Sativa L.,Quercus robur

L., Quercus rubra L., Betula pubescens L. Verificou-se que imagens artificiais podem

funcionar, dado que a percepção do utilizador não foca geralmente uma árvore em particular

mas sim o povoamento e o seu enquadramento na paisagem em que se insere. As imagens

artificiais usadas são suficientemente simples para não distrair o observador com algum

defeito particular, conseguindo, apesar de tudo, comunicar as características estéticas mais

importantes da espécie

2.2.3. Modelação das árvores

É então apenas necessário uma imagem por espécie devido ao esquema de representação

geométrica escolhido. Na primeira fase da realização deste trabalho utilizaram-se imagens do

domínio público recolhidas da Internet ou provenientes de ilustrações de livros (e.g.

Humphries et al 2001). Contudo, a necessidade de obter modelos pictográficos com maior

qualidade levou à utilização do pacote comercial OnyxTree (www.onyxtree.com). Este

software permite a modelação de árvores por meio das suas características biométricas. Além

de conter uma biblioteca extensa de árvores já previamente parametrizadas, permite a sua

fácil adaptação para quaisquer tipos de condições. No nosso caso utilizaram-se os módulos

OnyxTree Broadleaf e OnyxTree Conifer. A criação de imagens para utilizar no visualizador

fica facilitada dada a possibilidade de exportação de imagens directamente com o canal de

transparência incorporado.

2.3. Representação textural do terreno

A representação do terreno e das suas características fisiográficas é também um problema

importante a considerar. A informação referente à altimetria está geralmente disponível e é de

fácil acesso. É necessária ainda informação com a delimitação dos povoamentos sobre o

terreno, frequentemente realizada por fotointerpretação ou marcação directa por GPS. Estas

duas componentes são fundamentais para o desenvolvimento de um visualizador.

Page 22: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

22

Um terceiro aspecto que não deve ser descurado é a informação relativa às características

humanas que pertencem às áreas a visualizar. Estas garantem o reconhecimento da área pelos

utilizadores finais do sistema e um sistema básico de orientação. Este tipo de informação não

é frequentemente representada no SIG subjacente, não passando consequentemente para o

visualizador (além de que são muitas vezes inalteráveis ao logo do tempo). Funcionam assim

como verdadeiros pontos de referência. Outra questão directamente relacionada com esta é o

problema da representação do solo. Se é possível colocar árvores sobre polígonos que indicam

os tipos de cobertura sobre o terreno com a altimetria apropriada, como representar a

superfície sobre a qual as árvores estão colocadas?

Uma abordagem possível para a resolução destas duas questões é a utilização da fotografia

aérea mapeada sobre o modelo digital do terreno (DTM). Esta solução permite a manutenção

de grande parte da componente humana da paisagem, como estradas, caminhos ou povoações

(dependendo da escala a que tiverem sido realizadas), garantindo ainda uma aparência realista

para a superfície do terreno. A utilização de imagens provenientes de detecção remota pode,

apesar de tudo, colocar alguns problemas. Em primeiro lugar problemas de desempenho, dado

este tipo de imagens serem geralmente demasiado grandes para permitirem uma representação

rápida e eficiente num sistema de visualização em tempo real. Esse facto obriga a que as

imagens sejam reduzidas com natural perda de detalhe. Outro problema é o facto das

fotografias aéreas ou imagens de satélite a utilizar reflectirem apenas o terreno visto de cima.

Se essa característica pode não ter grande impacto, quando se pretenda uma análise da

paisagem florestal no momento presente, a sua utilização para momentos futuros em que se

estejam a analisar paisagens prospectivas, pode produzir alguns resultados pouco realistas.

Por exemplo, uma situação possível é a existência de um povoamento cortado na sua

totalidade (e portanto sem qualquer árvore) mas que ao invés do utilizador ter a percepção do

solo nu, vê projectado no terreno copas frondosas de um povoamento que já não existe.

Uma outra abordagem que procura colmatar esses problemas tem como objectivo a recriação

da superfície do terreno com base na informação recolhida no processo de fotointerpretação.

Ao invés de sobrepor imagens que reflectem o terreno num determinado período no tempo,

definem-se texturas tipo que são aplicadas ao modelo digital do terreno de acordo com as

características do coberto. Esta metodologia tem como vantagem óbvia ser possível

representar o solo nu quando não existam árvores, permitindo ainda a existência de um muito

Page 23: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

23

maior detalhe na representação do solo. Tem também geralmente uma presença em memória

muito mais reduzida, uma vez que, ao invés de grandes imagens para cobrir o terreno todo, é

suficiente a existência de pequenos fragmentos que sejam representativos de um determinado

tipo de solo ou coberto herbáceo. Tem, no entanto, dois grandes inconvenientes. Em primeiro

lugar obriga a um processamento muito mais detalhado da geometria que caracteriza o terreno

e a sua ocupação, uma vez que é conveniente que uma textura circunde completamente cada

povoamento ou tipo de ocupação. Em segundo lugar, obriga a que as características humanas

da paisagem que podem servir como pontos de orientação estejam correctamente identificadas

no SIG, o que geralmente não acontece. O emprego deste método sem essa identificação é

possível, mas os utilizadores têm mais dificuldade em situar a informação visual que lhes é

fornecida aquando da utilização do sistema.

No desenvolvimento dos sistemas descritos neste trabalho testaram-se as duas metodologias.

Na primeira abordagem representou-se a superfície do terreno conforme vista de cima, por

intermédio do uso de uma fotografia aérea. Na segunda versão do programa utilizou-se o

segundo método apresentado os diferentes tipos de solo e coberto como diferentes texturas

sobrepostos posteriormente sobre o modelo altimétrico do terreno.

2.3.1. Tratamento da fotografia aérea

No momento presente utilizaram-se as fotografias aéreas do voo de 1995 realizado pela

CELPA/CNIG, recolhidas usando filme de infravermelhos. Este tipo de película ignora o

canal azul, mas apanha informação na banda dos infravermelhos, que são invisíveis ao olho

humano. Estas imagens, apesar de ser ideais para a fotointerpretação de cobertos vegetais,

tornam a informação correspondente de difícil percepção pelos utilizadores do sistema. Foi

assim aplicada uma correcção espectral nas imagens, eliminando o canal infravermelho,

substituindo o canal verde pelo canal azul e o canal vermelho pelo canal verde. Dado o facto

de, na generalidade das fotografias, o canal azul estar geralmente muito correlacionado com o

verde. Utilizou-se a seguinte técnica para sintetizar artificial o primeiro. Fez-se uma cópia do

canal Verde que foi posteriormente escurecida e incluída como canal Azul. Apesar das

imagens resultantes serem na verdade representações em falsa-cor (têm apenas 2 canais

Page 24: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

24

distintos) os resultados são suficientemente realistas quando comparados com as imagens

originais (Figura 2.2.)

Figura 2.2. Detalhe de fotografia aérea (voo da CELPA/CNIG -1995) antes (esquerda) e

depois (direita) da correcção espectrométrica efectuada

2.3.2. Texturas individuais de sol

A utilização de texturas individuais para cada tipo de solo ou ocupação foi utilizada na

segunda versão do visualizador. Essencialmente recolheram-se e processaram-se imagens de

solo nu, sem qualquer tipo de cobertura acima dos 30 cm, para preservar a ilusão da vegetação

rasteira. As texturas utilizadas tem uma resolução de 256 x 256, o que corresponde a um pixel

por cada 11.7 cm, ou seja 0.0137 m2, o que, sem ter uma grande precisão na observação no

interior de um povoamento, é suficientemente precisa para dar ao utilizador uma ilusão de

realidade. Esta escala é também compatível com a escala utilizada para a representação das

árvores.

2.3. Geometria da Informação geográfica

De acordo com o tipo de representação de terreno escolhida assim é necessário realizar a

decomposição da geometria da informação geográfica. A utilização da fotografia aérea usada

na primeira versão do programa não obriga a um grande detalhe da decomposição do espaço,

Page 25: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

25

tendo-se optado pela transformação da altimetria em uma grelha de pontos com uma malha

fixa. A segunda versão do programa utilizou uma representação detalhada da geometria da

cobertura geográfica, para a utilização de texturas individuais de solo, o que obrigou a um

maior detalhe no processamento espacial. Deste modo, o tratamento da altimetria foi realizado

juntamente com a decomposição espacial da cobertura produzida pela fotointerpretação. Este

processamento revelou-se de alguma complexidade e é descrito com algum detalhe, dada a

morosidade dos procedimentos efectuados. Assim, após a leitura da informação vectorial

proveniente do sistema de informação geográfica (ArcGIS/ArcView), os passos efectuados

foram:

a) triangulação dos polígonos que constituem a cobertura;

b) interpolação com o DTM para determinação da altimetria de cada vértice;

c) divisão dos triângulos produzidos de acordo com células de visibilidade;

d) tratamento da informação resultante para cálculo das normais de cada vértice.

Nas secções seguintes são detalhados os procedimentos que condicionaram o processamento

da informação espacial usada nas duas abordagens seguidas. Em primeiro lugar detalha-se o

método de decomposição da informação espacial em células e as razões da sua utilização.

Posteriormente ilustram-se as diferentes fases enumeradas referentes à decomposição

geométrica da cobertura de fotointerpretação, referindo desde os algoritmos de triangulação à

metodologia utilizada para o processamento das normais.

2.3.1. Decomposição da informação em células

A representação de terreno com modelos digitais usa tradicionalmente uma grelha de

altitudes. A cada vértice da grelha corresponde um valor de altimetria. Este tipo de

representação permite a utilização de níveis de detalhe variáveis como foi descrito por vários

autores (e.g., Lindstrom et al. (1986), Röttger et al. (1998)). O método proposto por Velho e

Gomes (2000) é uma abordagem também promissora, interpretando a grelha do terreno como

uma malha regular 4-8 de resolução variável. Este tipo de estrutura permite a utilização de

operações de nível de detalhe, que permitem reduzir a complexidade geométrica de

superfícies extensas. Contudo, todos estes métodos se baseiam na premissa que o objectivo é

a minimização da submissão do número de polígonos que constituem a grelha a representar.

Page 26: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

26

No caso presente, esse não é claramente o factor mais importante. O número de árvores

presentes na cena é uma a duas ordens de magnitude superior ao número de polígonos que

constituem a superfície onde estão inseridas. Seriam necessários algoritmos que incluíssem

componentes externas à grelha de terreno na utilização de níveis de detalhe variáveis. No

momento presente não conhecemos algoritmos que permitam a resolução deste problema a

executar em tempo real.

O problema é tanto mais complexo quanto o facto de não ser facilmente detectável qual o

nível de detalhe que é possível usar para a determinação do número de polígonos necessários.

Algoritmos baseados em distância não funcionam directamente, como podemos verificar

numa situação hipotética. Assim, por exemplo, é concebível que não sejam visíveis as árvores

do interior de um povoamento quando observado a uma determinada distância. No entanto, se

o mesmo estiver a ser observado por outra perspectiva que não a horizontal, ou se este estiver

num declive acentuado, as árvores no seu interior são discerníveis, sendo fundamentais na

composição da paisagem.

2.3.2. Representação e leitura da informação geográ fica vectorial

A utilização de células é uma redução para primitivas simples da complexidade inerente da

diversidade espacial. Uma outra possibilidade é usar a informação poligonal proveniente do

sistema de informação geográfica directamente na representação tridimensional do terreno.

Essa alternativa é exequível, sendo contudo necessário executar vários passos prévios. Em

primeiro lugar, não é possível representar directamente um polígono simples no hardware. É

necessário inicialmente realizar uma decomposição triangular para então posteriormente

efectuar essa representação. Em segundo lugar, numa cobertura típica de um SIG, os vértices

que constituem os polígonos não têm associados a si valores de altimetria. Deste modo, para a

utilização deste tipo de informação são necessários vários passos iniciais de pré-

processamento.

O sistema ArcGIS/ArcView (ESRI) utiliza um formato proprietário para armazenar a

estrutura vectorial das coberturas geográficas. Tem contudo a possibilidade de exportar para

Page 27: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

27

um formato aberto (Shape), desenvolvido pela própria ESRI (1997), suficientemente genérico

para poder receber um largo espectro de tipos de dados geográficos. Apesar de abrangente,

este formato não conserva a topologia dos polígonos e, é de tal forma flexível, que comporta a

possibilidade de armazenar informação estruturalmente incorrecta, muitas vezes é gerada pelo

próprio sistema.

Para a leitura da informação geográfica proveniente deste SIG, foi programado um módulo

que lê e decompõe nas suas componentes essenciais a informação contida nestes ficheiros.

Essa informação é posteriormente tratada, interpolada e decomposta em triângulos, por

módulos subsequentes do sistema que são descritos nas secções seguintes.

2.3.3. Intersecção de polígonos

A intersecção dos polígonos que definem a ocupação do terreno com a malha correspondente

à altimetria é um processo fundamental no tratamento preliminar da informação geográfica.

Isto porque, se é possível determinar as altitudes de cada ponto que constitui cada polígono, é

necessário também introduzir a informação referente ao interior desses mesmos polígonos. de

Berg et al (2000) refere um procedimento simples de intersecção de polígonos que funciona

em O(n.log n), em que n representa o número de arestas presente nas duas coberturas a

sobrepor. Este algoritmo não foi contudo implementado directamente uma vez que o software

de processamento de informação geográfica ArcView o realizava de uma forma eficiente.

De acordo com ESRI (1997), um polígono no formato Shape é descrito por diversas partes, ou

anéis. A ideia subjacente é permitir a existência com polígonos com buracos ou ilhas. Os

buracos diferenciam-se dos limites externos pela orientação dos vértices que os constituem.

Um polígono externo tem os pontos definidos no sentido horário, e uma ilha tem os seus

pontos enumerados no sentido inverso. Não há na especificação nenhum mecanismo que

garanta que um polígono só possa ser definido por um e um só anel externo e n-1 anéis

internos. Este facto propicia a que vários procedimentos do ArcView (nomeadamente a

intersecção de polígonos) conduzam ao aparecimento de polígonos com vários anéis externos

totalmente disjuntos. Esta anomalia, se não correctamente solucionada, cria numerosos

problemas de vária ordem no processamento de informação geográfica, uma vez que são

Page 28: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

28

considerados como o mesmo polígono áreas distintas, por vezes muito distantes entre si.

Devido à irregularidade topológica destes “polígonos”, os algoritmos de triangulação

desenvolvidos também não funcionam, sendo necessária a sua correcção.

O resultado da intersecção das duas coberturas e respectiva resolução dos problemas

topológicos criados, produz o conjunto de ficheiros sobre o qual se vai realizar todo o pré-

processamento da informação, externamente ao SIG.

2.3.4. Interpolação altimétrica dos vértices

A operação de interpolação tem de ser efectuada por um módulo do programa de pré-

processamento e não podem ser utilizadas as ferramentas específicas de que o sistema

ArcGIS/ArcView dispõe. Com efeito, verificou-se que, para situações geométricas complexas

(como é o caso da área de teste B), o ArcView não consegue realizar a interpolação

altimétrica. De qualquer modo, o procedimento de interpolação altimétrica dos vértices com a

grelha de altimetrias é um processo simples de interpolação linear a duas dimensões que pode

ser resolvido usando o seguinte conjunto de equações:

zz

za PP

PzR

01

0

−−

= , zz

zb PP

PzR

02

0

−−

= (1)

( )xxaxa PPRPX .0.1.0 −+= , ( )xxbxb PPRPX .0.2.0 −+= (2)

( )yyaya PPRPY .0.1.0 −+= , ( )yybyb PPRPY .0.2.0 −+= (3)

( )( )( )ab

abaa XX

YYXxYy

−−−

+= (4)

em que:

(x, z) são as coordenadas no plano horizontal do ponto a interpolar

P0, P1 e P2 correspondem aos vértices do triângulo em que o ponto está inserido

y corresponde ao valor final interpolado do ponto (x, z)

Estas expressões foram posteriormente usadas nos programas de visualização para determinar

as posições das árvores sobre o terreno. No caso da interpolação de vértices da cobertura de

Page 29: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

29

fotointerpretação, os pontos P0, P1 e P2 correspondem a vértices da grelha com as altimetrias e

situam-se a distâncias fixas e predefinidas, o que permite simplificar largamente as equações

usadas.

2.3.5. Triangulação

2.3.5.1. O problema computacional

Tendo determinado as altitudes de todos os pontos que constituem a malha do terreno

procede-se á triangulação dos polígonos resultantes. Esta operação reveste-se de particular

complexidade e requer uma abordagem mais aprofundada. Com efeito, a triangulação de

polígonos é um dos algoritmos fundamentais em geometria computacional (de Berg et al

2000), tendo uma grande variedade de aplicações. Distinguem-se na literatura vários tipos de

polígonos que podem ser caracterizados da seguinte forma:

Polígonos complexos - são entidades geométricas constituídas por um conjunto de pontos, em

que cada ponto se une a dois outros. Este tipo de polígonos pode ser auto intersectado

(Figura 2.3.a)

Polígonos simples - Semelhantes aos polígonos complexos, contudo nenhuma aresta

intersecta qualquer outra que pertença ao mesmo polígono (Figura 2.3.b)

Polígonos simples com buracos (ilhas) - Semelhantes aos polígonos simples, mas podem ser

constituídos por mais do que uma cadeia de vértices (Figura 2.3.c).

Polígonos monotónicos. São polígonos simples sem buracos, com a particularidade de que,

para uma determinada direcção definida por uma recta, esta (ou qualquer recta que lhe

seja paralela), não intersecta o polígono em mais do que dois pontos em mais do que

dois pontos. No exemplo (Figura 2.3.d), o poligono é monotónico em x: qualquer recta

perpendicular ao eixo das abcissas intersecta o polígono em apenas dois pontos.

Polígonos convexos - Polígonos monotónicos com a característica de ser possível unir dois

pontos quaisquer no interior ou periferia do mesmo sem intersectar qualquer aresta do

perímetro. Pela sua própria definição, estes polígonos são trianguláveis com um

algoritmo trivial, uma vez que de qualquer vértice é possível definir um triângulo com

qualquer outro vértice (Figura 2.3.e).

Page 30: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

30

a) b) c)

d) e) Figura 2.3. Tipos de Polígonos

Garey et al. (1978) foram os primeiros a romper a limitação dos algoritmos tradicionais que

permitiam triangulações em O(n2), propondo o primeiro algoritmo a correr em O(n.log n),

através de um algoritmo de decomposição em polígonos monotónicos simples. Tor e

Middletich (1984) usam um métodos derivado de superfícies convexas que também corre em

O(n.log n). Tarjan e Van Wyck (1988) desenvolveram um métodos que usa estruturas de

dados complexas e um procedimento elaborado mas que tem uma complexidade de O(n. log

log n). Essa meta foi também alcançada por Kirkpatrick et al. (1990), que desenvolveu um

algoritmo que, apesar de usar uma estrutura de dados muito simples, se reveste de alguma

complexidade na sua implementação. Toussaint (1991) desenvolveu um algoritmo que

triangula polígonos simples e corre em tempo O(n(1+t0)) em que t0 é uma medida da

complexidade da triangulação do polígono: representa o número de triângulos que não

partilham quaisquer arestas com o polígono original. Este algoritmo, apesar de para muitos

casos correr em tempo linear, para casos difíceis aproxima-se de O(n2). Seidel (1991)

desenvolveu um método de decomposição trapezoidal, de complexidade O(n.log n). É um dos

métodos mais robustos de triangulação de polígonos simples, e dos que tem conhecido maior

número de implementações. Chazelle (1990) provou que polígonos simples podem ser

triangulados com um algoritmo de complexidade linear, no entanto a sua implementação não

é trivial, servindo essencialmente como exemplo académico. Narkhede e Manocha (1995)

implementaram o algoritmo de Seidel, tornando-o mais eficiente e incorporando métodos

capazes de lidarem com ilhas. Held (2001) desenvolveu um conjunto de heurísticas que

permitem triangular vários tipos de polígonos, inclusivamente polígonos complexos, com

Page 31: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

31

intersecções e sobreposições. É um dos algoritmos com maior robustez, face à qualidade da

informação, podendo lidar com uma grande variedade de situações topológicas.

Apesar da existência de todos estes algoritmos, nenhum se mostrou particularmente elegante

ou fácil de implementar, apesar de vários métodos advogarem essa simplicidade. Os

algoritmos implementados disponíveis usavam, na sua esmagadora maioria, o método

proposto por Seidel (1991) ou variações do mesmo (e.g. Narkhede e Manocha (1995)). Estes

algoritmos são geralmente divididos em duas fases. Em primeiro lugar, decompõem um

polígono simples em polígonos monotónicos e posteriormente realizam a triangulação destas

componentes. Esta segunda fase pode ser realizada em O(n) por uma variedade de métodos

(e.g, de Berg et al 2000). A parte geralmente mais complexa é o processo de divisão em sub-

componentes monotónicas, onde a generalidade dos autores refere complexidades de O(n.log

n). A falta de um algoritmo simples realizável numa só fase foi a base que impulsionou o

desenvolvimento que se detalha a seguir.

2.3.5.2. Estrutura de dados

A estrutura de dados utilizada para todos os procedimentos de triangulação descritos foi uma

lista com dupla ligação (Doubly linked list). Este tipo de estruturas é corrente em

processamento de informação geométrica (e.g. de Berg et al. 2000). Cada elemento deste tipo

de listas corresponde a um vértice, contendo as suas coordenadas espaciais e ainda dois

apontadores, um para o vértice que antecede o vértice na cadeia que define o polígono

(Vert_ant), e outro para o vértice que o sucede (vert_seg) (figura 2.3.).

+Coord_x : float+Coord_Y : float+Coord_Z : float+Vert_ant : Vertex+Vert_seg : Vertex

Vertex

Figura 2.3. Representação UML da estrutura de dados que define um vértice

O último vértice na lista aponta para o primeiro para manter a cadeia fechada. Para facilitar o

processamento geométrico, as cadeias poligonais, representadas desta forma, são geralmente

orientadas no sentido horário. Ou seja, se um observador imaginário estivesse num ponto

Page 32: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

32

qualquer da cadeia e seguisse em direcção ao vértice seguinte (v_seg) o interior do polígono

estaria sempre situado do seu lado direito. A única excepção a esta regra é a presença de

buracos no interior dos polígonos. Estes são representados também por cadeias duplamente

ligadas, mas estão então orientadas no sentido anti-horário. Esta particularidade propicia que

o interior do polígono se situe sempre à direita, independentemente do anel que o define

(Figura 2.4.).

Figura 2.4. - Representação da ordenação de vértices para um polígono com uma ilha

2.3.5.3. Triangulação de polígonos simples

Na abordagem deste problema desenvolveu-se um algoritmo que é uma adaptação do método

descrito por de Berg et al. (2000) Este procedimento permite triangular todos os polígonos

simples que não apresentem buracos. Pode também obviamente ser utilizado para polígonos

monotónicos. No entanto, quando esteja à partida determinado que o polígono em questão é

monotónico a maior complexidade deste algoritmo não o torna adequado.

Algoritmo Triangulação

1. Criar uma pilha sem nenhum elemento

2. Ordenar todos os vértices de acordo com a sua coordenada no eixo dos Xs

3. Iniciando pelo vértice mais à esquerda (V), inserir o vértice anterior na pilha (Va),

inserindo em seguida V

4. Determinar o próximo vértice, que corresponde ao vértice seguinte do elemento

colocado no topo da pilha (V = Vs). Se não houver mais vértices para processar,

termina o programa

5. Verificar se é possível fazer um triângulo entre este elemento e os dois últimos

elementos da pilha

Page 33: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

33

6. Pode não ser possível devido ao ângulo formado. Se isso sucede, acrescenta-se V à

pilha e regressa-se a 3

7. Se o ângulo formado é possível, verificar se algum dos vértices ainda não inserido se

encontra no interior do triângulo considerado. Se sim, acrescenta V À pilha e continua

em 3.

8. Se o ângulo formado é possível e não há pontos dentro do triângulo, Fazer um

triângulo com os dois últimos elementos a entrar na pilha e remover da mesma o

elemento que está no topo. Continua em 4.

O passo crítico neste algoritmo é o ponto 7, onde se verifica se é possível fazer um triângulo

com os dois elementos do topo da pilha e o novo vértice ainda não inserido. Há 3 situações

que podem acontecer:

a) a pilha contém apenas um elemento.

Se por acaso a remoção de elementos na pilha condicionou a que apenas o primeiro vértice

que entrou esteja presente na lista, então o programa segue o curso normal e o vértice em teste

é inserido na lista. Este tipo de situações é muito comum no decorrer do processo, sendo esta

a única condição verificada no caso de triangulações de polígonos convexos. A sua

complexidade é naturalmente O(1), não tendo impacte no desempenho do algoritmo

b) o triângulo formado sai fora do polígono.

Este tipo de teste é também de verificação simples, sendo apenas necessário o cálculo da

seguinte equação:

( )( ) ( )( )111111 −+−−+− −−−−−= iiiiiiii yyxxxxyyr (5)

Uma vez que, por definição, os segmentos que constituem o polígono estão orientados no

sentido dos ponteiros do relógio, mantendo o interior do polígono à direita, esta quantidade

indica se o segmento que une vi-1 a vi+1 se situa para dentro (r >0 ) ou para fora do polígono

(r<0). Este procedimento é naturalmente de complexidade uniforme.

Page 34: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

34

c) Existe pelo menos um vértice do polígono que, caso esse triângulo fosse formado, se

situaria no seu interior

Esta é a situação mais difícil de resolver, pois é necessário detectar se há algum vértice ainda

não removido do polígono que se situe no seu interior. O teste em si é relativamente simples

de efectuar, sendo suficiente determinar as seguintes grandezas:

( )( ) ( )( )1211211 yyxxxxyyr −−−−−= (6)

( )( ) ( )( )2322322 yyxxxxyyr −−−−−= (7)

( )( ) ( )( )3133133 yyxxxxyyr −−−−−= (8)

Devido à orientação requerida na orientação dos vértices do polígono, se, para qualquer das

quantidades r1, r2 ou r3 o valor for positivo, então o ponto está fora do triângulo. Se, pelo

contrário, todos os valores são negativos, então esse vértice está dentro do triângulo formado

pelos vértices v1, v2 e v3.

O factor que aumenta a complexidade do algoritmo é o facto de, em última análise, ser

necessário testar todos os pontos que ainda não foram eliminados pelo algoritmo. Uma

abordagem de força bruta é trivialmente implementável, bastando para isso testar todos os

vértices ainda no polígono, verificando se há algum que se situe no interior do triângulo em

teste. A complexidade deste algoritmo seria assim de O(n), o que tornaria a complexidade do

algoritmo total potencialmente de O(n2), que seria claramente inferior à grande maioria dos

algoritmos alternativos. Duas estratégias são possíveis para minimizar o tempo de procura. A

primeira baseia-se na constatação do seguinte facto: um vértice que esteja potencialmente no

interior de um triângulo possível, tem que ser côncavo. Denominam-se vértices côncavos

aqueles cujo triângulo realizado entre os seus vértices anterior e seguinte se situa no exterior

do polígono (figura 2.5.). O número de vértices côncavos num polígono, pode variar desde 0

até n-1, contudo na maioria dos casos este tipo de vértices não ocorre com tanta frequência. A

detecção de vértices côncavos é um processo que se faz em O(n), com recurso à equação

referida no ponto b). Para minimizar o tempo de procura, um algoritmo de procura binária

efectuado sobre uma lista ordenada pelas coordenadas, permitirá reduzir o espaço de procura

para log(k) (com k= nº de vértices côncavos). Naturalmente que é possível a ocorrência de

situações patológicas (figura 2.6.) em que o tempo de procura é directamente proporcional ao

Page 35: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

35

número de vértices. Contudo essas situações só ocorrem para um número relativamente

reduzido de vértices. Esse maior número de testes que é efectuado para um vértice é

posteriormente compensado por muito menos testes a realizar nos vértices subsequentes, o

que torna a complexidade real do algoritmo menor do que o esperado. A utilização dos

vértices de concavidade permite ainda uma ramificação trivial do algoritmo. Assim, se esse

número for zero, o polígono é convexo e pode ser triangulado em O(n) pelos algoritmos

conhecidos (de Berg 2000)

Figura 2.5. Exemplo de um vértice concâvo situado em Pj

Este algoritmo não procura gerar triângulos com ângulos mínimos reduzidos, sendo

inclusivamente comuns as situações em que sucedem triângulos degenerados. No entanto, as

decomposições geradas tendem naturalmente a formar leques (triangle fans) que são um dos

tipos de primitivas geométricas mais eficientes para representar por APIs gráficas como o

OpenGL (Woo et al 1999) ou o Direct3D (Kovach, 2000).

Figura 2.6. - Exemplo de um caso "patológico" em que o número de vértices côncavos se

aproxima do número total de vértices

Page 36: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

36

Figura 2.7. Exemplo de polígono a triangular

O algoritmo descrito pode ser ilustrado com recurso a um exemplo simples (Figura 2.7.). O

primeiro elemento a entrar na pilha é V1 ao que se segue V2. O elemento seguinte a V2 é V3,

que permite a realização de um triângulo com V1 e V2, dado o ângulo ser possível e não

existir nenhum vértice do polígono no interior do triângulo realizado entre estes 3 vértices.

Uma vez que este triângulo é possível, retira-se o topo da pilha (V2), escreve-se o primeiro

triângulo (V1,V2 e V3) e une-se V1 a V3. A entrada de V4, não permite a realização de um

triângulo entre este vértice e o par (V1,V3), pelo que se acrescenta à pilha e testa-se o vértice

seguinte (V5). Este também não consegue fazer um triângulo com V4 e V3, pelo que também

se acrescenta à pilha. Nesta fase do algoritmo, a pilha contém os vértices [V1, V3, V4 e V5]. O

próximo elemento a testar é V6, que permite fazer um triângulo (V4, V5, V6), com eliminação

do vértice V5. Seguidamente V6 testa a presença de mais um triângulo com o próximo

elemento da pilha (V3), que mais uma vez é possível, o que resulta na sua eliminação e

definição de mais um triângulo (V3, V4, V6). Uma vez que não é possível definir mais nenhum

triângulo com este vértice, V7 é testado e produz o triângulo (V1, V6, V7), com eliminação de

V6. V8 não permite a definição de nenhum triângulo pelo que entra na pilha. O teste de V9

permite a definição dos dois últimos triângulos (V7, V8, V9) e (V1, V7 e V9) com a eliminação

dos vértices V8 e V7, respectivamente. O resultado final (Figura 2.8.) ilustra o resultado final

da triangulação realizada

Page 37: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

37

Figura 2.8. Resultado final da triangulação do polígono de teste

2.3.5.4. Polígonos simples com ilhas

A ocorrência de polígonos com buracos ou ilhas em sistemas de informação geográfica é

relativamente frequente e o algoritmo geral de triangulação deve contemplar esses casos.

Contudo, devido à obrigação de, neste algoritmo, o aparecimento de um novo vértice ter que

estar ligado ao último vértice que entrou no sistema, não é possível a sua aplicação directa. É,

apesar de tudo, possível definir uma modificação simples que permite que qualquer polígono

com ilhas seja decomposto nos triângulos que o constituem. O procedimento básico consiste

na realização do processo de triangulação anteriormente descrito para o anel exterior do

polígono, contando com os vértices dos anéis interiores na verificação do passo 7. Após a

conclusão desta fase efectua-se a junção dos anéis interiores ao polígono principal. É portanto

necessário introduzir um passo extra que permita ligar um vértice que pertença a qualquer dos

anéis interiores a um outro que pertença ao anel principal. O algoritmo usa um artifício que

não aumenta o número de vértices real, mas assim aparece para o programa. A ideia

subjacente é a união dos anéis interiores ao anel exterior pela criação de dois vértices

auxiliares situados nos pontos de ligação (Figura 2.9). Apesar de desenvolvido

independentemente, este algoritmo foi aplicado com o mesmo objectivo por Held (2001).

Existe uma razão matemática que explica a necessidade de inclusão de novos vértices.

Teoricamente um polígono com n vértices sem buracos é triangulável em n-2 componentes

(de Berg et al. 2000), contudo, a presença de buracos faz com que o número de triângulos seja

2.2 −+= mnt (9)

Page 38: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

38

em que m corresponde ao número de buracos e n ao número total de vértices no polígono

(soma dos anéis interiores e exterior). Para m = 0 - caso de polígonos sem buracos - esta

expressão colapsa na anterior. Desta forma, ao adicionar dois novos vértices para cada anel

anexado à fronteira exterior do polígono, o polígono resultante tem n + 2.m vértices que se

decompõem em 2.2 −+ mn triângulos, conforme esperado.

O algoritmo desenvolvido pode ser então descrito nos seguintes passos:

Algoritmo Triangulação_Com_Ilhas

1. Usando o algoritmo Triangulação, triangular todos os anéis que compôem o

polígono, por forma a eliminar todos os vértices que não são afectados pela existência

de ilhas

2. Para cada anel anterior verificar qual o vértice que se situa mais à esquerda, e ordenar

os anéis de acordo com esse valor

3. Para o vértice (VI) mais à esquerda de cada anel interior, procurar um vértice (VE) no

anel principal que possa ser unido a este de acordo com o seguinte procedimento:

a. Criar VEN e VIN nas mesmas posições de VE e VI, respectivamente

b. VINant = VIant; VINseg = VEN

c. VIant = VE;

d. VENant = VIN; VENseg= VEseg

e. VEseg = VI

4. Triangular o polígono formado e repetir o ponto 3 até não haver mais anéis para

processar.

Na figura 2.10 ilustra-se o procedimento de triangulação de um polígono com 2 buracos.

Inicialmente VE é um vértice que pertence ao anel exterior e VI pertence a um anel interior

(Figura 2.9a). Após o passo 3, são criados 2 novos vértices (VEN e VIN) nas mesmas

posições de VE e VI, mas que contudo aparecem na figura 2.9.b com um deslocamento para

manter a claridade na exposição. Seguidamente são atribuídas as ligações entre os novos

vértices entre si e a estrutura que os envolve

Page 39: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

39

VEN VIN

VE

VI

a) b) Figura 2.9 Processo de fusão de dois anéis por criação de dois vértices auxiliares. a)

situação inicial antes da fusão (VE - vértice pertencente ao anel exterior; VI - Vértice

pertencente ao anel interior); b) situação final em que os dois anéis pertencem ao mesmo

ciclo

A parte crítica deste algoritmo é o ponto 3, onde se tem que encontrar um vértice (VE) do anel

principal que seja possível unir ao vértice situado mais à esquerda (VI) dos anéis interiores.

Uma vez que o anel exterior envolve todos os anéis interiores, escolhendo o vértice mais à

esquerda (ou à direita - o objectivo é encontrar o ponto mais extremo dos anéis que

constituem os buracos), é garantido que tem de haver um vértice exterior que se ligue a este

sem quaisquer intersecções. Contudo a procura deste vértice e detecção de possíveis

intersecções, pode requerer uma busca extensiva que depende directamente do número de

vértices no polígono. Este processo, com uma estrutura de dados adequada, pode ser

conseguido em O(n.log n), contudo a complexidade requerida para essa abordagem não

justifica os ganhos em desempenho para a dimensão dos polígonos considerados. Deste modo

usou-se uma procura sistemática que, no pior caso, corre em tempo O(n2), tendo contudo na

grande parte das situações encontradas uma complexidade próxima de O(n). Na figura 2.10

demostram-se os resultados da triangulação de um polígono com dois anéis interiores. Na

figura 2.10a, ilustra-se o polígono com os anéis separados. Seguidamente (Fig. 2.10b) ilustra-

se o resultado da fusão dos anéis interiores com o anel principal. Finalmente (Fig. 2.10c),

mostra-se o resultado final da triangulação realizada O anel exterior tem 8 vértices e os

interiores têm 3 e 5. Pela aplicação da expressão (9), o número total de triângulos esperados é

de 18 ((8 + 3 + 5) + 2 x 2 - 2), que se confirma pelos resultados obtidos.

VE VI

Page 40: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

40

a) b) c) Figura 2.10 - Decomposição de um polígono com buracos através do algoritmo

Triangulação_Com_Ilhas. a) Polígono antes do processo de triangulação; b) Fusão dos

buracos com o anel principal; c) resultado da triangulação final

2.3.5.5. Triangulação de polígonos monotónicos

Se for conhecido que o polígono é monotónico é possível triangular qualquer poligono em

O(n)(e.g. Seidel 1991, de Berg 2000). Como foi referido, o algoritmo descrito acima para

polígonos simples pode ser modificado para triangulação de polígonos monotónicos

removendo simplesmente o passo 7. de Berg (2000) mostrou que a complexidade deste

algoritmo é de O(n)

2.3.5.6. Considerações finais sobre a metodologia seguida

O algoritmo desenvolvido para triangulação de polígonos simples sem buracos é de extrema

simplicidade, podendo ser implementado com muito poucas linhas de código. O tempo

esperado de execução é de O(n.log n) o que o coloca a par com as implementações mais

utilizadas. Contudo o procedimento utilizado para lidar com buracos não tem a mesma

elegância do programa principal exigindo um tratamento especial. Isto contrasta com o

algoritmo mais implementado de decomposição trapezoidal (Seidel 1991, Narkhede e

Manocha 1995, de Berg et al. 2000) onde o mesmo procedimento pode lidar com buracos sem

nenhum acrescento ao algoritmo.

2.3.6. Intersecção de triângulos com as Células de visibilidade

Page 41: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

41

Os triângulos gerados pela triangulação dos polígonos podem por vezes ser maiores que as

células de visibilidade que constituem a paisagem a visualizar (secção 3.3.1.). Quando sucede

esta situação é fundamental realizar a decomposição desses triângulos por forma a que cada

parte fique no interior de cada célula de visibilidade intersectada. Na maioria dos casos, é um

processo trivial, pois os triângulos são suficientemente pequenos para estarem contidos num

só mosaico. Podem contudo ocorrer casos complexos em que um triângulo intersecte 2 ou

mais mosaicos. Nestes casos, a solução natural consiste em subdividir o triângulo em causa

em 2 ou mais triângulos por forma a que cada um destes componentes caiba inteiramente

numa só célula. O processo apesar de simples pode originar situações complexas de solução

não trivial. Desenvolveu-se portanto um algoritmo que permite resolver de uma forma

genérica este tipo de situações. Consiste numa solução recursiva simples, mas que dá bons

resultados para intersecções com poucos mosaicos. O procedimento seguido pode ser descrito

nos seguintes passos:

Algoritmo Intersecta

1. Verificar se o triângulo (P0, P1, P2) intersecta alguma aresta do mosaico. Se não, sai do

procedimento

2. Caso exista uma ou mais intersecções, selecciona-se uma das arestas do triângulo (e.g.

P0P1) que intersecte uma das arestas do mosaico e determina-se o ponto de

intersecção (Pi)

3. Repete-se recursivamente o algoritmo para os triângulos (P0, Pi, P2) e (P2, Pi, P1)

A determinação da intersecção de um segmento de recta com uma das rectas que compõem a

grelha pode ser determinado usando o método seguinte. Seja a recta que contém o segmento

tipificada por 0=++ CByAx e a recta que contém o segmento que queremos verificar da

grelha definida por 0''' =++ CyBxA , o ponto de intersecção desta duas componentes é dado

por:

BAAB

ACCAy

''

''

−−= ,

A

Cyx

−= (10)

Page 42: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

42

Para determinar se o ponto calculado pertence ao segmento [(x1, y1), (x2, y2)], é suficiente

calcular o valor r:

12

1

xx

xxr

−−=

(11)

Se este valor estiver entre [0, 1] então existe uma intersecção da recta da grelha com o

segmento considerado.

O primeiro passo do algoritmo Intersecta não é inteiramente linear dado que, devido a erros

de arredondamento originados pela pouca precisão da unidade de vírgula flutuante, por vezes

vértices coincidentes com uma aresta do mosaico são classificados como estando fora. É

necessário assim introduzir no algoritmo mecanismos que permitam ajustar a precisão desse

procedimento. No caso presente, assumiu-se uma orla de 5 cm à volta de cada célula. Caso

um ponto esteja fora até este valor, é considerado como ainda pertencendo ao mosaico.

Pode-se exemplificar o funcionamento do algoritmo no caso simples da Figura 2.11. O

triângulo P0, P1, P2 intersecta a grelha em dois pontos. O algoritmo verifica que P0 e P1 estão

em células diferentes e determina o ponto de intersecção (Pi1). Com este ponto definem-se 2

novos triângulos: (P0, Pi1, P2) e (Pi1, P1, P2), que se submetem de novo ao algoritmo. O

primeiro triângulo está totalmente no interior de uma célula e não é mais modificado. Para o

segundo triângulo gerado verifica-se que o segmento P1P2 intersecta a grelha (em Pi2), sendo

de novo subdividido nos triângulos (Pi1, P1, Pi2) e (Pi1, Pi2, P2), Verifica-se então que cada um

destes está contido numa só célula e o processo é interrompido, tendo sido gerados 3

triângulos ((P0, Pi1, P2), (Pi1, P1, Pi2) e (Pi1, Pi2, P2)), nenhum dos quais intersectando qualquer

aresta da grelha das células de visibilidade.

Como foi referido, este algoritmo funciona razoavelmente bem para triângulos com poucas

intersecções no mosaico envolvente. Devido à natureza da informação espacial, na maior

parte das paisagens consideradas no âmbito deste trabalho, este algoritmo pode ser aplicado

com resultados seguros. Apesar de tudo, casos patológicos de triângulos muito grandes podem

ocorrer (por exemplo, em zonas planas com pouca diversidade no coberto vegetal). Nestes

casos, o algoritmo dá resultados correctos, contudo resulta em mais triângulos do que seria

Page 43: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

43

necessário (Fig. 2.12). Para estas situações, seria desejável utilizar outros métodos de

decomposição espacial como, por exemplo, os mecanismos de intersecção de polígonos

descritos por de Berg (2000)

Figura 2.11. Subdivisão de um triângulo por sobreposição a uma grelha ortogonal

Figura 2.12 Exemplo de subdivisão excessiva de um triângulo pela sua inserção numa grelha

ortogonal.

Esta primeira fase enumera todos os triângulos que constituem a paisagem identificando-os

ao nível da sua ocupação e da localização nas células de paisagem. Apesar desta formatação

dos dados poder ser directamente introduzida no módulo de visualização optou-se por realizar

um segundo pré-processamento para melhor estruturar a informação e facilitar a leitura pelo

programa principal. Assim, a segunda fase servirá, em primeiro lugar, para agrupar os

triângulos nas respectivas células de visibilidade e, em segundo lugar, para a computação das

normais dos pontos que constituem a malha do terreno. A determinação das normais permite a

Page 44: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

44

utilização de métodos de sombreamento (Foley e van Dam 1997) que conferem uma

aparência arredondada ao terreno fazendo-o parecer mais natural. No entanto, a decomposição

geométrica realizada, com separação total de triângulos sem identificação de pontos comuns

obriga a uma operação subsequente nos procedimentos de pré-processamento de informação

geométrica.

2.3.7. Cálculo das Normais

No procedimento anterior, devido ao processamento individual dos polígonos que constituem

a cobertura do SIG, é efectuada uma listagem simples dos triângulos que os constituem,

sendo determinada a célula de visibilidade a que pertencem. Para a determinação das normais

de cada ponto é contudo necessário uma abordagem holística, uma vez que o cálculo das

normais de um vértice corresponde à média das normais dos polígonos nos quais está

inserido. Assim, é fundamental conhecer todos os triângulos que são constituídos por cada

ponto da malha. Deste modo, o primeiro passo nesta fase do pré-processamento é a

identificação dos pontos únicos que a constituem, dado que vários triângulos podem partilhar

um ou mais pontos. O procedimento usado coloca os pontos de cada triângulo numa tabela de

dispersão, e associa uma lista de triângulos a cada ponto. Posteriormente as normais de cada

ponto são calculadas pela média das normais dos triângulos que partilham esse mesmo ponto.

(Figura 2.13)

Figura 2.13. Exemplo do cálculo de normais para um vértice

Page 45: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

45

O processo de cálculo de normais é baseado na aplicação do produto externo. Esta operação

geométrica, produz um vector normal a um plano usando dois vectores que pertencem a esse

mesmo plano. Num triângulo, quaisquer dois vectores são coplanares pois partilham pelo

menos um vértice. Para um dado triângulo há sempre duas normais possíveis com a mesma

direcção, mas com sentidos inversos, que são geradas dependendo da orientação dos vértices

que os constituem. Dada a natureza da superfície modelada (um mapa digital do terreno),

interessa calcular uma normal com uma componente y positiva. A regra da mão direita

(Lengyel 2001) permite determinar a priori a orientação do vector normal calculado. Assim

se os dedos da mão estiverem orientados no sentido de um dos vectores e a palma estiver a

apontar na direcção do outro vector, o sentido do vector produzido pelo produto externo é

dado pela posição do polegar. Uma forma de garantir que esta regra é sempre cumprida é

seleccionar, como ponto de intersecção dos dois vectores, o ponto que está mais à direita e

garantir que os vértices se encontram orientados no sentido dos ponteiros do relógio.

Não há mecanismo nenhum no processo de triangulação descrito na secção 2.3.5. que garanta

que o triângulo gerado fique orientado. O procedimento que se descreve a seguir é um

algoritmo trivial que, usando como variáveis de entrada um conjunto de 3 pontos que

constituem um triângulo no espaço, faz sair os mesmos 3 pontos orientados no sentido dos

ponteiros do relógio, sendo o primeiro ponto, aquele que está situado mais à direita (valor

maior na coordenada x).

Algoritmo OrientaTriangulo

1. Seleccionar o ponto mais à direita (P0), não atribuindo qualquer ordem aos outros dois

pontos (P1 e P2) que constituem o triângulo. V12 corresponde ao vector que tem como

extremos P1 e P2 estando orientado nesse sentido

2. Através da Equação (5) verificar se o ponto P0 se encontra à direita (<0) ou à esquerda

(>0) do vector V12.

3. Se P0 está à direita de V12, trocar P1 com P2 (P1=P2 e P2=P1)

4. P0, P1 e P2 representam um triângulo orientado no sentido dos ponteiros do relógio

Tendo os triângulos orientados, garante-se que a aplicação do produto externo a cada ponto

tem uma componente y positiva e a normal associada ao triângulo está correctamente

Page 46: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

46

calculada. O facto do vértice do triângulo situado mais à direita ser o primeiro valor de saída

deste procedimento facilita a aplicação do produto externo.

Apesar do OpenGL aceitar valores não normalizados para os vectores normais, para

minimizar erros de arredondamento num processamento posterior, optou-se por fazer a

normalização directamente nesta fase do pré-processamento. Esta decisão é ainda beneficiada

pelo facto da linguagem Python, utilizada durante todo o pré-processamento da informação,

tratar nativamente todos os números de vírgula flutuante em dupla precisão (64 bits). Essa

precisão é perdida deliberadamente na criação do ficheiro final com a geometria do terreno,

em primeiro lugar devido ao maior espaço necessário para armazenar essa informação (seriam

necessários 64 bytes por cada ponto). Em segundo lugar devido ao muito maior tempo de

processamento de valores de dupla precisão. Se a velocidade do computador que processa a

informação geográfica não é relevante, pois é um processo realizado apenas uma vez, todo o

código referente ao visualizador deve ser extremamente optimizado para se poder manter um

frame rate confortável para o utilizador, mesmo nas situações mais difíceis. Uma terceira

razão para não manter a precisão dos números de vírgula flutuante em 32 bits é a própria

natureza do OpenGL, que para diversos procedimentos obriga à utilização deste valor de

precisão numérica.

A leitura da informação resultante, já pelo módulo de visualização, é um procedimento

eficiente devido ao pré-processamento realizado que agrupa em estruturas separadas a

informação relativa aos vértices (incluindo as normais) e a relativa aos triângulos (contendo

para cada um os IDs dos polígonos a que pertenciam). A informação espacial, uma vez

calculada, não necessita de ser mais modificada, podendo ser utilizada para a análise de várias

situações de gestão, admitindo que a geometria do uso do solo não é alterada ao longo do

período de simulação.

Page 47: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

47

3. FERRAMENTAS DESENVOLVIDAS

3.1. Factores comuns

A representação tridimensional de paisagens florestais é um problema computacional

complexo dada a ocorrência de cenas com uma grande complexidade geométrica, devido à

presença de um grande número de objectos (árvores) em situações em que é difícil a

utilização de algoritmos para simplificação da geometria. Abordagens tradicionais de redução

do número de polígonos a desenhar em cada imagem falham na representação de espaços

florestais, sendo neste momento um problema ainda sem resolução conhecida. As duas

abordagens descritas nesta secção focam duas estratégias possíveis para resolver o problema

em questão. A primeira (Landscaper 1.0), manifestou algumas insuficiências que a segunda

versão (Landscaper 2.0) procurou colmatar, perdendo-se, apesar de tudo, algumas das

características iniciais, que podem ter interesse para potenciais utilizadores do sistema.

3.1.1. Utilização da biblioteca OpenGL

Para tentar retirar o máximo partido dos recursos computacionais existentes, ambas as

ferramentas desenvolvidas foram desenvolvidas em C/C++, utilizando para aceder ao

hardware gráfico a biblioteca OpenGL. O sistema gráfico OpenGL é um interface de software

para o hardware gráfico (Woo et al 1999). GL significa “Graphics Library”, procurando este

sistema ser uma biblioteca de funções gráficas que permitem representar imagens e

geometrias de objectos tridimensionais. O OpenGL foi desenhado para ser um interface

independente do hardware utilizado, para poder ser utilizado em várias plataformas. O seu

desenho interno é o de uma máquina de estados finitos. Ao definir a geometria, esta é

Page 48: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

48

representada no ecrã de acordo com o estado de diferentes parâmetros que se mantêm activos

até serem alterados no decorrer do programa.

O OpenGL é uma biblioteca de funções de um nível relativamente baixo, por isso foram

adicionados outras bibliotecas utilitárias que simplificam o acesso a outras componentes do

sistema. De particular interesses para este trabalho foi a utilização do OpenGL Utility kit

(GLUT). Este é um conjunto de funções acessórias independente da plataforma, desenhado

para esconder as complexidades dos diferentes sistemas de janelas (Woo et al. 1999, Kilgard

1986). Esta biblioteca permite lidar com grande parte dos problemas associados ao interface

com o utilizador, fornecendo um conjunto de funções que facilitam o acesso a problemas de

mais baixo nível, geridos habitualmente pelo sistema operativo. Deste modo, o GLUT efectua

um controlo das mensagens e eventos que são enviados para o programa, dando ao

programador um ambiente uniforme, permitindo que o desenvolvimento se centre nas

questões essenciais do processamento gráfico e não em questões acessórias, como lidar com o

movimento do rato, acções no teclado ou o tratamento de mensagens várias do sistema

operativo.

Nas duas versões do programa o procedimento básico de inicialização e decorrer do programa

foi semelhante, podendo se resumir nos seguintes passos. Em primeiro lugar é inicializada a

biblioteca GLUT, que por sua vez acciona todos os mecanismos para que o OpenGL fique

operacional. Seguidamente é definida a janela de trabalho e é inicializada a geometria que irá

ser representada tridimensionalmente pelo sistema. São definidas quais as funções que

permitem o interface com o utilizador por intermédio do uso do rato e do teclado e

eventualmente do joystick. Definem-se ainda quais as funções que processarão o desenho da

geometria (display) e os procedimentos a executar caso a janela seja redimensionada. É ainda

definido o que fazer quando o programa não está a responder a eventos (idle). Finalmente,

coloca-se o programa entra num ciclo sem fim, passando o controle aos procedimentos

enumerados. No decorrer do programa é naturalmente sobre a rotina de display que ocorre a

maior pressão, sendo esta rotina crucial no desempenho do programa dado ser nesta fase que é

processada toda a geometria presente em cada cena.

Page 49: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

49

3.1.2. Utilização de extensões ao OpenGL 1.2

O OpenGL foi desenhado de forma a permitir extensões às funcionalidades básicas que fazem

parte do núcleo da API. Essas extensões podem ser particulares a um determinado fabricante

de hardware, ou fazerem parte de recomendações da Architecture Review Board - ARB -

(Woo et al. 1999) para inclusão no núcleo de futuras versões da API. Essas extensões não são

directamente acessíveis ao programador, sendo necessário um procedimento de inicialização

especial. Em primeiro lugar é necessário verificar se a extensão pretendida está disponível na

plataforma para a qual se compila o programa. Esta procura realiza-se através da função

glGetString(GL_EXTENSIONS), que devolve uma listagem em texto de todas as extensões

disponíveis. Caso a extensão exista é então necessário criar, dentro da aplicação, uma variável

que funciona como um apontador para uma função, e posteriormente inicializar essa função

por meio da função XglGetProcAddress(char *). Desta forma a função fica a apontar para

o procedimento definido no driver OpenGL específico do hardware gráfico utilizado.

3.1.3. Representação de geometria

O OpenGL tem 4 formas de representação da geometria:

a) Primitivas directas;

b) Vertex arrays;

c) Display lists;

d) Vertex Buffer Objects.

a) Primitivas directas.

As primitivas directas são a forma mais flexível de submeter qualquer informação geométrica

à API. Essencialmente, através de funções distintas, são submetidas as coordenadas dos

vértices, as normais respectivas e as coordenadas das texturas associadas. Devido ao overhead

resultante de toda esta chamada de funções, este método é geralmente o mais lento de todos.

b) Vertex arrays

Os vertex arrays foi a forma utilizada pelo OpenGL para resolver dois problemas. Em

primeiro lugar diminuir a redundância no processamento geométrico, e o número de funções

Page 50: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

50

chamadas na utilização de primitivas directas. Por exemplo, para processar um cubo, cada

vértice pertence a 3 quadriláteros, este teria assim de ser introduzido 3 vezes no pipeline

gráfico. Por outro lado, a representação gráfica de uma geometria fixa, obriga a que pelo

menos tantas funções sejam chamadas quantos os pontos que constituem essa forma. O uso de

vertex arrays simplifica esse processo permitindo que esse conjunto de vértices seja

processado com uma só chamada de uma função (Woo et al 1999).

A utilização de vertex arrays obriga a uma maior estruturação no processo de tratamento de

informação, forçando a organização dos elementos que constituem a geometria num conjunto

de vectores (arrays) que permitem a definição das componentes básicas de uma cena de uma

forma sequencial. Apesar de terem um procedimento de inicialização mais complexo, esta

forma de submeter geometria é muito mais eficiente que o uso de primitivas directas .

Marselas (2000), por exemplo, relata ganhos de performance de cerca de 350 %.

c) Display lists

As display lists (DLs) são geralmente o método mais eficiente para a representação de

geometrias densas ou complexas. Este método baseia-se na compilação pelo OpenGL das

primitivas submetidas à API. O resultado dessa compilação é acedido através de um índice.

Para representar todo um conjunto de primitivas basta então chamar uma só função. Este tipo

de representação é extremamente eficiente a nível de desempenho. Tem contudo alguns

problemas. Em primeiro lugar, só funciona para geometrias estáticas. Uma vez compilada, a

DL não pode ser modificada. Em segundo lugar, é relativamente pouco eficiente no uso da

memória. Finalmente, apesar de ter um overhead geralmente menor que o uso de primitivas

directas, o uso de DLs justifica-se apenas quando o número de vértices que a constituem for

razoavelmente grande. Para DLs com poucos vértices, os recursos consumidos pelo OpenGL

para submeter a geometria ao pipeline gráfico são comparativamente superiores aos ganhos

em desempenho resultantes da sua aplicação.

d)Vertex Buffer Objects

Os Vertex Buffer Objects (VBOs) são uma nova componente do OpenGL que foi adicionada

para as especificações do OpenGL 1.5., tendo sido normalizada pela ARB em Fevereiro de

2003. Os VBOs são vertex arrays definidos para se conseguir um alto desempenho de

Page 51: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

51

desenho. Estas estruturas permitem que vários tipos de dados, nomeadamente arrays de

vértices, sejam guardados directamente na memória RAM do hardware gráfico, melhorando

assim as transferências de informação entre os diferentes componentes do sistema (ARB

2003).

Os VBOs funcionam, na sua essência, de forma semelhante à de vertex arrays, contudo

oferecem um muito melhor desempenho, apesar de geralmente necessitarem de maior

capacidade de memória na RAM do acelerador gráfico utilizado. Caso essa memória não

esteja disponível, o OpenGL tenta reservar espaço de memória na memória AGP que está

mapeada na RAM principal do computador. Essa área de memória pode beneficiar das

velocidades de transferência associadas ao Bus AGP, que no caso da especificação AGP 8x

pode atingir os 2GB/s (Chen et al. 2002).

Verificou-se, através de testes individuais, que os VBOs têm aproximadamente o mesmo

desempenho conseguido pelas DLs, contudo estas têm uma presença em memória muito mais

significativa, o que em situações de grande complexidade geométrica coloca problemas de

desempenho devido aos recursos necessários para gerir uma maior quantidade de informação.

3.1.4. Transparências e alpha blending

A representação de texturas com transparências ou translucências (transparências parciais)

obriga a um maior grau de complexidade na utilização de texturas. Assim, uma textura não

pode envolver apenas uma representação cromática do objecto a que pertence, usando 3

canais de cor (RGB). É necessário que contenha um outro que quantifica a opacidade dessa

mesma textura e do objecto a que a textura pertence. Esse canal, designado alpha, é

quantificado geralmente de 0 a 1, sendo o valor 1 a opacidade total e o valor 0 indicativo de

total transparência. As imagens ficam deste modo definidas com 4 canais (RGBA), ocupando

32 bits por pixel.

O problema da utilização de texturas com transparências resulta do facto do algoritmo

geralmente utilizado para determinação da geometria visível (z-buffer), não se adequar

directamente à presença de transparências. O z-buffer permite desenhar cenas

Page 52: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

52

geometricamente muito complexas independentemente da ordem pela qual são submetidos os

polígonos, uma vez que são apenas desenhados os pixels mais próximos do ponto de

observação. O problema com a utilização de canais alpha com transparência total (A=0) deve-

se ao facto de, apesar da textura referir que a transparência é total, a coordenada z do pixel é

armazenada da mesma forma no z-buffer, o valor da cor a aplicar não é no entanto alterado,

mantendo-se a cor do fundo ou do polígono que se situa imediatamente atrás. Os problemas

surgem quando se desenha um novo polígono que se apresente por trás do polígono

transparente. Uma vez que o valor do z-buffer nesse pixel é o do polígono transparente, que se

situa mais próximo do que o novo polígono a desenhar, a sua cor não é alterada, resultando

uma representação errónea da cena. Dado que a utilização de um z-buffer é extremamente

eficiente e optimizada pelo hardware, a alternativa é encontrar algoritmos que permitam a

utilização deste algoritmo com primitivas transparentes.

Conforme foi descrito na secção 2.2.1., a metodologia utilizada para a representação

geométrica de árvores foi a utilização de dois rectângulos texturados que se entrecruzariam.

Esta metodologia obriga à utilização de técnicas de representação gráfica capazes de lidar

com problemas de transparência. Não é um assunto trivial, havendo várias abordagens

possíveis. Contudo, com as capacidades computacionais actualmente disponíveis, qualquer

um dos métodos referidos apresenta inconvenientes.

A estratégia mais simples para abordar este problema baseia-se no desenho dos polígonos

transparentes ou semitransparentes depois dos polígonos opacos. Esta abordagem é eficiente e

geralmente fácil de implementar. Podem, contudo, ocorrer diversos tipos de problemas devido

à ordem de desenho dos polígonos. Com efeito, em polígonos que contenham partes opacas e

transparentes (como é o caso das árvores no presente trabalho, se não há uma ordenação

prévia dos polígonos e posterior desenho de trás para a frente podem suceder situações

bizarras que confundem o utilizador. A ordenação de polígonos também não é por si um

problema fácil, pois é frequente um polígono poder estar simultaneamente à frente e atrás de

outro (Abrash 1997).

Uma segunda metodologia consiste na desactivação da escrita no Z-buffer para polígonos

translúcidos ou transparentes. Esta técnica é defendida por vários autores (e.g. Nagy 2000). A

ideia base baseia-se no facto de, se um polígono translúcido não escrever no Z-buffer, então

Page 53: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

53

outros polígonos subsequentes que forem escritos por trás não são ocludidos por este. Esta

técnica pode dar bons resultados, não tendo os problemas de qualidade de imagem associado

às técnicas anteriores. Há contudo dois sérios inconvenientes à sua utilização. O primeiro é

que ela só funciona correctamente se os polígonos forem ordenados e desenhados de trás para

a frente. A ordenação de polígonos em cada frame pode causar uma diminuição considerável

no desempenho do programa. O segundo problema é uma segunda consequência do anterior.

Uma vez que é necessário ordenar os polígonos, não é possível a utilização de Display Lists

ou Vertex Buffer Objects, para representação da geometria (ver secção 3.1.3), dado que a

ordem pela qual estas duas técnicas submetem a geometria ao pipeline gráfico é fixa.

Uma terceira abordagem é a definição de um filtro com base no valor do parâmetro Alpha.

Assim, só há escrita no z-buffer quando os valores do parâmetro Alpha forem superiores a um

limiar pré-definido. O OpenGL permite essa funcionalidade através da função

glAlphaFunc(), que admite como parâmetro um determinado valor de alpha. Esta técnica dá

resultados bons e coerentes para os casos em que os valores de alpha são ou 0 ou 1, sem

valores intermédios. Apesar de aparentemente ser superior aos métodos anteriores, esta

abordagem não é contudo isenta de problemas. Quando é aplicada uma textura a um polígono,

esta não é directamente decalcada. O processo de decalque é definido pelos filtros de textura,

definidos na altura da sua criação. A utilização de filtros lineares ou mipmap (Woo et al.

1999), (e.g. GL_LINEAR_MIPMAP_LINEAR) provoca o aparecimento de valores interpolados de

alpha que não são nem 0 nem 1. A presença de valores muito elevados provoca o

aparecimento de auréolas à volta de objectos ampliados, ao passo que valores muito baixos,

fazem com que as partes mais finas da imagem pareçam desaparecer (figura 3.1.). Na figura

3.1a, é visível a auréola a rodear o tronco e os ramos mais finos das árvores que estão mais

próximas. Com um parâmetro alfa de 0.9 (figura 3.1b), os troncos das árvores mais distantes

desaparecem, criando uma aparência de irrealidade. Nesta figura é possível observar no

horizonte que as copas das árvores mais distantes parecem suspensas e, mesmo em árvores

mais próximas, como no centro da imagem, os troncos quase que desaparecem. A escolha de

valores alpha deveria em princípio ser regulada pela distância, com árvores mais próximas a

receberem valores mais altos e árvores mais distantes a receberem valores mais baixos.

Page 54: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

54

a) b)

Figura 3.1. Alpha blending em OpenGL. Problemas na adequação de valore correctos de

alpha para representação da geometria. (a) glAlphaFunc(GL_GREATER 0.1); b)

glAlphaFunc(GL_GREATER 0.9) )

Uma quarta alternativa consiste na representação da geometria com transparências em duas

passagens, usando várias variáveis de estado do OpenGL (Nagy 2000). Esta abordagem dá

excelentes resultados, não podendo contudo ser aplicada para o presente trabalho devido ao

elevado número de polígonos com transparências existente. Esta técnica, devido ao facto de

efectuar duas passagens por polígono, duplicaria o número de vértices submetidos e reduziria

severamente o desempenho.

3.2. LANDSCAPER 1.0

Na primeira versão do programa, o sistema idealizado estava centrado no cumprimento dos

seguintes objectivos:

a) Sistema escalonável, que pudesse ser estendido a várias centenas de milhares de

hectares com vários milhares de povoamentos.

b) Capacidade de visualizar vários tipos de povoamentos florestais (permitindo a

representação de povoamentos mistos, e irregulares) usando um mínimo de

informação específica para cada tipo de povoamento

Page 55: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

55

c) Conservação no terreno dos pontos de referência (elementos humanos, como estradas,

caminhos povoações) para melhor situar geograficamente o utilizador do sistema;

d) Possibilitar um horizonte visual variável: um modo steering em que o utilizador se

poderia deslocar livremente na paisagem, tendo contudo um horizonte visual limitado,

e um modo Landscape, em que seria possível ver toda a paisagem, mas com

interactividade reduzida.

Estes pressupostos nortearam o desenvolvimento do sistema Landscaper 1.0 usado para

avaliação da paisagem originada por vários cenários de gestão para o Perímetro Florestal do

Cantão das Hortas. Apesar da área total da fotografia aérea ter cerca de 15.0 km2, a área

específica do Cantão representa apenas cerca de 30.7 % da área total (460.0 ha), o que se

traduzia num número relativamente reduzido de árvores na cena. Admitindo uma densidade

média de 500 árvores por ha, totalizam-se 230,000 árvores presentes na paisagem, em média.

Isto totaliza cerca de 920,000 polígonos na cena, correspondentes a 1,840,000 vértices

individuais, excluindo a grelha regular que contém o DTM (16,641 triângulos). Com esta

densidade geométrica é assim difícil representar com um mínimo de fluidez cada cena. A

descrição do sistema foi a primeira estratégia desenvolvida para responder aos problemas

computacionais inerentes a este tipo de situações.

3.2.1. Representação interna da informação

O sistema de tratamento da informação é suficientemente geral para poder ser utilizado numa

variedade de arquitecturas. Com efeito, o sistema proposto permite a definição de unidades

básicas de povoamentos. A primeira abordagem seguida consistia na reprodução exacta dos

mosaicos representativos dos povoamentos, através de uma divisão da área florestal numa

grelha com a mesma dimensão dos mosaicos. Essa abordagem simplista tinha ainda a

vantagem de permitir uma ligação fácil com o mapa digital do terreno (DTM). Com efeito, a

utilização de um pixel de 30 metros na representação de paisagens é usual e permite uma boa

aderência à realidade.

Page 56: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

56

+CCoverType()+~CCoverType()+Init() : int+DrawTrees(in cc : CellCoords, in stand : CStand*) : bool

+coverType : int+NumTrees : int+Trees : Tree *

CCoverType

+CLandscape()+~CLandscape()+DrawLandscape(in row : int, in col : int)+DrawLandscape2(in r1 : int, in c1 : int, in r2 : int, in c2 : int, in r3 : int, in c3 : int)+ReadLandscape() : bool+CreateLandscapeList() : bool-ReadStartFile(in fileName : string) : bool-ReadStands() : bool-ReadStandMap() : bool-ReadHeightMap() : bool-ReadCoverTypes() : bool-ReadLandTexture() : bool-DrawLandscapeTrees()-MakeTreeList(in texture_id : GLint) : GLint-calc_frustum(in x1 : int, in y1 : int, in x2 : int, in y2 : int, in x3 : int, in y3 : int)-draw_top_triangle(in xtop : int, in ytop : int, in ybottom : int, in xleft : int, in xright : int)-draw_bot_triangle(in ytop : int, in xleft : int, in xright : int, in xbottom : int, in ybottom : int)

+MapSize : int+landTexture : GLuint+init_x : float+init_y : float+HeightMap : float *+Grid : CCell *+n_stands : int+Stands : CStand *-StandFile : string-HMFile : string-CTFile : string-n_covertypes : int-CoverTypes[MAX_CTYPES] : CCoverType *-b_ctypes[MAX_CTYPES] : bool-drawAll : bool

CLandscape

+CStand()+~CStand()+InitTreeTypes()

+Stand_id : int+covertype : int+treeTypes : TreeType *+composition : int+species1 : int+species2 : int+species[2] : Biometrics+n_trees : int+n_treetypes : int

CStand +height : float+crownWidth : float+texture_id : int+list_id : GLint

«struct»TreeType

+dom_height : float+dbh : float

«struct»Biometrics

+coordX : float+coordY : float+speciesType : int+height : float+width : float+texture_id : int

«struct»Tree

Figura 3.2. Diagrama UML da estrutura de dados utilizada no programa Landscaper 1.0

No início do programa é criada uma paisagem (CLandscape) que contém todos os atributos

necessários para a representação visual da paisagem considerada. A informação relativa à

altimetria, por exemplo, está armazenada num vector de elementos de vírgula flutuante, para

optimizar o acesso e a representação na memória.

A classe CStand, que contém a informação relevante para representar os povoamentos

existentes na paisagem, não contém árvores, contém antes informação suficiente para

parametrizar as árvores que o constituem (TreeType). Esta informação é gerada na altura em

que o programa é inicializado. Quando é lida a tabela que contém os dados referentes aos

povoamentos, são apenas retidas:

a) a composição em espécies (que não pode ser mais que dois);

b) o número de árvores;

Page 57: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

57

c) as características biométricas básicas do povoamento (altura dominante e área basal

(Alves 1982).

Posteriormente, um procedimento inicializa os tipos genéricos de árvores que existem no

povoamento. Estes tipos genéricos (templates) representam árvores básicas, mas sem

coordenadas no terreno. A atribuição de coordenadas é feita através de um procedimento de

mapeamento sobre as coberturas florestais (CCoverType) detalhado adiante (secção 3.2.2). A

cobertura florestal é também um modelo e contém as coordenadas para cada célula de

terreno das árvores que a constituem. Deste modo, as árvores de cada povoamento tipo,

aparecem de forma idêntica para todas as células que o constituem. É nesta classe que está

definido o método DrawTrees que executa todo o procedimento de desenho de árvores no

decorrer do programa. Como será descrito adiante (secção 3.2.2) esta classe foi definida para

ser independente da densidade e das características serais dos povoamentos que lhe

pertencem. Esta estrutura possibilita que um povoamento com 1200 árvores e outro com 500

podem ambos ser representados pela mesma instância da classe.

3.2.2. Colocação das árvores no terreno

Uma vez conhecida a ocupação de cada célula, sabe-se, no caso de células em áreas florestais,

a posição relativa de cada árvore no seu interior. O método utilizado por esta versão do

programa baseia-se numa cópia directa de cada célula de cada povoamento tipo, em cada

unidade visível de terreno. Esta abordagem funcionaria perfeitamente sem modificações em

situações de terreno plano. Para este caso seria suficiente calcular as posições de todos os

vértices que constituem cada árvore uma vez para cada célula tipo e reproduzir o padrão ao

longo da área de trabalho de acordo com o tipo de cobertura do terreno. A existência de uma

topografia irregular põe, apesar de tudo, alguns problema. Para uma área florestal extensa,

guardar as coordenadas de todas as árvores ocuparia uma grande quantidade de memória e

colocaria problemas de desempenho na gestão dessa informação.

A solução encontrada para a representação da geometria, baseia-se na utilização de

povoamentos tipo (CCoverType). Cada povoamento tipo é representado por um conjunto de

árvores situadas numa célula com uma dimensão idêntica à da malha da grelha

Page 58: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

58

correspondente à grelha que define a topografia do terreno. Para minimizar ainda mais o

impacte desta componente da cena na memória, optou-se por colocar em cada povoamento

tipo o número máximo de árvores. A caracterização de um povoamento indica quantas

árvores existiriam na realidade e então apenas estas são mostradas. A ilusão é garantida, uma

vez que as coordenadas das árvores estão dispostas aleatoriamente pela célula

A colocação das árvores no terreno numa célula visível é executada de acordo com os

seguintes passos: Para o povoamento típico correspondente à célula a desenhar, seleccionam-

se apenas as n primeiras árvores, correspondentes à densidade real do povoamento florestal a

representar. Seguidamente, para cada árvore, determina-se a textura correspondente à espécie

e determinam-se as suas coordenadas no terreno por interpolação das suas coordenadas no

plano, com a célula, usando a altitude dos pontos que constituem os seus vértices. São

posteriormente calculadas as coordenadas dos dois rectângulos que a constituem, com as

dimensões apropriadas, de acordo com as propriedades da árvores correspondente no

povoamento típico. Estas duas componentes podem então finalmente ser submetidas ao

pipeline gráfico, usando primitivas directas do OpenGL ou uma pequena display list

convenientemente dimensionada e transformada.

A textura a aplicar ao terreno (fotografia aérea) é armazenada no hardware gráfico. A

coordenadas da textura são aplicadas de acordo com a posição de cada célula por interpolação

directa.

3.2.3. Definição do horizonte visual

A primeira abordagem usada para minimizar o impacte e a complexidade geométrica da cena

foi desenhar em cada frame apenas as células visíveis. A determinação da visibilidade pode

ser realizada de diversas formas. A solução procurada deveria ser extensível a grandes áreas e

deveria minimizar o número de testes a realizar. O algoritmo utilizado efectua o pré-cálculo

das células que são visíveis, admitindo que o observador está junto ao solo e a rugosidade do

terreno é negligenciável

Page 59: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

59

Uma vez que a paisagem é constituída por células de dimensão fixa e a posição de um

observador habitual é junto ao solo, uma abordagem possível é a determinação da projecção

do frustum de visão no plano horizontal. e desenhar apenas as células abrangidas por essa

área. Admitindo que a normal à posição do observador é um vector perpendicular ao plano

horizontal (i.e., não admitindo rotações no eixo dos x), essa projecção é um triângulo. A

determinação das células que estão no interior desse plano pode ser realizada eficientemente

por intermédio de uma extensão do algoritmo de Bresenham a triângulos. O algoritmo

seguido, apesar de relativamente complexo, é muito eficiente, não tendo qualquer impacte no

desempenho do programa final.

Algoritmo TrianguloDeVisibilidade

1. Definir a projecção do frustum sobre o plano horizontal;

2. Dividir o triângulo resultante em dois, separando-os por um dos vértices através de

uma recta paralela ao eixo dos és de uma recta paralela ao eixo dos y. Resultam dois

triângulos com o "fundo chato" e outro com o "topo chato" (figura 3.3);

3. Determinar as equações das rectas que definem cada um dos triângulos;

4. Iniciando no triângulo de cima, desenhar as células que estão no seu interior, seguindo

o algoritmo de Bresenham (Bresenham 1965) para determinar os extremos de cada

linha, e seleccionando todas as células na mesma linha situadas entre esses dois

valores, inclusive;

5. Processar o triângulo de baixo, usando o mesmo método.

No exemplo (Figura 3.3.) .demonstra-se o algoritmo referido. Em primeiro lugar, define-se o

frustum de visibilidade sobre o mosaico do terreno (Fig. 3.3.a). Seguidamente, o triângulo

resultante é decomposto nos dois triângulos que o constituem (TC: triângulo de cima; TB:

triângulo de baixo) e desenhado, percorrendo sequencialmente cada uma das células que

constituem cada linha (Fig 3.3.b).

O conjunto de células seleccionadas poderia ser desenhado imediatamente à medida que o

procedimento de selecção vai decorrendo. Contudo, devido à existência de transparências na

representação das árvores, é necessário atrasar o procedimento de representação gráfica da

geometria da cena.

Page 60: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

60

a)

b)

Figura 3.3. Definição e desenho das células visíveis no programa Landscaper 1.0. (TC –

triângulo de cima; TB – Triângulo de baixo

3.2.4. Movimentação no terreno

Esta versão do programa permite todo o movimento do observador na paisagem virtual a

partir do teclado do computador. É possível executar rotações livres no eixo dos Y e dos X,

sendo o movimento executado, por deslocação no eixo dos Z. O programa tem ainda

mecanismos que evitam que o utilizador se “afunde” no terreno. Essencialmente, o

procedimento é executado determinando a célula de terreno correspondente á posição do

observador e interpolando posteriormente o valor de altitude com base dos 4 vértices que

compõem a célula, utilizando as equações (1) a (4). O algoritmo não permite que a posição do

utilizador seja inferior ao valor calculado adicionado de uma constante que representa a altura

do indivíduo (por omissão, 1.70 m).

3.3. LANDSCAPER 2.0

A primeira versão do programa foi desenvolvida procurando em todos os aspectos minimizar

a presença de dados na memória. O seu cenário de aplicação típico corresponde a uma

Page 61: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

61

situação com uma variada fragmentação paisagística e um elevado número de povoamentos

distintos em que as árvores são relativamente semelhantes umas às outras. Contudo, em várias

situações, o número de povoamentos diferentes não é tão elevado, não se justificando uma tão

grande optimização da ocupação da memória. Foi então pensada uma nova versão do

programa que procurava resolver algumas das características menos bem conseguidas da

versão anterior, ao mesmo tempo que garantiria um uso mais racional do recursos

computacionais disponíveis. Em particular procurou-se tirar o máximo partido das

capacidades de aceleração de processamento de geometria das modernas placas gráficas de

uso comum e fazer um uso mais coerente dos recursos de memória.

Uma área florestal com cerca de 460 ha, como a primeira área de teste (Cantão das Hortas),

dependendo do nível de detalhe desejado, pode ser totalmente contida no hardware de um

computador actual e não oferece problemas de maior. No entanto, se a área crescer até aos

100,000 ha, como na segunda área de teste (Barlavento Algarvio), considerando uma taxa

média de ocupação de 300 árvores por ha, com 8 vértices por árvores, cada um caracterizado

por 3 unidades de vírgula flutuante de 32 bits, seriam necessários 2.682 GBytes apenas para

guardar as coordenadas correspondentes. O problema da gestão de memória de um volume de

dados destes coloca-se também ao nível computacional, uma vez que seria necessário mover

consecutivamente enormes quantidades de dados de uma parte para a outra da memória para

aceder à memória AGP (Chen et al. 2002) e entrar no pipeline gráfico. Dada a natural

fragmentação dos dados, ocorreriam também problemas no acesso aos controladores de DMA

(Direct Memory Access) e inúmeras falhas de cache no decorrer das operações de

visualização. É possível, com o hardware actualmente existente, representar essa quantidade

de informação num computador, contudo seria de prever uma quebra de desempenho difícil

de sustentar sem hardware especializado.

3.3.1. Diferenças face à versão anterior

Toda a arquitectura interna foi redefinida, bem como os requisitos de informação necessários,

se bem que mantendo a estrutura e a compatibilidade com os resultados provenientes do

simulador e dos módulos de modelação da gestão. Como diferença fundamental, refere-se a

utilização da geometria “verdadeira” das ocupações, usando a informação proveniente do

Page 62: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

62

sistema de informação geográfica. Esta alteração implicou uma modificação profunda nas

estruturas de dados e algoritmos utilizados.

Outra modificação foi a incorporação ab initio de um algoritmo de carregamento dinâmico da

paisagem. Ou seja, a informação do terreno e as árvores que lhe estão associadas devem ser

carregadas dinamicamente. Só estará representada na memória a informação potencialmente

visível que é carregada ou libertada à medida que entra ou sai da superfície de visibilidade

potencial (SVP). A posição das árvores deixa de ser calculada em cada frame, ocorrendo na

altura do carregamento das células que se tornam potencialmente visíveis, o que tem um

impacte importante no desempenho do programa. Ao contrário da versão anterior, esta

permite mais do que duas espécies em cada povoamento. Permite ainda, devido à sua

estrutura interna, uma muito maior variabilidade de dimensões e formas de árvores.

A compartimentação do espaço em células não foi abandonada, mas estas têm um sentido

diferente. Ao invés de representarem unidades do povoamento, como na versão anterior,

representam mosaicos da superfície de visibilidade. Entende-se uma célula como um

quadrado de terreno que pode conter diversos povoamentos ou ocupações. As células nesta

nova abordagem têm uma dimensão geralmente maior que no programa anterior, uma vez que

não são limitadas pela rasterização artificial do espaço. Uma célula é constituída pois pelos

triângulos dos polígonos que intersecta.

3.3.2. Representação da informação

Cada povoamento é representado pelo conjunto das árvores que poderiam estar numa célula

de 900 m2 (30m x 30m), se bem que esta unidade de área seja virtual e, ao contrário da versão

anterior, nunca ser desenhada. Estas árvores são modelos de árvores que são posteriormente

distribuídas aleatoriamente nos elementos constituintes dos povoamentos apropriados.

A representação do terreno utiliza os resultados do processamento geométrico descrito na

secção 2.2. Está assim agrupado em células de visibilidade com uma área de 5.76 ha, o que

corresponde a um quadrado de 240m x 240m. Cada célula (ou mosaico) representa o terreno

Page 63: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

63

subjacente por meio de duas listas, uma com a informação respeitante aos vértices e outra

com os índices dos vértices que compõem os triângulos a que pertencem (figura 3.4)

+npoints : int+points : Vertex *+nstands : int+cstands : CellStand *+land_vbo_id : GLuint+nspecies : int+ntrees[N_SPECIES] : int+tree_vbo_ids[N_SPECIES] : GLuint+tree_tex_ids[N_SPECIES] : GLuint

«struct»CCell

+stand_id : int+n_tris : int+tris : GLuint *+land_vboe_id : GLuint+land_tex_id : GLuint

«struct»CCellStand

+x : float+y : float+z : float+nx : float+ny : float+nz : float+u : float+v : float

«struct»CVertex

Figura 3.4. Representação em UML das principais estruturas de dados do programa

Landscaper 2

De notar que nesta estrutura não é explicitamente representada a informação respeitante às

árvores. Estas aparecem apenas referidas pelos ID internos do OpenGL referentes à textura e a

um VBO que marca a representação geométrica das árvores da mesma espécie presentes no

mosaico. Este identificador interno serve como um apontador para uma estrutura em memória

invisível para o programador e que é gerida inteiramente pelo OpenGL. Como é detalhado

adiante, as árvores são colocadas no terreno apenas enquanto se encontram dentro da

superfície de visibilidade potencial (SVP) e não têm portanto existência "real". Isto é, se uma

célula tem um conjunto de árvores com posições definidas, ao sair da SVP, ela é eliminada e

as estruturas de dados que contém a sua geometria são também libertadas pelo OpenGL. Se

contudo essa mesma célula volta a entrar na SVP, outras árvores com as mesmas

características do povoamento em que se inserem são colocadas. Deste modo, apenas as

árvores potencialmente visíveis estão armazenadas na memória em cada momento do

processamento geral do programa. Este aspecto fundamental para a arquitectura do programa

é detalhado nas secções seguintes.

Page 64: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

64

3.3.3. Carregamento dinâmico do terreno

O carregamento dinâmico da informação geométrica à medida que vai sendo necessária é um

dos passos críticos no decorrer do programa. É este procedimento que permite a navegação

virtual por cenários arbitrariamente grandes, reduzindo a informação presente na memória

apenas ao estritamente necessário, correspondente às células potencialmente visíveis a partir

de um determinado ponto de observação. Idealmente a superfície representada seria um

círculo, centrado na posição do observador, deste modo, qualquer que fosse o ângulo de

observação, seria possível representar em memória apenas e só as árvores dentro do raio de

visibilidade. Contudo, dado o facto de ser consideravelmente mais fácil e eficiente a utilização

de um quadrado, devido ao facto da paisagem estar decomposta num reticulado de células,

essa foi a forma geométrica utilizada.

Uma abordagem simplista para permitir o carregamento dinâmico da paisagem poderia ser

realizada da seguinte forma: Quando o observador sai de uma célula numa direcção, a fila de

células que está exactamente oposta à direcção para a qual o observador se desloca é apagada

da memória e em seu lugar é carregada uma fila simétrica, que apareceria porém na direcção

do movimento do observador. Este procedimento tem contudo um inconveniente importante.

Uma vez que há um overhead natural no apagamento e carregamento de informação, caso o

utilizador volte para trás, ou regresse à célula (ou fila de células) de onde veio, todo o

procedimento tem de ser repetido, mas na direcção contrária. Mesmo que não haja uma

inversão de sentido de marcha, o facto de na transição de cada célula se realizar todo este

procedimento causa, dependendo da dimensão das células de visibilidade, uma regularidade

nas pausas de carregamento da informação. Estes factos criam aparentes linhas de

descontinuidade no movimento na paisagem, o que torna desagradável o processo de

navegação.

Para colmatar estas falhas potenciais usou-se um buffer definido previamente pelo utilizador

que define o período de avanço do horizonte. Quando o observador passa um determinado

limiar (pos_inicial + buffer), as coordenadas reais do observador no terreno são alteradas de

acordo com a velocidade e direcção do movimento, mas as coordenadas na grelha de

visibilidade são re-centradas. I.e., é carregada uma ou mais filas de mosaicos de paisagem e a

posição actual passa a corresponder ao centro da grelha, ou seja, é adicionado ou subtraído às

Page 65: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

65

suas coordenadas o valor correspondente à dimensão do buffer criado. Na figura 3.5.

descreve-se graficamente o funcionamento da metodologia proposta. Nesta situação

simplificada, admite-se um buffer com a dimensão de uma célula e um horizonte de

visibilidade (hv) de 2 células. A dimensão da superfície de visibilidade (DSV) é dada por

DSV = 2.(buffer + hv) +1

Para este caso temos que o quadrado da superfície de visibilidade deve ter uma dimensão de 7

x 7. Os números representados na figura correspondem às coordenadas da grelha com a

informação real do terreno. No início do programa, o observador pode-se deslocar livremente

na paisagem, no interior da superfície com as dimensões (buffer + 1) x (buffer + 1) (Figura

3.5.a). Supondo uma deslocação para a direita até às margens do buffer (fim da coluna 10), o

observador é re-colocado no centro, a coluna 6 é removida da superfície de visibilidade e é

carregada a coluna 13 (figura 3.5b). De notar que, durante qualquer deslocação, o horizonte

visível nunca atinge o extremo da superfície de visibilidade.

a) b) Figura 3.5. Algoritmo de deslocação da região de visibilidade

3.3.4. Colocação das árvores

A colocação das árvores no terreno é feita à medida que os mosaicos em que estão inseridas

vão entrando na grelha de visibilidade. É um processo que é executado automaticamente no

decorrer do programa. A primeira dificuldade foi encontrar um algoritmo eficiente que

Page 66: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

66

permitisse a colocação de árvores em tempo real dentro de um triângulo arbitrário constituinte

do terreno. A solução encontrada passa por calcular um rectângulo envolvente para o qual são

calculadas aleatoriamente posições de pontos, que corresponderão às coordenadas das

árvores. Posteriormente, através do teste descrito pela equação (6), seleccionam-se apenas os

pontos que se encontram no interior do triângulo considerado. O processo seria trivial usando

um rectângulo orientado pelos eixos cartesianos. O cálculo desse triângulo é inclusivamente

bastante simples, podendo ser determinado através dos valores máximos e mínimos das

coordenadas do triângulo no plano. Contudo, situações de grande ineficiência poderiam surgir

(figura 3.6). Para este caso a área não-útil seria desproporcionadamente grande

comparativamente à área do triângulo e poderia levar a uma elevada quebra de desempenho.

Figura 3.6. Triângulo envolvido por um rectângulo de área sub-óptima orientado pelos eixos

cartesianos

A abordagem seguida tem associada a si uma sobredeterminação de coordenadas de árvores

que nunca excede o dobro do número de árvores necessárias. Verificou-se, no entanto, que

este cálculo em excesso não tem relevo no desempenho geral do programa. Deste modo, cada

uma das posições possíveis para as árvores seria determinada de uma forma aleatória sobre o

rectângulo definido. É possível então definir, através de um teste simples, quais os pontos que

pertencem ao triângulo, e posteriormente realizar a interpolação para cálculo da altimetria de

cada árvore apenas para os pontos que se situem no seu interior. Desta forma, em primeiro

lugar determina-se o menor rectângulo que envolve o triângulo considerado (P0, P1, P2). Para

tal verifica-se qual das arestas tem a maior dimensão e calcula-se a recta correspondente

(R=P0 + rV0, em que V0 é o vector correspondente a P1-P0). Esta aresta corresponde a uma das

arestas do rectângulo que a envolve. Seguidamente, determina-se o vector (V1) perpendicular

à recta definida por estes dois pontos (sejam P0 e P1), com o comprimento igual à distância de

Page 67: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

67

P2 a R (Figura 3.7). O ponto P0 e os vectores V0 e V1 definem um rectângulo que envolve o

triângulo considerado. Esta superfície tem uma área igual ao dobro da área do triângulo.

Figura 3.7. Para o triângulo (P0, P1, P2), determinam-se os vectores V0 e V1 que

caracterizam o rectângulo envolvente com menor área possível

A colocação das árvores é então realizada sobre este rectângulo. Conhecendo a sua área

determina-se o número de árvores a inserir. Para cada árvore, calculam-se dois números

aleatórios u e v ∈ [0, 1[. O centro da árvore (C) no rectângulo considerado é assim calculado

pela seguinte expressão:

C = P0 + u.V0 + v.V1 (12)

Através da equação (6) verifica-se se estas coordenadas estão dentro do triângulo considerado

ou não. No fim do processo de cálculo, para as árvores que se determinou estarem dentro do

triângulo determinam-se as suas coordenadas no espaço através de uma interpolação linear

pelas coordenadas dos vértices do triângulo (equações (1) a (4)).

3.3.5. Definição do horizonte visual

O procedimento de definição do horizonte visual é de certa forma mais simples que o da

versão anterior, mas bastante mais eficiente. Baseia-se no cálculo da matriz de observação

para cada frame e posterior comparação de cada célula presente com o rectângulo de

visibilidade. De uma forma é menos eficiente pois obriga ao teste de todas as células

P0

P1

P2

V0

V1

Page 68: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

68

potencialmente visíveis. Contudo, a extrema simplicidade do teste, associada ao facto do

número de células potencialmente visíveis ser relativamente reduzido, torna o custo

computacional da sua utilização negligenciável.

O cálculo da matriz de observação é feito pela multiplicação das matrizes de projecção e de

model view, que são disponibilizadas pelo OpenGL pela função glGetFloatv(), usando

como argumentos os valores GL_PROJECTION_MATRIX e GL_MODELVIEW_MATRIX, respectiva-

mente. Após a multiplicação, as equações dos planos do frustum de visibilidade podem ser

calculados com base nas seguintes equações (Lengyel 2002):

Plano direito = M4 - M1

Plano esquerdo = M4 + M1

Plano próximo = M4 + M3 (13)

Plano distante = M4 - M3

Plano de cima = M4 - M2

Plano de baixo = M4 + M2

em que Mi, corresponde à linha i da matriz calculada. Estes valores não produzem vectores

normalizados, pelo que têm de ser escalados com base na norma respectiva. As equações dos

planos vêm sob a forma normal de equações de planos:

0=+++ DCzByAx

com A, B, C e D a corresponderem às linhas das transpostas dos vectores produzidos. Lengyel

(2002) refere ainda que estas equações são válidas para todos os tipos de projecções.

Tendo as equações dos planos do frustum definidos, a decisão de desenhar ou não uma célula

de visibilidade é dada por um algoritmo simples. A ideia base da sua execução é verificar se

uma esfera hipotética que envolvesse totalmente cada célula seria visível total ou

parcialmente. Isso consegue-se multiplicando as coordenadas do ponto correspondente ao

centro da esfera (centro geométrico da célula) com os parâmetros das equações de cada um

dos planos. Este produto corresponde à distância a que o ponto está de cada plano. Se o valor

calculado, para qualquer dos planos do frustum, for inferior ao valor do raio da esfera então

Page 69: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

69

essa célula é potencialmente visível e tem que ser desenhada. A rejeição de desenhar uma

célula tem pois que passar pela verificação de todos os planos.

3.3.6. Interface e Sistema de navegação

A interacção com o programa depois de inicializado faz-se por intermédio do rato e do

teclado, ou opcionalmente através de um joystick. O cursor do rato permite definir o vector de

deslocação que é conseguido por meio de um mecanismo intuitivo de "arrastar e largar" sobre

a janela onde é representada a cena. O teclado permite controlar a velocidade de deslocação.

Através do teclado é possível controlar ainda outras funções como o carregamento ou

gravação de percursos pré-definidos. O joystick inclui os comandos direccionais e de

aceleração, tornando mais intuitivo o processo de navegação.

3.3.7. Percursos predefinidos e benchmarking

Esta implementação do programa inclui opções que permitem ao utilizador a definição de

percursos para posterior visualização e eventual avaliação do desempenho. Existem 3 modos

diferentes de interagir no programa. O primeiro, que se inicia por omissão, é designado de

'modo interactivo', em que o utilizador tem a liberdade total de se deslocar no terreno. Usando

o teclado, pode contudo iniciar o ‘modo de gravação’, no qual todos os movimentos

executados são guardados num ficheiro. De acordo com as especificações actuais, é possível

guardar cerca de 17 minutos de animação (dependendo do hardware utilizado). Uma terceira

opção é o ‘modo de reprodução’. Este modo lê de um ficheiro definido pelo utilizador um

caminho previamente definido e reproduz todos os passos anteriormente gravados. Esta

característica pode servir tanto para comunicar experiências semelhantes aos utilizadores do

sistema como para avaliar as capacidades de um determinado equipamento para executar o

programa.

Estão incluídos no programa mecanismos que permitem avaliar a adequabilidade de um

determinado sistema para o executar. Assim, no modo interactivo é reportado o número de

imagens mostradas por segundo, o número de árvores desenhadas e o número de polígonos de

Page 70: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

70

terreno presentes na cena. No modo de reprodução é indicado o valor médio de todas estas

variáveis no fim da execução do percurso.

Foi implementada ainda uma característica que permite a avaliação expedita de um

determinado sistema. Assim, o utilizador pode, ao inicializar o programa, definir na linha de

comandos que quer correr o programa no 'modo de reprodução' e quantos percursos quer

efectuar, findos os quais, a execução do programa termina. Esta especificidade foi introduzida

devido ao facto de, geralmente na primeira vez que um determinado percurso é executado,

todo o processo de carregar informação e a disponibilizar adequadamente na memória tem um

impacte negativo no seu desempenho. Verificou-se que só ao fim da segunda ou terceira vez

que o mesmo percurso é percorrido é possível retirar valores de desempenho mais seguros.

A utilização de mecanismos de recolha de informação posicional frame a frame, permite

ainda a utilização do programa para realização de filmes estáticos. Este efeito pode ser

conseguido através da recolha de imagens sequenciais que posteriormente poderão ser

convertidas num filme através de um utilitário como o DTA (ftp://ftp.povray.org/pub/povray/

/utilities/dta). Esta possibilidade pode permitir a utilização do output do programa em

máquinas que não tenham as capacidades de aceleração gráfica necessárias para a execução

normal do programa. Uma outra vantagem de um sistema com estas características, poderá ser

a utilização, durante o modo de reprodução, de modelos de árvores com maior resolução,

melhores modelos de iluminação e consequente maior realismo para o utilizador. Essas

imagens poderão ser recolhidas e processadas num filme, perdendo-se contudo a

interactividade natural do programa.

Page 71: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

71

4. APLICAÇÃO E RESULTADOS

4.1. Áreas de teste

4.1.1. O Cantão das Hortas 4.1.1.1 Caracterização da área

A primeira área de estudo compreende o Cantão das Hortas, incluído no Perímetro Florestal

da Lousã. É uma área de 460 hectares sob gestão pública e a sua composição actual reflecte o

cuidado com que foi gerida no passado. Assim, 41.3% da sua área é constituída por

povoamentos mistos de pinheiro bravo e castanheiro, este último aparecendo geralmente num

andar mais baixo. Predominam ainda as áreas de pinheiro bravo puro (53.0 ha). Há ainda

manchas com áreas significativas de várias outras espécies, por exemplo, pinheiro silvestre,

Cupressus spp, Chamaecyparis, Pinheiro negro, Carvalhos alvarinho e americano, entre

outras espécies.

Para esta área constituiu-se uma grelha de 129 x 129 mosaicos, cada qual representando uma

quadrícula de 30 m x 30 m.

4.1.1.2. Processamento da informação florestal

Para a exemplificação do funcionamento do sistema com a informação do Cantão das Hortas,

compararam-se os cenários resultantes da aplicação de dois diferentes modelos de gestão: o

Modelo A, que não entra com quaisquer restrições, o único objectivo é obter o rendimento

actual líquido proveniente da exploração comercial da floresta; Modelo B, que contempla uma

Page 72: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

72

exploração sustentada em que se retiram no máximo 7000 m3 de material lenhoso todos os

anos. O horizonte de planeamento considerado foi de 30 anos.

Para esta área de gestão seguiram-se todas as fases de processamento de informação florestal

descritas na secção 2.1. Existia inventário florestal que cobria a maior parte dos estratos

identificados pela fotointerpretação. Essa informação foi introduzida no módulo de simulação

que produziu um leque considerável de alternativas de gestão com base em modelos de

silvicultura previamente definidos pelo utilizador. Utilizaram-se as ferramentas de modelação

de gestão definidas em Falcão (2001) e estruturaram-se os planos de gestão para cada um dos

cenários (Falcão 2003).

4.1.2. Barlavento Algarvio e Monchique

4.1.2.1. Caracterização da informação de base

A área correspondente a esta região foi definida com base na fotointerpretação total do

Algarve num estudo que conduziu à estruturação do Plano Regional de Ordenamento

Florestal. Foram assim definidos cerca de 230 estratos distintos. A fotointerpretação foi

realizada com um grande rigor, tendo havido um cuidado extremo na definição dos diferentes

estratos. Este factor, apesar de importante para toda a análise geográfica realizada, fez com

que o número de vértices que definem cada arco seja bastante elevado, o que proporcionou,

pelos processos de triangulação descritos, um número igualmente elevado de triângulos. A

complexidade da malha gerada testou assim, quase ao limite, os algoritmos de processamento

da informação: triangulação, interpolação e clipping.

A área definida é um quadrado com 30,720 metros de lado. A área total é de 94,372 ha. Nesta

superfície foram definidos 38,202 polígonos individuais com uma área média de 2.47 ha. O

número total de triângulos que constituem o terreno é de 708,255. O número de polígonos

definidos é elevado devido ao rigor colocado no processamento da fotointerpretação que usou

um número particularmente grande de vértices na digitalização dos estratos encontrados. A

informação digitalizada não contém os elementos humanos fundamentais para permitir uma

fácil localização das zonas observadas no decorrer do programa

Page 73: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

73

4.1.2.2. Processamento da informação florestal

Nesta parte do trabalho, o objectivo era não tanto analisar as capacidades do programa na

visualização de paisagens prospectivas, mas antes verificar o seu comportamento para uma

área 2 ordens de magnitude maior. Assim, não houve uma tão grande preocupação em

reflectir a realidade, até porque a informação de inventário era relativamente reduzida. Deste

modo, compuseram-se artificialmente povoamentos típicos florestais com 1, 2 e 3 espécies, e

atribuiu-se, por simulação de Monte-Carlo, características realistas. Esses povoamentos foram

inicialmente apenas calculados para as áreas claramente florestais definidas pela

fotointerpretação, contudo, a ocorrência de áreas densamente florestais era extremamente rara

e portanto difícil para testar o programa em situações de carga intensa. Assim, optou-se por

atribuir ocupação florestal aleatoriamente a cada estrato diferente, independentemente da sua

verdadeira natureza.

Apesar da artificialidade da situação criada, os resultados poderiam corresponder a uma

situação real. O objectivo fundamental com esta nova área era verificar como o programa se

comportaria em situações realistas e de maior complexidade geométrica que o Cantão das

Hortas.

4.2. Implementação

Usou-se como ambiente de trabalho o Visual Studio 6.0 a trabalhar em plataforma Windows

2000, a operar num computador com processador Pentium III com 866 MHz e 256 MB de

RAM. Ao longo do desenvolvimento foi testada uma variedade relativamente pequena de

hardware gráfico (nVIDIA Geforce 256, nVIDIA Geforce 2MX, nVIDIA GeForce 440MX e

ATI Radeon 9700 Pro) com desempenhos crescentes. A fase final de desenvolvimento do

Landscaper 2.0 foi realizada num Portátil equipado com processador Pentium4 a 2.8 GHz

com 512 Mbytes de RAM, Front Side Bus a 800 MHz e chip gráfico ATI M10 com 128 MB

de memória vídeo (equivalente a uma ATI Radeon 9600). O sistema operativo foi o Windows

XP. Este foi o equipamento utilizado nos testes de desempenho de ambas as versões do

programa.

Page 74: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

74

4.3. Aplicação do Landscaper 1.0.

O programa Landscaper 1.0 teve uma utilização no âmbito de um projecto de avaliação de

qualidade de paisagens prospectivas. Foi utilizado não interactivamente na definição de

cenários alternativos e recolha de preferências dos utilizadores.

4.3.1. Qualidade visual

O programa permite ao utilizador deslocar-se virtualmente no terreno com o auxílio das teclas

direccionais do computador. Conforme for referido, dado o volume de informação presente

em cada cena o programa permite dois níveis de visualização. O primeiro, dito 'modo normal'

ou 'modo steering', dá a facilidade descrita do utilizador se deslocar sobre o terreno em tempo

real, mas com um horizonte visual limitado (cerca de 500 metros). O segundo, dito 'modo de

paisagem', não é susceptível de movimentação do ponto de vista, tem contudo um horizonte

visual que se estende por 10 km. Ambos os modos são intercomutáveis através de uma tecla.

O que se recomenda na utilização do sistema é o utilizador usar o 'modo normal' para tentar

captar a informação que um utilizador normal teria a percorrer a pé. Ao encontrar um local

característico e com horizonte visual não encoberto por árvores próximas, o utilizador poderia

seleccionar o 'modo de paisagem' para recolher o máximo de informação possível.

A limitação mais séria do programa é o pequeno horizonte visual possível de observação. A

versão desenvolvida tem, no 'modo steering', um horizonte de apenas 500 metros. Este valor é

suficiente para poder apreciar a paisagem do interior de povoamentos ou para a observação de

uma encosta relativamente próxima. No entanto, para ter uma visão mais holística da

paisagem, horizontes visuais de vários quilómetros são por vezes necessários. O programa

colmata essa deficiência através da utilização do 'modo landscape', em que o horizonte visual

é alargado até um limite definido previamente pelo utilizador. Mas o facto de existirem dois

níveis de detalhe não automáticos faz com que a ilusão da viagem na paisagem virtual seja

quebrada.

Page 75: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

75

O segundo problema mais sentido pelos utilizador é a falta de qualidade da textura do solo. A

fotografia aérea utilizada tem um pixel correspondente a 1 m2 de terreno. A área total

abrangida pela área de estudo corresponde a uma imagem com cerca de 3870x3870 pixels. O

OpenGL (versão1.2) obriga a que a dimensão das texturas utilizadas seja uma potência de 2 e

não exceda os 1024 x1024 pixels. Para evitar a subdivisão da textura principal do solo e

incorrer em mais perdas de desempenho, necessários na gestão de memória para acomodar

cerca de 42.85 Mbytes de informação textural, optou-se por considerar uma resolução

espacial menor, com uma dimensão de pixel de cerca de 11 m2. Esta dimensão de pixel é

suficiente para mostrar as principais características do terreno. Contudo, devido à forma como

o OpenGL interpola as cores na representação da geometria, os contornos representados ficam

diluídos e o terreno mais próximo perde realismo (Figura 4.1.). A observação de regiões mais

afastadas, pelo contrário, mostra um nível de detalhe textural correcto.

Outra característica do sistema que é por vezes notada, destruindo a ilusão da paisagem

gerada, é o aparecimento da cobertura florestal num reticulado anguloso. A divisão artificial

em mosaicos de 30 x 30 m da informação fotointerpretada, com contornos definidos sob um

mapa vectorial, é em certas circunstâncias perceptível, aparecendo formas demasiado

geométricas para corresponder à realidade. Esta característica não foi notada pela maior parte

dos utilizadores, sobretudo devido ao facto do interface básico permitir apenas ao observador

movimentar-se na cena numa posição junto ao solo. A utilização de pontos de observação

mais elevados permite a observação destas deficiências de representação, o que reduz, por

vezes notavelmente, a qualidade das imagens percebidas.

Finalmente, outra questão importante notada por vários utilizadores do sistema é a deficiência

estrutural do algoritmo de visualização. A projecção do frustum de visibilidade no plano

horizontal propicia o aparecimento de várias falhas quando o utilizador se desloca

virtualmente em terreno muito acidentado. Em situações de algum declive em que a projecção

do frustum não se adequa à irregularidade do terreno, as células visíveis não são

correctamente calculadas. e aparecem “buracos” sem nada. São geralmente situações que

aparecem em fracções de segundo mas são logo apercebidas pelo utilizador, criando uma

impressão desfavorável.

Page 76: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

76

A

B

Figura 4.1. Landscaper 1.0 - Comparação dos cenários A e B no Perímetro Florestal do

Cantão das Hortas, quinze anos após o momento inicial. Visão do "Terreiro das Bruxas",

olhando para o povoamento de eucalipto situado a poente

Os resultados da aplicação dos 2 modelos de gestão propostos podem ser capturados em

imagens fixas. Nas figuras 4.1 e 4.2., é possível observar as diferenças verificadas na

paisagem em 2 pontos de vista diferentes 2 anos após o momento presente. Na figura 4.1.,

observam-se os efeitos característicos dos 2 cenários propostos e as alterações provocadas por

Page 77: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

77

ambos na paisagem. Pode-se verificar que, para o cenário A, a maior parte dos povoamentos

foi cortada nos primeiros períodos, mostrando-se uma paisagem uniforme com muitas

árvores. Em contrapartida no cenário B, ocorre o corte apenas de algumas manchas mostrando

uma paisagem tipicamente fragmentada. Para o segundo ponto de observação, verificam-se

resultados semelhantes. É possível ver que, para o primeiro cenário, o povoamento principal

de resinosas foi cortado, mostrando apenas os castanheiros em primeiro plano.

A

B

Figura 4.2. Landscaper 1.0 - Comparação dos cenários A e B no Perímetro Florestal do

Cantão das Hortas, quinze anos após o momento inicial. Visão da encosta Oeste

Page 78: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

78

Quinze anos após o início do período de planeamento, observa-se, como no caso do segundo

ponto de observação (Figura 4.2), um extenso e denso povoamento juvenil enquanto aparece

uma paisagem mais heterogénea e recortada para o segundo cenário. No primeiro ponto de

observação (Figura 4.1.) as diferenças são menos visíveis, mas é possível verificar o

aparecimento de regeneração de resinosas no caso do cenário A e apenas uma diminuição da

densidade dos castanheiros no cenário B. Num trabalho anterior (Falcão 2003) são descritas

com mais detalhe as comparações entre estes mesmos cenários e confrontadas as

consequentes diferenças a nível ambiental, recreativo e de risco de ocorrência e propagação

de incêndios.

É visível ainda na figura 4.1 a falta de resolução da textura que cobre o solo, aparentando as

árvores estarem suspensas sobre uma superfície "aquosa", conforme foi descrito por alguns

utilizadores. Esta situação decorre da reduzida resolução da cobertura fotointerpretada que

cobre o terreno. É possível contudo, na mesma imagem, observar um caminho florestal que

aparece na encosta em frente.

4.3.2. Desempenho

Os primeiros testes de desempenho foram realizados na máquina de desenvolvimento,

testando o equipamento gráfico descrito anteriormente. Sendo este hardware de gerações

diferentes, têm desempenhos que variam em mais de uma ordem de magnitude. Contudo

nenhum mostrou maior capacidade para correr o programa. Não se verificaram diferenças

significativas no número de imagens por segundo, que variavam entre as 6 e as 12,

dependendo do grau de arborização e consequente complexidade geométrica. A razão

principal para este facto reside no processo de desenho da geometria. Uma vez que grande

parte do processamento incide sobre a CPU, devido ao facto de se utilizarem primitivas

simples sem qualquer agregação geométrica. Um segundo factor que agrava substantivamente

o peso da CPU no processamento de cada imagem é o cálculo, para cada frame, das posições

das árvores visíveis sobre o terreno. Deste modo, o processador gráfico fica inactivo durante

grande parte do tempo, não sendo minimamente um factor limitante. A utilização de uma

CPU mais rápida, como a da segunda máquina de teste tem contudo um impacte significativo

sobre o desempenho desta versão do programa, permitindo um frame rate superior a 30 fps

(frames per second), tornando inclusivamente possível a utilização do programa em 'modo

Landscape', com um desempenho de 8 fps. No quadro 4.1. é visível o facto da CPU ser o

Page 79: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

79

factor limitante, uma vez que testando o funcionamento do programa a várias resoluções, as

alterações no desempenho são reduzidas.

Quadro 4.1. Desempenho do programa Landscaper 1.0 a várias resoluções

N.º de árvores desenhadas por segundo (x106)

Imagens por

segundo (fps) Max Min Média

640x480 32.3 2.219 0.864 1.909

800x600 29.2 2.157 0.948 1.785

1024x768 28.7 1.915 0.699 1.477

Na resolução de 640x480, são enviados para o pipeline gráfico cerca de 15,3 milhões de

vértices por segundo sob a forma de primitivas directas, o que na máquina utilizada

corresponde a cerca de 183 ciclos de relógio por cada vértice. A utilização de uma resolução

2.5x maior (1024x768) provoca apenas uma redução de desempenho de 23 %, passando para

os 236 ciclos por vértice processado.

Um factor que propicia os elevados desempenhos desta arquitectura é a sua reduzida presença

em memória. Com efeito, as texturas (fotografia aérea, imagens das árvores) a geometria

associada e a imagem do próprio programa com as estruturas estáticas que lhe estão

associadas, consomem apenas cerca de 9.5 Mbytes. Dado que uma parte da informação é

transportada directamente para a memória de vídeo, a CPU não tem qualquer perda de

eficiência a gerir a memória, resumindo-se a sua actividade a processar a geometria em cada

frame. Dada a forma sintética como a informação dos povoamentos está organizada, é

possível que, para esta área de teste, toda a informação referente às árvores seja armazenada

directamente na memória de cache de nível 2 do processador, o que reduziria ao mínimo a

latência de instruções no acesso directo à memória.

4.4. Aplicação do Landscaper 2.0

4.4.1. Qualidade visual

Como foi referido, esta versão do programa apresenta diferenças significativas face à versão

anterior. Em primeiro lugar, permite uma representação muito mais precisa da geometria da

Page 80: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

80

ocupação subjacente (Figuras 4.3. a 4.6.). É possível observar todos os detalhes associados a

cada estrato. O programa permite ainda um horizonte visual muito mais extenso que a versão

anterior. Correntemente é possível visualizar, com níveis de desempenho que possibilitam a

navegação em tempo real, paisagens até 2.0 km de distância do ponto de observação. A

cobertura do solo é, por outro lado, menos precisa, tendo-se utilizado, conforme descrito

anteriormente, texturas apropriadas a cada tipo de ocupação, perdendo-se a informação

relativa aos pontos que permitem a orientação dos utilizadores.

Figura 4.3. Landscaper 2.0 - Orla de um povoamento de pinheiros adultos vista de dentro,

podendo ainda observar-se a paisagem florestal distante

4.4.2. Desempenho

Dependendo do hardware utilizado, esta versão do programa tem um desempenho muito

superior ao anterior. Permite o desenho de um número substancialmente superior de árvores,

mantendo um frame rate aceitável em quase todas as situações, levando o hardware gráfico a

aproximar o número máximo teórico do número de polígonos desenhados por segundo.

Page 81: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

81

Figura 4.4. Landscaper 2.0 - Interior de um povamento esparso de pinheiros, sendo visível ao

fundo um povoamento de eucaliptos

Figura 4.5. Landscaper 2.0 - Voo em altitude sendo visivel o reticulado da paisagem e

geometria das ocupações presentes

Page 82: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

82

Figura 4.6. Landscaper 2.0 - vôo por cima das copas, avistando diferentes tipos de ocupação

florestal

Quadro 4.2. Desempenho da execução do programa Landscaper 2.0 a várias resoluções

Resolução

Imagens (fps)

(s-1)

Árvores

(x106. s-1)

Polígonos de

terreno (x103. s-1)

320 x 240 61.33 7.673 145.2

640 x 480 41.86 5.235 99.07

800 x 600 33.28 4.165 78.78

1024 x 768 23.86 2.985 56.48

Para testar a taxa de preenchimento conseguida, fez-se correr esta versão do programa com

um caminho pré-definido. Os resultados (Quadro 4.2.) mostram que o programa, como se

esperava, é dependente na sua quase totalidade do número de árvores que consegue enviar

através do pipeline gráfico. Com efeito verificou-se que, apesar do frame rate variar

consoante a resolução, o número de árvores desenhadas por frame mantém-se constante

independentemente da dimensão da janela considerada. Conseguiram-se assim cerca de

Page 83: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

83

125,000 árvores por frame, o que corresponde a mais de 1 milhão de vértices submetidos

através do pipeline gráfico por frame desenhada.. Outra característica dos dados apresentados

é que manifestam um comportamento explicável através de uma regressão exponencial.

Assim, para o hardware de referência, verificou-se que o número de imagens por segundo

(fps) pode ser explicado através da seguinte equação, que entra em conta com a resolução (R)

de saída definida em Kbytes:

( )Rbafps log.+=

em que a= 4.205 e b= -0.0014. O coeficiente de determinação (R2) é de 99.48 % o que, apesar

do número reduzido de valores com que a expressão foi ajustada, se nos afigura como

altamente significativo. Verificou-se ainda um desvio máximo de 3 fps face ao valor

estimado, o que é perfeitamente aceitável. É interessante verificar ainda que este tipo de

equações apresenta um valor máximo no caso hipotético do valor do ecrã fosse nulo. Este

valor reflecte o peso do processamento geométrico do sistema, independentemente da

resolução utilizada. O caso presente, mostra uma assimptota na casa das 67 fps.

A utilização da memória RAM do computador é extremamente variável, oscilando com a

intensidade de arborização de uma determinada zona e com o natural desenrolar do programa.

Ao longo da rotina de benchmarking variou entre os 35.0 Mbytes e os 58.5 MBytes. De notar

que esta situação corresponde a uma área de teste com uma arborização particularmente

intensa (cerca de 900 árvores por ha). Para as situações mais comuns no nosso país, o número

de árvores é consideravelmente mais reduzido, sendo de esperar uma presença em memória

significativamente inferior. A presença em memória, apesar de comportável face aos

standards do hardware actual, é significativamente superior à versão anterior do programa,

com uma consequente penalidade no desempenho, que apesar de tudo é compensada pelo

melhor uso dos recursos de processamento gráfico do computador. Contudo, problemas na

implementação das rotinas dos VBOs por parte dos drivers da ATI, colocaram problemas na

utilização intensiva do programa. Foi verificado que, ao tentar explorar a área de teste com

uma velocidade elevada, a implementação do OpenGL pela ATI não consegue libertar a

memória reservada de uma forma suficientemente rápida, causando um acumular de

informação inútil em RAM que se verificou poder atingir os 290 Mbytes. A remoção da

memória reservada é efectuada posteriormente de uma forma ad hoc causando problemas de

Page 84: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

84

fragmentação da memória gráfica. Isto faz com que, após uma utilização prolongada do

programa, este pode terminar subitamente por não conseguir reservar espaço contíguo para

criar VBOs para células que tenham entrado recentemente na SVP. É provável que esta

limitação de implementação seja rapidamente solucionada, referindo-se aqui, no entanto, os

problemas verificados com os drivers actualmente disponíveis.

Page 85: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

85

5. CONCLUSÕES

No decorrer desta dissertação, abordaram-se vários temas. Referiu-se a importância da

existência de uma ferramenta de visualização de paisagens prospectivas e a sua integração

num sistema de apoio à decisão para ecossistemas florestais. Abordou-se toda a complexidade

do tratamento da informação necessária para o desenvolvimento deste módulo. Em particular,

detalhou-se o conjunto de procedimentos que permitiram, com sucesso, efectuar a

transformação espacial proveniente de um Sistema de Informação Geográfica, para um

formato compatível com o desenho de paisagens em tempo de execução. Descreveu-se com

algum detalhe os procedimentos de triangulação de polígonos simples e polígonos simples

com ilhas, tendo-se desenvolvido um algoritmo eficiente e de implementação trivial.

Para a implementação do sistema desenvolveram-se duas versões distintas que atenderam a

diferentes tipos de requisitos. Uma primeira, Landscaper 1.0, desenvolvida para uma área de

estudo de dimensões reduzidas, utiliza fotografias aéreas orto-rectificadas corrigidas

espectralmente como cobertura do solo. Esta abordagem permitiu manter os pontos de

referência do terreno, facilitando a sua apreciação pelos utilizadores do sistema. Esta versão,

por ser compacta no uso da memória e não obrigar à representação das árvores como

entidades individualizáveis, permite horizontes visuais mais extensos, desde que as texturas

do solo que lhe estão subjacentes esteja no sistema. Esta aparente mais valia vem contudo

com um custo acrescido que é o da remoção da interactividade e consequente

inoperacionalidade da deslocação em tempo real sobre o terreno. A preocupação excessiva

com o impacte em memória do programa levou à tomada de decisões que tiveram um

impacte, em última análise, negativo, no desempenho e qualidade visual do output produzido.

O programa desenvolvido foi, apesar dos problemas inerentes, utilizado com sucesso na

incorporação de critérios paisagísticos para a gestão do perímetro florestal do Cantão das

Hortas na Serra da Lousã. Foram determinados os pontos de maior interesse paisagístico e de

maior impacte visível na comparação de diferentes modelos de gestão florestal. Os resultados

pareceram suficientemente realistas para permitir entrevistas a cerca de 200 pessoas retirando

ilações sociológicas relativas às relações dos habitantes da região com a área em análise

(Madureira et al. in press)

Page 86: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

86

Para colmatar alguns dos problemas verificados, foi testada uma segunda abordagem e

desenvolvida uma segunda versão do programa. Esta, leva em conta a correcta geometria da

cobertura florestal, conforme descrita no SIG, eliminando a necessidade de fotografias aéreas

orto-corrigidas. A nova versão (Landscaper 2.0) apresenta um desempenho homogéneo e sem

interrupções, mesmo em condições de grande densidade de arborização. Foram levadas quase

ao limite as capacidades do hardware disponível, com picos de desempenho gráfico que

atingem os valores teóricos do equipamento. Os mecanismos de carregamento dinâmico da

geometria permitem ainda a utilização do sistema em paisagens arbitrariamente grandes. No

entanto, o programa tem como limitação a utilização de placas gráficas com grande

quantidade de memória vídeo (>64 Mbytes) para garantir que o processamento da geometria

não seja atrasado pelo acesso à memória RAM e posterior mapeamento para VRAM. A

percepção do sistema para os utilizadores finais, apesar de mais agradável que a primeira

versão, tanto na fluidez do movimento como no realismo das paisagens representadas,

apresenta também alguns problemas. O mais relevante, citado por vários utilizadores do

sistema, é a inexistência de pontos de referência no terreno que possibilitem a localização

precisa do utilizador. Em segundo lugar, à semelhança da versão anterior, for referida a

reduzida exactidão na representação das árvores mais próximas.

O trabalho desenvolvido até agora é um princípio promissor que poderá ser melhorado em

iterações seguintes do seu desenvolvimento. Nomeadamente, apontam-se os seguintes tópicos

passíveis de continuação:

1. Desenvolvimento de algoritmos de nível-de-detalhe de visualização do terreno que

permitam manter a coerência espacial das ocupações florestais existentes. Este avanço

permitirá a definição de horizontes visuais ainda mais extensos, reduzindo

potencialmente a complexidade geométrica da cena.

2. Utilização de modelos de árvores mais detalhados que permitam a inclusão mais

coerente de relações dendrométricas, ao invés da abordagem fixa correntemente

utilizada. O uso de técnicas de nível de detalhe, permitindo a redução até à

simplificação final de dois polígonos entrelaçados, possivelmente também melhorará a

qualidade das imagens criadas com um impacte mínimo no desempenho final do

programa.

Page 87: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

87

3. Integração de elementos de referência que possibilitem a orientação espacial dos

utilizadores. Se a integração de estradas ou caminhos está condicionada pela qualidade

da digitalização, outro tipo de informação seria possível incluir no sistema, como, por

exemplo, uma bússola ou elementos artificiais que identificassem ou situassem locais

conhecidos.

4. Utilização de programas de sombreamento (shader programs) ao nível dos vértices que

constituem a geometria e dos seus fragmentos. Esta técnicas poderão aumentar o

realismo dos modelos utilizados e diminuir a aparência estática dos objectos

visualizados. Com estas técnicas será possível incluir, por exemplo, o efeito do vento

sobre as copas das árvores e a definição de sombras sobre o terreno para diferentes

condições de iluminação. Será possível, inclusivamente, fazer variar as tonalidades da

folhagem de acordo com a época do ano para a qual se simula a visualização.

Em última análise, os resultados produzidos por estas ferramentas são suficientemente

realistas para permitir uma percepção da realidade florestal pelo utilizador mesmo para

momentos distantes no tempo. Nenhum dos programas desenvolvido procura substituir a

realidade, procura antes permitir ao utilizador a recolha de uma experiência que lhe

comunique o impacte visual de uma paisagem natural, mas sem contudo deixar de reflectir a

artificialidade do sistema. A sua implementação sobre dados reais existentes em situações de

produção no decorrer de acções de planeamento florestal facilitam a sua utilização e

transposição para os utilizadores finais. Podem, então, ser utilizadas para determinação de

impactes visuais de planos de gestão ou para verificar situações paisagísticas futuras

decorrentes de catástrofes naturais como, por exemplo, os incêndios florestais, sendo de

inegável importância na avaliação estética de subsequentes projectos de reflorestação.

Page 88: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

88

BIBLIOGRAFIA

Abrash, M. 1977. Graphics Programming Black Book - Special Edition. Coriolis Group

Books. Albany. New York 1342 pp

Alves, A. A. M. 1982 Técnicas de produção florestal. Inistituto Nacional de Investigação

agrária. Lisboa

Architecture Review Board (ARB) 2003. OpenGL Extensions registry - Vertex Buffer

Objects, http://oss.sgi.com/projects/ogl-sample/registry/ARB/vertex_buffer_object.txt

Booch, G., Rumbaugh, J, Jacobson, I –The Unified Modeling Language Users Guide.

Addison Wesley. Boston Massachusetts. 482 pp

Bresenham, J.E. 1965. Algorithm for computer control of a digital plotter. IBM Systems

Journal 4(1) pp 25-30

Chazelle, B., 1990 Triangulating a simple polygon in linear time Technical Report CS-TR-

264-90, Dept. of Computer Science, Princeton University, May 1990.

Chen, A, J. Johnson, A. Suhrstedt 2002, Introduction to AGP-8X. Advanced Micro Devices,

Inc.One AMD Place. Sunnyvale, CA 94088

Danahy, J. 2001.Considerations for digital visualizations of landscape. In: Sheppard, S.,

Harshaw, H (eds) 2001. Forests and Landscapes: Linking ecology sustainability and

aesthetics. Cabi Publishing. Wallingford. UK. pp. 225-246

de Berg, M, M. van Krefeld, M. Overmars, O. Schwarzkopf, 2000. Computational Geometry

-- Algorithms and Applications [2nd ed.], Springer-Verlag Berlin Heidelberg. 367 pp.

Page 89: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

89

ESRI, 1998. ESRI Shapefile Technical description - an ESRI white paper. Environmental

systems research Institute, Redlands CA. 34 pp

Falcão, A. 2001, Implementação de métodos heurísticos para modelação da gestão em

ecossistemas florestais- Integração num Sistema de Apoio à Decisão. Dissertação de

doutoramento. Instituto Superior de Agronomia. Lisboa.

Falcão, A. 2002. Simulação e geração de alternativas de gestão para o perímetro florestal do

Cantão das Hortas - Serra da Lousã - Integração no sistema de apoio à decisão. Documento

Interno 02/02. Departamento de Engenharia Florestal. Instituto Superior de Agronomia.

Lisboa. 19 pp

Falcão, A. e J. G. Borges. 1999. SAGfLOR 2.0 - Simulador de Alternativas de Gestão.

Manual de Utilização, Grupo de Economia e Planeamento em Recursos Florestais,

Documento nº5, DEF, Lisboa, 43 p.

Falcão, A O, Borges, J. G., 2002, Combining random and systematic search heuristic

procedures for solving spatially constrained forest management scheduling models. Forest

Science 48: 608-621

Falcão, A. A. Marques, A 2002, Metodologia expedita para simulação do crescimento e

produção de algumas espécies florestais portuguesas GEGREN -Documento Interno 01/02.

Departamento de Engenharia Florestal. Instituto Superior de Agronomia. Lisboa. 18 pp.

Falcão, A. 2003 - Integração de um Visualizador Interactivo de Paisagens Florestais num

Sistema de Apoio à Decisão em Gestão de Recursos Naturais - Aplicação á Serra da Lousã.

Comunicação apresentada no seminário

Fournier A., D.Y. Montuno. 1984. Triangulating simple polygons and equivalent problems.

ACM Trans. on Graphics, 3:153-174.

Garey, M. R., Johnson, D. S., Preparata, F. P. and Tarjan, R. E., 1978. Triangulating a simple

polygon, Information Processing Letters, vol. 7, 1978, pp.175-179.

Page 90: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

90

Held, M., 2001. FIST: Fast Industrial-Strength Triangulation of Polygons. Algorithmica

30(4): 563-596

Humphries C.J., J.R. Press, D.A. Sutton 2001 Guide to Trees of Britain and Europe. Hamlyn

Publishing Group, 2001

Kilgard, M. 1986. OpenGL programming for the X-Window System. Addison Addison-

Wesley Reading Massachusetts. 576 pp

Kovach, P.J. 2000. Inside Direct3D. Microsoft Press. Redmond Washington

Kirkpatrick, D. G., Klawe, M M., Tarjan, R.E., 1990, Polygon triangulation in O(n log log n)

time with simple data-structures in: Proceedings of the sixth annual symposium on

Computational geometry table of contents, Berkley, California, United States Pages: 34 - 43

Lengyel, E. 2002. Mathematics for 3D game programming and computer graphics. Charles

River Media. Hingham, Massachusetts. 382 pp

Lindstrom, P. Koller, D., Ribarsky, W, Hodges,L. F. Faust, N. 1996 Real-Time, Continuous

Level of Detail Rendering of Height Fields. Proceedings of ACM SIGGRAPH 96, August

1996, pp. 109-118.

Luymes, D. 2001. The Rhetoric of visual simulations in forest design: some research

directions. in Sheppard, S., Harshaw, H (eds) 2001. Forests and Landscapes: Linking ecology

sustainability and aesthetics. Cabi Publishing. Wallingford. UK. pp.191-204

Madureira, L. Nunes, L.C, Borges, J.G., Falcão, A.O. (in press) Assessing forest management

strategies values using a contingent valuation approach and advanced visualization

techniques.

Marselas, H, 2000, Optimizing vertex submissions for OpenGL. in: DeLoura, M (ed), 2000,

Game Programming Gems. Charles River Meida. Rockland Massachussets. pp 353-360

Page 91: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

91

McGauhey, R.J 1997. Visualizing forest stand dynamics using the stand visualization system.

In: Proceedings ACSM/ASPRS/RT, Seattle Washington. American Society for

Photogrammetry and remote sensing. Bethesda, Maryland, Technical papers, Vol 4, 248-257

Meyer, A. 2001, Représentations d'arbres réalistes et efficaces pour la syntèse d'images de

paysages. Thèse de doctorat en sciences de l'Université Joseph Fournier. Grenoble. 149 pp

Nagy, G. 2000 Convincing looking glass for games. In: DeLoura, M (ed), 2000, Game

Programming Gems. Charles River Meida. Rockland Massachussets. 614 pp

Narkhede, A., D. Manocha, 1995 Fast Polygon Triangulation based on Seidel's Algorithm. In

A. W. Paeth (Ed.), Graphics Gems 5, pp 394—397. Academic Press

O'Rourke, J 1994,. Computational geometry in C. Cambridge University Press, 1994.

Orland, B., Uusitalo, J. 2001. Immersion in a virtual forest - some implications in Sheppard,

S., Harshaw, H (eds) 2001. Forests and Landscapes: Linking ecology sustainability and

aesthetics. Cabi Publishing. Wallingford. UK. pp 205-224

Rottger, S., Heidrich, W., Slussallek, P., Seidel, H-P., 1998 Real--Time Generation of

Continuous Levels of Detail for Height Fields, Proc. 6th Int. Conf. in Central Europe on

Computer Graphics and Visualization, pp. 315--322,

Seidel, R., 1991, A simple and fast incremental randomized algorithm for computing

trapezoidal decompositions and for triangulating polygons, Computational Geometry Theory

and Application, vol. 1, no. 1, pp. 51-64

Sheppard, S.R.J. 1989 Visual simulation: A User's guide for Architects Engineers and

Planners. Van Nostrand Reinhold, New York.

Sheppard, S., Harshaw, H (eds) 2001. Forests and Landscapes: Linking ecology sustainability

and aesthetics. Cabi Publishing. Wallingford. UK. 294 pp.

Page 92: Ambiente interactivo de visualização para apoio à decisão ...afalcao/docs/TeseMestrado-afalcao.pdf · algoritmos utilizados para a decomposição geométrica das coberturas geográficas

Ambiente interactivo de visualização para apoio à decisão em modelos de gestão florestal

92

Tor, S.B., Middleditch, A.E., 1984. Convex decomposition of simple polygons. ACM Trans.

on Graphics, 3(4):244-265

Toussaint, G.T. 1991. Efficient triangulation of simple polygons. Visual Comput. 7(5-6)280-

295.

Velho, L. Gomes, J. 2000 Variable resolution 4-k Meshes: concepts and Applications.

Computer Graphics forum. Vol. 19(2000) n. 4 pp 195-212

Woo, M, J. Neider, T. Davis, and D. Shreiner. OpenGL programming guide. Addison-

Wesley, 1999.