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%
|