2.4 Optics design and beam dynamics
2.4.2 Dispersion suppressors and geometry
O software desenvolvido tem como plataforma básica a IDE Qt Creator e a linguagem C++. Uma das características impor- tantes do Qt é o fato do código produzido ser absolutamente portável, podendo ser compilado nas principais plataformas disponíveis no mercado. Dentre os principais itens utilizados na infraestrutura estão a SDL, a CGAL, o OpenGL, a EDOM e a Armadillo conforme apresenta a Figura 2.
A SDL é usada na leitura e processamento das imagens fotogramétricas e das texturas. A CGAL é responsável pelo tratamento da triangulação de Delaunay, enquanto o ambiente OpenGL fornece a infraestrutura básica de computação gráfica e síntese de imagens. A classe EDOM é usada na interpre- tação do arquivo XML de projeto fotogramétrico do E-foto. Enquanto, a Armadillo fornece a base para a realização dos cálculos matriciais usados na obtenção das coordenadas para o recorte das texturas.
1) EPP - E-Foto Photogrametric Project: é uma linguagem derivada do XML desenvolvida pelo projeto E-Foto para o armazenamento de projetos de mapeamento fotogramétrico [8], [9]. Ele possui elementos XML relativos ao domínio da aplicação em questão como: “stereoPloting”, que armazena os dados relativos às feições cartográficas, [1], e “dem”, que guarda uma referência a um arquivo formato XYZ em que estão definidos os pontos do modelo de terreno.
2) EDOM - E-Foto Document Object Model: classe empre- gada na interpretação do arquivo EPP. Trata-se de uma classe desenvolvida pelo E-foto e que implementa a interface de programação DOM (Document Object Model) [10], bastante utilizada em aplicações que manipulam dados armazenados em XML.
Figura 2. Plataforma de desenvolvimento
3) CGAL - Computational Geometry Algorithms Library: é uma biblioteca C++ que fornece acesso a algoritmos e estruturas de modelagem geométrica [6]. CGAL [11], [12] pode ser usada em várias áreas que precisam de geometria computacional, como computação gráfica e visualização cien- tífica.
O principal uso desta biblioteca no presente contexto foi na triangulação de Delaunay, que define uma malha triangular que possui a característica de circuncírculo vazio. Este tipo de malha é comumente usado dentro da geomática e das ciências cartográficas para representação de terrenos. A CGAL também fornece suporte à chamada decimação, que permite diminuir o grau de detalhamento do terreno, com o mínimo de perda de qualidade.
4) SDL Simple DirectMedia Layer: é uma biblioteca de desenvolvimento multiplataforma projetada para prover acesso a funções de áudio, teclado, mouse, joystick e gráficos via uso de OpenGL e Direct3D [13], [14]. SDL é utilizada em vários aplicativos de reprodução de vídeo, emuladores e jogos populares. No trabalho, a SDL é utilizada para carregamento e recorte das imagens a serem usadas na texturização do modelo 3D.
B. Principais classes
O módulo foi desenvolvido em duas fases. A primeira pro- duziu uma versão que renderizava apenas modelos wireframe, enquanto na segunda foi realizada uma manutenção evolutiva, acrescentando a texturização a fim de aumentar o realismo experimentado na visualização. Esta seção apresenta as prin- cipais classes da segunda versão produzida, cujo diagrama de classes conceitual pode ser visto na Figura 3.
1) Classe Image: armazena os parâmetros da câmera for- necidos no certificado de calibração, como a distância focal, e calculados pelo processo fotogramétrico, como os coeficientes das orientações interior e exterior.
2) Classe TextureManager: é a classe responsável por gerenciar o recorte e o registro das texturas na estrutura do OpenGL.
3) Classe Texturable: representa uma superfície formada de Point3DTexturable e associa aquela superfície a um textureId gerado pelo TextureManager. Essa abstração foi necessária para que as feições (objetos da classe Feature) e polígonos, em especial os triângulos do terreno, pudessem ser tratados de forma indistinta ao longo da texturização.
4) Classe Triangle: é uma especialização de Texturable para manipular a estrutura de um triângulo com pontos textu- rizáveis. É utilizada principalmente na visualização do terreno. 5) Classe Rectangle: representa a superfície gerada pelas arestas dos topos de uma edificação e por suas respectivas projeções no terreno.
6) Classe Geometry: é uma classe abstrata que é ancestral da classe Feature. Geometry modela de forma genérica grupos de pontos tridimensionais.
7) Classe Feature: é responsável por gerenciar os vértices das feições. Ela é filha das classes Geometry e Texturable, reunindo assim características importantes de ambas.
8) Classe Point3D: apenas armazena os pontos no sistema X, Y, Z do espaço objeto.
9) Classe Point3Dtexturable: é filha de Point3D e permite que cada ponto 3D possa guardar suas respectivas coordenadas no referencial (u, v) da respectiva textura. Esta abordagem facilita o mapeamento da textura durante o desenho dos polígonos.
10) Classe FeaturePoints: é uma classe fiel a sua repre- sentação no arquivo EPP e que também permite a vinculação entre o referencial da textura e o respectivo modelo 3D.
IV. EXPERIMENTOS
O desempenho do módulo foi avaliado experimentalmente a partir de dados fotogramétricos do bairro do Maracanã no município do Rio de Janeiro. As imagens foram obtidas por um voo de 1997 que sobrevoou a região e correspondem a uma faixa com três imagens cedidas pelo Instituto Pereira Passos. Os dados secundários disponíveis foram processados na Estação Fotogramétrica Digital E-Foto com base em pontos de controle obtidos na região em trabalhos de campo do departamento de Engenharia Cartográfica da Uerj. Todos os dados estão disponíveis gratuitamente no sítio-web do projeto E-Foto: http://www.efoto.eng.uerj.br.
A. Resultados e Análise
Os resultados obtidos são apresentados na Figura 4. Esta figura apresenta o mesmo modelo geométrico observado do mesmo ponto de vista sem e com texturização. Nota-se que a texturização possibilita uma experiência muito mais realista que a visualização wireframe. Além disto, mesmo com texturi- zação o módulo de visualização renderiza o modelo e responde às entradas do usuário de forma compatível com uma aplicação de computação gráfica interativa.
A Figura 5 apresenta a visualização 3D do modelo ge- ométrico texturizado do campus Maracanã da Uerj de três pontos de vista distintos. Observa-se que as edificações mais baixas, Teatro Odilo Costa Filho, Capela Ecumênica e Ginásio desportivo, têm resultados adequados. Contudo, os edifícios mais altos sofrem com problemas na versão atual do módulo. Por um lado, as coberturas das edificações mais altas são em geral texturizadas adequadamente. Ainda assim, por vezes, apresentam problemas como é o caso do bloco D do pavilhão João Lira Filho, edifício do conjunto principal do campus Maracanã situado mais à direita na Figura 5c. Deve ser mencionado que as faces de todos os edifícios altos apresentam problemas que demandam atenção na sequência da presente pesquisa.
V. CONCLUSÃO
Este trabalho dedicou-se à texturização dos modelos nu- méricos de superfície na estação fotogramétrica digital E- Foto. Para tanto, foi necessário atender a objetivos como: a manutenção das bibliotecas, a correção da câmera e reestrutu- ração do mesmo melhorando a performance. Além disto foram realizadas uma série de manutenções de caráter evolutivo na arquitetura do módulo de visualização.
Contudo o projeto ainda precisa sofrer evoluções que ficarão como sugestões para trabalhos futuros. A principal melhoria visual que pode ser desenvolvida no futuro é o algoritmo da escolha da melhor imagem. Um dos componentes principais a serem empregados em sua implementação é o teste de oclusão. Este é um teste que precisa ser feito para verificar se um polígono está totalmente presente em uma imagem e não possui um segundo polígono entre a câmera e o polígono alvo. As técnicas de iluminação e sombreamento devem ser acordadas nos projetos futuros, pois a textura já possui a sombra do ambiente real. Além disto, é preciso incluir uma reamostragem das texturas para eliminar distorções introdu- zidas pela perspectiva da câmera. Outra sugestão interessante é a adaptação do módulo para seu uso em equipamentos de visão 3D.
REFERÊNCIAS
[1] L. Coelho and J. N. e Silva Brito, Fotogrametria digital. Ed. Uerj, 2007.
[2] G. Mota, J. Nunes e Silva Brito, J. Ribeiro, O. Filho, M. Silveira, R. Aguiar, I. Silva Badolato, S. Costa, and P. Reolon, “The e-foto project and the research to implement a gnu/gpl open source educational digital photogrammetric workstation,” in Geospatial Free and Open Source Software in the 21st Century, ser. Lecture Notes in Geoinformation and Cartography, E. Bocher and M. Neteler, Eds. Springer Berlin Heidelberg, 2012, pp. 89–106. [Online]. Available: http://dx.doi.org/10.1007/978-3-642-10595-1_6
[3] R. M. A. Fonseca, V. Silva, G. L. A. Mota, M. T. Silveira, and J. L. N. S. Brito, “Módulo de Visualização de Modelos Numéricos de Superfície da Estação Fotogramétrica Digital E-FOTO,” in Anais do XXIV Congresso Brasileiro de Cartografia (Congresso Brasileiro de Cartografia), Aracajú, SE, 2010.
[4] G. S. P. Miller, “From wire-frames to furry animals,” in Graphics Interface ’88, Jun. 1988, pp. 138–145.
[5] E. E. Elnima, “A solution for exterior and relative orientation in photogrammetry, a genetic evolution approach,” Journal of King Saud University - Engineering Sciences, no. 0, pp. –, 2013. [Online]. Available: http://www.sciencedirect.com/science/article/ pii/S1018363913000196
[6] J. Gomes and L. Velho, Fundamentos da Computação Gráfica. IMPA, 2003.
[7] D. Shreiner, OpenGL programming Guide 7th edition The Official Guide to learning OpenGL, Versions 3.0 and 3.1. 2009, Addisson Wesley. [8] R. P. Silva, G. L. A. Mota, J. L. N. S. Brito, O. Bernardo Filho, J. A.
Ribeiro, L. C. T. Coelho Filho, F. J. C. Silveira, and M. T. Silveira, “A Integração e o Compartilhamento de Dados no Ambiente E-FOTO,” in XXIII Congresso Brasileiro de Cartografia, Rio de Janeiro, Brazil, 2007, pp. 857–864.
[9] G. L. A. Mota, J. A. Ribeiro, J. L. N. S. Brito, and R. P. Silva, “O Uso de padrões Internet na auditoria de projetos fotogramétricos do E-FOTO,” in Anais do XIV Simpósio Brasileiro de Sensoriamento Remoto (Simpósio Brasileiro de Sensoriamento Remoto ), INPE, Ed. Natal, RN: José Carlos Neves Epiphanio, Lênio Soares Galvão, 2009, pp. 1819–1826. [10] J. Marini, Document Object Model, 1st ed. New York, NY, USA:
McGraw-Hill, Inc., 2002.
[11] CGAL, “Computational geometry algorithms library - homepage,” Março 2014. [Online]. Available: http://www.cgal.org/
[12] J. Russell and R. Cohn, Cgal. Book on Demand, 2012. [Online]. Available: http://books.google.com.br/books?id=cJuSMQEACAAJ [13] SDL, “Simple directmedia layer – homepage,” Março 2014. [Online].
Available: http://www.libsdl.org
[14] J. Russell and R. Cohn, Simple Directmedia Layer. Book on Demand, 2012. [Online]. Available: http://books.google.com.br/books? id=pqXEMgEACAAJ
Figura 3. Diagrama de classes do modelo conceitual
(a) Modo wireframe (b) Modo com textura
(a)
(b)
(c)