Visualizador

O Visualizador é uma ferramenta que permite a visualização e a interação em tempo real com modelos tridimensionais, permitindo que diversas áreas do conhecimento possam observar os fatos com maior riqueza de detalhes e interagir com um mundo virtual. A representação em três dimensões e a interação com os modelos auxiliam na tomada de decisões, antecipando a identificação de problemas e reduzindo os custos de projeto. Alguns exemplos de utilização do Visualizador em diferentes áreas: Cultura: É possível enriquecer detalhes na visualização de obras reconstruídas em 3D, ou na observação de centros históricos, como a Modelagem do Centro Histórico de São Paulo no ano de 1911; Engenharia: A construção e a observação de protótipos para análise de viabilidade e ergonomia pode ser realizada de forma mais precisa. A interação com o protótipo e a visualização de resultados de simulação podem ajudar na identificação de problemas de projeto e na redução de custos; Arquitetura: A ferramenta pode auxiliar a visualização de projetos arquitetônicos sob diversas condições climáticas, em qualquer época do ano, e sob diversas condições de iluminação, ajudando na identificação de problemas antes que os mesmos entrem em execução, antecipando a finalização do projeto e reduzindo os custos de manutenção; Biologia: O sistema de visualização pode ser usado não apenas de forma didática, na ilustração de micro-organismos, como também na observação de resultados de simulações de reações químicas, ou na reconstrução 3D de imagens de microscopia confocal.

Características do Projeto

O visualizador desenvolvido se destaca das demais ferramentas existentes por diversos motivos. A ferramenta foi planejada para permitir a visualização de modelos com alta riqueza de detalhes, caracterizados por possuírem algumas dezenas de milhares de polígonos e arquivos de giga bytes de dados. O visualizador também permite a visualização de imagens em estéreo ativo e passivo, em diversas telas ou projetores acoplados de forma flexível, como um powerwall, ou como uma caverna. As figuras abaixo ilustram os possíveis casos de uso para o visualizador com o auxílio de um VRCluster:



Para viabilizar a observação interativa de modelos complexos, é necessário distribuir a carga de processamento gráfico entre diversos computadores convencionais. A solução que envolve o agrupamento de diversos computadores convencionais com o objetivo de realizar a visualização de dados massivos e de forma interativa, é conhecida como VRCluster (Virtual Reality Cluster). Os detalhes da montagem e instalação de um VRCluster são apresentados no próximo tópico.

Detalhes técncos

O desenvolvimento do visualizador foi baseado em uma biblioteca gratuita, o OGRE (Object-Oriented Graphics Rendering Engine), distribuido sob a licença LGPL. O OGRE foi concebido para facilitar o desenvolvimento de aplicações a serem executadas em uma única máquina, na visualização de modelos de pequeno e médio porte. Para que o Ogre fosse adaptado para rodar em um ambiente distribuído, foi necessário o desenvolvimento de uma biblioteca de sincronismo e distribuição de dados. Esta biblioteca, desenvolvida em C/C++, tem recursos para compartilhar dados de simulações e renderização entre diversos computadores, permitindo que uma cena seja renderizada de forma coerente na caverna e em outros sistemas de projeção igualmente complexos. Para realizar a observação de qualquer modelo 3D, é necessário que o visualizador seja capaz de ler e interpretar uma determinada sintaxe de arquivo. Existem diversos padrões de sintaxe para descrever modelos tridimensionais, como por exemplo, arquivos do Maya, OpenInventor, 3D Studio Max e etc. Embora o visualizador já possua suporte nativo para formatos do OGRE, como o .mesh e o .material, também está sendo desenvolvido um parser e um loader para o formato X3D. O X3D é uma especificação de descrição de cenários 3D, baseado em XML, projetado para a transmissão de dados via rede, que tem como objetivo substituir o antigo padrão de descrição de cenas, o VRML97. O X3D também é capaz de descrever algumas formas simples de interação com o usuário, recursos que outras linguagens não oferecem.

Resultados obtidos até o momento

[1] Determinar os recursos necessários para o visualizador. 100% [2] Estudar o funcionamento do OGRE. 100% [3] Realizar testes com as funcionalidades do OGRE. 100% [4] Desenvolver uma aplicação de visualização com o OGRE. 100% [5] Estudar as ferramentas de distribuição e sincronismo de processos. 100% [6] Determinar as funcionalidades de uma ferramenta de sincronismo. 100% [7] Desenvolver uma ferramenta de distribuição e sincronismo. 100% [8] Aplicar a ferramenta de distribuição/sincronismo ao visualizador. 100% [9] Testar o visualizador no VRCluster. 100% [10] Estudar o padrão X3D. 60% [11] Desenvolver um parser e um loader X3D. 30% [12] Aplicar o parser e o loader X3D ao visualizador. 10% [13] Testar o visualizador no VRCluster carregando modelos X3D. 5%
   
links - links - links

...